Команда Chgrp в Linux (Изменить группу)

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

В этой статье объясняется, как использовать команду chgrp для изменения группового владения заданными файлами.

Синтаксис команды chgrp

Команда chgrp принимает следующую форму:

chgrp [OPTIONS] GROUP FILE..
  • GROUP , имя новой группы или идентификатор группы (GID). Числовой GID должен начинаться с символа + .
  • FILE.. , имя одного или нескольких файлов.

В отличие от команды chown которая позволяет вам изменять владение пользователем и группой, команда chgrp изменяет только владение группой.

Чтобы узнать, к какой группе принадлежит файл, используйте команду ls -l .

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

Как изменить владение файловой группой

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

Например, чтобы изменить группу имени файла filename на www-data вы должны запустить:

chgrp www-data filename

Если вы запустите команду с непривилегированным пользователем, вы получите ошибку «Операция запрещена». Чтобы подавить сообщение об ошибке, вызовите команду с параметром -f . По умолчанию в случае успеха chgrp не производит никакого вывода и возвращает ноль.

Вы также можете передать несколько файлов в качестве аргументов команде chgrp :

chgrp www-data file1 file2 dir1

Используйте опцию -v чтобы получить информацию об обрабатываемых файлах:

chgrp www-data file1 file2
changed group of 'file1' from nginx to www-data
group of 'file2' retained as www-data

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

Вместо имени пользователя можно использовать числовой идентификатор группы (GID). В следующем примере группа, принадлежащая файлу, изменяется на новую группу с GID 1000:

chgrp +1000 filename

Как изменить принадлежность группы символических ссылок

Если команда chgrp не работает рекурсивно, поведение по умолчанию заключается в изменении группового владения целевыми символами , а не самих символических ссылок .

Например, если вы попытаетесь изменить группу символической ссылки symlink1 которая указывает на /opt/file1 , chgrp изменит владельца файла или каталога, на который указывает символическая ссылка:

chgrp www-data symlink1

Скорее всего, вместо изменения целевой группы вы получите ошибку «невозможно разыменовать символическую ссылку1»: в разрешении отказано ».

Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks . 1 означает включен, а 0 отключен. Мы рекомендуем не отключать защиту символических ссылок.

Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h :

chgrp -h www-data symlink1

Как рекурсивно изменить владение группой

Чтобы рекурсивно изменить групповое владение всеми файлами и каталогами в данном каталоге, используйте параметр -R .

Например, следующая команда изменит владельца всех файлов и каталогов в каталоге /var/www на группу www-data :

chgrp -R www-data /var/www

Если указана рекурсивная опция, chgrp не будет проходить по символическим ссылкам и не будет вносить изменений в символические ссылки. Чтобы изменить групповое владение символическими ссылками, передайте параметр -h :

chgrp -hR www-data /var/www

Другие параметры, которые можно использовать при рекурсивном изменении владения группой, — это -H и -L .

Если аргумент, переданный команде chgrp является символической ссылкой, опция -H заставит команду пройти по ней. -L указывает chgrp по каждой символической ссылке в обнаруженный каталог. В большинстве случаев вам не следует использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.

Выводы

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

Хотя вы можете использовать более популярную команду chown для изменения группы, chgrp имеет простой синтаксис, который легко запомнить.

Для получения дополнительной информации о команде chgrp посетите страницу руководства chgrp или введите man chgrp в своем терминале.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий

Ваш адрес email не будет опубликован.