Если chown может менять группы, почему был создан chgrp?

23

Так что есть chownчто позволяет вам изменить владельца и группу файлов и / или каталогов. Но есть и то, chgrpчто только меняет группу. Почему был chgrpсоздан? Разве это не избыточно?

dayuloli
источник
Вы можете обратиться к ссылке здесь для получения дополнительной информации. serverfault.com/questions/462174/…
Рамеш

Ответы:

36

chownизначально не мог установить группу. Позже, некоторые реализации добавили это как chown user.group, некоторые, chown user:groupпока это в конечном счете не было стандартизировано (выделение мое):

Метод BSD 4.3 для указания как владельца, так и группы был включен в этот том POSIX.1-2008, потому что:

Есть случаи, когда желаемое конечное условие не может быть достигнуто с помощью утилит chgrp и chown (которые только изменили идентификатор пользователя). (Если текущий владелец не является членом желаемой группы, а нужный владелец не является членом текущей группы, функция chown () может завершиться ошибкой, если только владелец и группа не будут изменены одновременно.)

Даже если они могут быть изменены независимо, в случаях, когда изменяются оба, существует 100% снижение производительности, вызванное вынужденным вызовом обеих утилит.

Даже сейчас, chown :groupчтобы изменить только группу не является портативным или стандартным.

chown user:(для назначения основной группы userв пользовательской базе данных) также не является стандартным.

Стефан Шазелас
источник
2
@dayuloli, спасибо за редактирование, но я не включил этот раздел спецификации, потому что я его не понимаю
Стефан Шазелас
Хороший вопрос! Upvoted!
Dayuloli
Приятно видеть, что: группа и пользователь: были упомянуты как нестандартные. Многие люди здесь только проверяют, что делает их местный поставщик, и это не помогает на общем портале UNIX.
Шили