Управление правами собственности и правами на файлы, вероятно, является наиболее важной задачей системного администратора. В любой многопользовательской операционной системе, такой как Линукс, крайне важно правильно назначить владельца файлов и каталогов.
Команда chown — наиболее полезный инструмент для этого. Чтобы не путать с chmod, chown может изменять права пользователя на файлы и назначать их различным группам. Это важная команда, которую должен освоить любой серьезный пользователь Linux.
Вот руководство, с которого можно начать.
Как проверить право собственности на файл?
Прежде чем приступить к передаче файлов другим владельцам и группам, вам следует сначала научиться проверять текущего владельца файла. Процесс прост: добавление флага -l к обычной команде ls включает информацию о владельце запрошенного файла или каталога.
Предположим, у вас есть файл example.txt. Вот как будет выглядеть команда для просмотра информации о владельце:
ls -l example.txt
Использование chown для одного файла
Самый простой способ использования chown — изменить пользователя, владеющего определенным файлом. Синтаксис: sudo chown имя_пользователя имя_файла, где имя_пользователя — это имя пользователя, которому вы хотите передать файл, а имя_файла — это имя рассматриваемого файла. Вот как это выглядит на практике:
sudo chown who_else example.txt
Обратите внимание, что это не меняет группового владельца файлов, а только пользователя. Чтобы изменить владельца группы, вам придется использовать другой синтаксис — sudo chown :имя_группы имя_файла
В данном конкретном случае это выглядит следующим образом:
sudo chown :group2 example.txt
Вы также можете объединить обе команды в одну строку, чтобы изменить пользователя или группу владельцев файла:
sudo chown me:group1 example.txt
Изменение владельца нескольких файлов с помощью Chown
Изменение владельца каждого файла по отдельности довольно утомительно при работе с большим количеством файлов. К счастью, большинство команд Linux позволяет объединить несколько имен файлов, разделенных пробелами, в одной команде. Вот так:
sudo chown who_else:group2 example1.txt example2.txt.
Используйте тот же прием, чтобы проверить право собственности на несколько файлов:
ls -l example1.txt example2.txt
Даже при объединении нескольких имен файлов в одну команду этот процесс слишком неудобен для более чем пары файлов. Лучшим подходом является одновременное изменение владельца всего содержимого каталога.
Это достигается добавлением флага -R к команде chown. Это заставляет chown просматривать содержимое каталога и рекурсивно менять владельца каждого файла внутри. Вот демонстрация:
примеры sudo chown -R who_else:group2
Мы можем снова использовать флаг рекурсии, чтобы проверить право собственности на файлы в папке примеров.
Примеры ls -l -R
Изменить владельца файла с помощью UID
Системные администраторы, управляющие большим количеством пользователей, быстро устанут постоянно вводить имена пользователей. Единственная опечатка в любом из имен приводит к ошибке при использовании chown, что значительно замедляет работу.
Лучшей альтернативой является использование идентификатора пользователя. UID — это четырехзначный номер, присваиваемый каждому созданному пользователю, начиная с 1000 и выше. Это гораздо проще вводить, чем строку, и вероятность ошибок гораздо меньше.
Чтобы использовать этот метод, просто замените имя пользователя на UID:
sudo chown 1001 example.txt
Если вы не знаете UID пользователя, вы можете быстро проверить его с помощью команды id. Просто введитеid -u имя пользователя, чтобы увидеть уникальный идентификатор этого пользователя.
Этот метод можно распространить и на имена групп. Чтобы получить UID группы входа пользователя и других групп, к которым он принадлежит, используйте команду id без флага -u.
идентификатор who_else
Как видите, у нас есть различные идентификаторы групп, к которым принадлежит указанный пользователь. Объединив все это, мы можем использовать chown следующим образом, чтобы назначить нового владельца и изменить группу файла:
sudo chown 1001:1003 example.txt
Что еще можно сделать с помощью команды chown?
Мы уже продемонстрировали большинство распространенных вариантов использования chown. Теперь вы можете изменять пользователей и группы, владеющие файлом, различными способами. Но это не полный предел возможностей команды..
Вы можете обратиться к официальным страницам руководства для получения технического описания и полного списка аргументов, которые можно использовать с командой. Просто введите man chown в терминале, чтобы просмотреть его.
Полезен ли Чоун?
Если вы являетесь единственным пользователем своего компьютера, вам никогда не понадобится использовать chown. Но если вы используете систему Linux в профессиональных целях, будь то коммерческий сервер или университетский компьютер, то освоение команды chown (в дополнение к chmod ) имеет первостепенное значение.
Возможность назначать и удалять файлы пользователям и группам необходима для поддержания строгих границ в многопользовательских системах. Самое лучшее в chown — это его гибкость: вы можете работать с отдельными файлами или целыми каталогами с помощью одной команды.
Вы также можете назначить право собственности пользователям и группам отдельно или в комбинированном заявлении. Использование с более удобными UID упрощает работу даже с самыми сложными иерархиями пользователей.
.