4

Я понимаю, что делают команды chown и chgrp , но не понимаю, почему вы хотели бы использовать их, кроме того, чтобы назначить владение другому пользователю или группе? Это в целях безопасности или по какой-то другой причине?

4 ответа4

12

Linux или другие Unix-style-системы созданы как многопользовательские системы.

Вы должны понимать, что в этой концепции не только физические лица учитываются как пользователи, демоны или другие программы могут запускаться как их собственные пользователи.

Например: имеет смысл создать выделенного пользователя для службы apache, если вы хотите запустить веб-сервер. Таким образом, apache не может испортить файлы, для которых у него нет разрешения, в основном из-за того, что он не владеет файлами напрямую и не входит ни в какую группу, в которой находится пользователь.

По сути, вы разделяете доступ к файлам, назначая несколько групп пользователям, вы можете определить, кто и как они могут получить доступ к определенным файлам.

Кстати, chown :group /path/file делает то же самое, что делает chgrp , запишите двоеточие перед именем группы, используя chown user:group /path/file вы можете сделать и то, и другое.

Я должен добавить, что права доступа к файлу должны быть установлены соответственно. Используя chmod вы можете установить флаги разрешений (чтение, запись, выполнение) для файлов пользователя, группы и мира.

1

Вы точно поняли: вы используете chown чтобы изменить владельца или группу файла, чтобы передать право собственности кому-то другому. Вы используете chmod для изменения разрешений, связанных с одним из владельцев.

Нет более глубокой потребности, которую вы пропустили, просто общий набор мелких потребностей, выраженных этими операциями. Миллионы причин, по которым какой-то другой пользователь должен владеть файлом, но ни одна из них глубже, чем "потому что мы делаем это таким образом".

1

Если у вас есть несколько файлов, сохраненных на флэш-накопителе USB, созданном в одной ОС, и вам нужно использовать некоторые из этих файлов или все из них в другой (Linux) ОС, вам может потребоваться выполнить команду поиска и в одном случае перейти вниз дерево каталогов для выбора всех файлов, а затем в другой команде поиска выполните команду chgrp, используя функцию -exec команды find, чтобы использовать файлы (предположительно, с разными идентификаторами пользователей и групп), чтобы файлы могли использоваться на обеих разных ОС Linux.

1

Это связано с одной простой вещью, называемой философией Unix.

Напишите программы, которые делают одно и делают это хорошо. Напишите программы для совместной работы. Написание программ для обработки текстовых потоков, потому что это универсальный интерфейс.

По крайней мере, это то, что я предполагаю :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .