Из предыдущего раздела вы узнали, что у каждого объекта файловой системы имеется владелец и группа. В этом разделе вы узнаете, как изменить владельца и группу существующего файла, а также установить группу, назначаемую новым файлам по умолчанию.
Группа файла
Для того чтобы изменить группу файла, необходимо использовать команду chgrp, в качестве параметров для которой необходимо указать название группы и название одного или нескольких файлов. Если пожелаете, вы можете использовать номер группы. Если группу файла изменяет обычный пользователь, он должен быть членом назначаемой группы. Пользователь root может назначить файлу любую группу. В листинге 55 показан соответствующий пример.
Листинг 55. Изменение группы-владельца
ian@pinguino:~$ touch file1 file2
ian@pinguino:~$ ls -l file*
-rw-r--r-- 1 ian ian 0 2005-12-26 14:09 file1
-rw-r--r-- 1 ian ian 0 2005-12-26 14:09 file2
ian@pinguino:~$ chgrp xml-101 file1
ian@pinguino:~$ chgrp 1001 file2
ian@pinguino:~$ ls -l file*
-rw-r--r-- 1 ian xml-101 0 2005-12-26 14:09 file1
-rw-r--r-- 1 ian xml-101 0 2005-12-26 14:09 file2
Как и у многих команд, описываемых в этом руководстве, у команды chgrpp есть параметр -R, который позволяет рекурсивно применять изменения ко всем выбранным файлам и подкаталогам.
Группа, назначаемая по умолчанию
В предыдущем разделе вы узнали, как установка режима sgid для каталога может привести к тому, что файлы, создаваемые в этом каталоге, будут принадлежать группе этого каталога, а не той группе, в которую входит пользователь, создающий файл.
Также для временного изменения вашей основной группы на другую, членом которой вы являетесь, вы можете воспользоваться командой newgrp. Будет создана новая командная оболочка, при выходе из которой будет восстановлена ваша прежняя основная группа, что продемонстрировано в листинге 56.
Листинг 56. Использование команды newgrp для временного изменения группы по умолчанию
ian@pinguino:~$ newgrp xml-101
ian@pinguino:~$ groups
xml-101 adm dialout cdrom floppy audio dip video plugdev lpadmin scanner admin ian
ian@pinguino:~$ touch file3
ian@pinguino:~$ ls -l file3
-rw-r--r-- 1 ian xml-101 0 2005-12-26 14:34 file3
ian@pinguino:~$ exit
ian@pinguino:~$ groups
ian adm dialout cdrom floppy audio dip video plugdev lpadmin scanner admin xml-101
Владелец файла
Пользователь root может изменить владельца файла с помощью команды chown. В простейшей форме синтаксис этой команды схож с синтаксисом команды chgrp, за исключением того, что вместо названия или идентификатора группы используется имя или идентификатор пользователя. Одновременно можно изменить группу файла, добавив справа от имени или идентификатора пользователя двоеточие и название или идентификатор группы. В случае если установлено только двоеточие, будет использоваться группа пользователя по умолчанию. И, конечно же, параметр -R приведет к рекурсивному внесению изменений. В листинге 57 показан соответствующий пример.
Листинг 57. Использование команды chown для изменения владельца файла
root@pinguino:~# ls -l ~ian/file4
-rw-r--r-- 1 ian ian 0 2005-12-26 14:44 /home/ian/file4
root@pinguino:~# chown greg ~ian/file4
root@pinguino:~# ls -l ~ian/file4
-rw-r--r-- 1 greg ian 0 2005-12-26 14:44 /home/ian/file4
root@pinguino:~# chown tom: ~ian/file4
root@pinguino:~# ls -l ~ian/file4
-rw-r--r-- 1 tom xml-101 0 2005-12-26 14:44 /home/ian/file4
В существовавшей ранее форме указания пользователя и группы вместо двоеточия использовалась точка. Использовать такой способ указания не рекомендуется, так как в случае, если в имени пользователя содержится точка, возникнет ошибка.
Взято с ibm developerworks