Введение
В Linux каждый файл связан с владельцем и группой и имеет разрешения, определяющие, какие пользователи могут читать, записывать или выполнять файл.
С помощью команды chgrp вы можете изменить группу владельцев определенных файлов или папок. В этом руководстве объясняется, как использовать команду chgrp.
Синтаксис команды chgrp
Команда chgrp имеет следующий вид:
chgrp [OPTIONS] GROUP FILE
- ГРУППА - название новой группы или ID группы (GID). Перед числовым GID должен стоять символ +.
- ФАЙЛ - имя одного или нескольких файлов.
В отличие от команды chown, которая позволяет изменить владельца пользователя и группы, chgrp меняет только владельца группы.
Чтобы узнать, к какой группе принадлежит файл, используйте команду ls -l. Только root или пользователь с привилегиями sudo могут изменить группу владельцев файла.
Как изменить группу владельцев файла
Чтобы изменить группу владельцев файла или каталога, вызовите команду chgrp, за которой следует имя новой группы и целевой файл в качестве аргументов.
Например, чтобы изменить группу имени файла с запуском nginx:
chgrp nginx nome_file
Если вы запустите команду с непривилегированным пользователем, будет отображаться ошибка « Операция не разрешена ». Чтобы устранить ошибки, запустите команду с параметром -f. По умолчанию chgrp ничего не выводит в случае успеха.
Вы также можете передать несколько файлов в качестве аргументов команде chgrp:
chgrp nginx cartella_1 nome_file_1 nome_file_2
Используйте параметр -v, чтобы получить информацию об обрабатываемых файлах:
chgrp nginx nome_file_1 nome_file_2
changed group of 'nome_file_1' from www-data to nginx
group of 'nome_file_2' retained as nginx
Чтобы вывести информацию только о тех файлах, которые группа фактически изменяет, используйте -c вместо -v.
Вместо имени пользователя можно использовать числовой идентификатор группы (GID). В следующем примере группа владельцев файла изменяется на новую группу с GID 1012:
chgrp +1012 nome_file
Как изменить владельца группы Symlink
По умолчанию команда chgrp изменяет группу владельцев целевого файла или папки символической ссылки, но не изменяет непосредственно владельца самих символических ссылок.
Например, если вы попытаетесь изменить группу символических ссылок link_1, которая указывает на /etc/filename_1, команда chgrp изменит владельца файла или каталога, на который указывает символическая ссылка:
chgrp nginx link_1
Скорее всего, возникнет ошибка, подобная следующей: « Не удается разыменовать 'link_1': Отказано в доступе ».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены и работать с целевыми файлами невозможно.
Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h:
chgrp -h nginx link_1
Как рекурсивно изменить владельца группы
Чтобы рекурсивно изменить группу владельцев всех файлов и каталогов в данном каталоге, используйте параметр -R.
Например, следующая команда изменит группу владельцев всех файлов и каталогов в каталоге /var/www на группу nginx:
chgrp -R nginx /var/www
Когда указана опция recursive, в символические ссылки не вносятся никакие изменения. Чтобы изменить владельца группы символических ссылок, также передайте параметр -h:
chgrp -hR nginx /var/www
Вывод
В этом руководстве мы увидели, как использовать команду chgrp в Linux. Для получения дополнительной информации введите в терминале следующую команду:
man chgrp