В 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
имеет простой синтаксис, который легко запомнить.
Добавить комментарий