В Linux все файлы и каталоги связаны с владельцами: пользователь и группа. На файлы и каталоги назначенны разрешения, определяющие права доступа, такие как чтение, запись и выполнение, которые в конечном итоге определяют, кто имеет какие права на доступ к ним.
В этой статье мы рассмотрим, как изменить группу-владельца на файл или каталог с помощью команды chgrp. Команда chgrp (change group) используется для изменения группы, которой принадлежит файл или директория. В отличие от команды chown, которая требует указать как имя пользователя, так и имя группы, в chgrp требуется только группа.
Синтаксис команды chgrp
Синтаксис для изменения группы, к которой принадлежит файл, довольно прост. Просто напишите команду chgrp и после нее укажите имя группы, а за ним имя объекта.
$ chgrp OPTION group_name /path
Атрибут group_name представляет собой имя группы, которая станет владельцем файла или каталога (/path). Кроме того, можно указать GID (идентификатор группы) вместо имени группы. В этом случае вам нужно добавить GID со знаком плюс (+).
Изменение группы-владельца файла с помощью команды chgrp
Перед изменением группы, которая является владельцем файла, рекомендуется с помощью команды ls проверить текущую группу, которой принадлежит файл file.
$ ls -l /file
Далее, чтобы установить собственником определенную группу (например, mygroup) выполните следующую команду:
$ chgrp mygroup /file
При изменении группы, которая владеет файлом или каталогом Вы можете столкнуться с ошибкой chgrp operation not permitted. Эта ошибка указывает на то, что пользователь, от которого Вы выполняете команду, не имеет достаточных прав для изменения владельца файла.
Решенением этой проблемы будет запуск команды с sudo (конечно, Ваш пользователь должен обладать такими привелегиями):
$ sudo chgrp mygroup /directory/file
Введите пароль пользователя, когда у Вас его спросит система, и в итоге права применятся.
Кроме того, Вы можете указать несколько файлов в качестве аргументов при использовании команды chgrp следующим образом:
$ sudo chgrp group_name file_1 file_2 file_3
Как рекурсивно изменить группу-владельца на файл или директорию в Linux
Иногда может потребоваться рекурсивно изменить группу у всех файлов и субдиректорий в определенном каталоге. Чтобы это сделать, используйте -R, как показано в приведенном ниже примере.
$ sudo chgrp -R group-name /directory
Изменение группы-владельца у символических ссылок
Использование опции -R (рекурсивно) не назначает прав на символические ссылки, и поэтому у них сохранятся прежняя группа. Чтобы установить новую группу и на символические ссылки, передайте параметр -h:
$ sudo chgrp -Rh www-data /var/www
Заключение
В этой статье мы показали Вам, как с помощью команду chgrp в Linux можно применить новую группу-владельца к файлу или директории. Хотя можно то же самое сделать и командой chown, но команда chgrp предлагает гораздо более простой способ сделать это. Команда chgrp была создана намного раньше, когда chown еще не мог работать с группами.
Спасибо за чтение и, пожалуйста, если у Вас есть какие-либо дополнения, пишите в комменариях.