Linux изменить права группы

Команда chown Linux

Основа философии Linux — все объекты операционной системы — это файлы, для предоставления доступа к тем или иным возможностям системы мы просто даем доступ пользователю к нужным файлам или убираем. Я более подробно рассказывал обо всех правах в статье права доступа к файлам в Linux, здесь же скажу только что у каждого файла есть три группы прав: для владельца, группы и всех остальных.

При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.

Команда chown Linux

1. Синтаксис и опции

Синтаксис chown, как и других подобных команд linux очень прост:

$ chown пользователь опции /путь/к/файлу

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

  • -c, —changes — подробный вывод всех выполняемых изменений;
  • -f, —silent, —quiet — минимум информации, скрыть сообщения об ошибках;
  • —dereference — изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию);
  • -h, —no-dereference — изменять права символических ссылок и не трогать файлы, к которым они ведут;
  • —from — изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа;
  • -R, —recursive — рекурсивная обработка всех подкаталогов;
  • -H — если передана символическая ссылка на директорию — перейти по ней;
  • -L — переходить по всем символическим ссылкам на директории;
  • -P — не переходить по символическим ссылкам на директории (по умолчанию).

Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.

2. Использование chown

Например, у нас есть несколько папок dir и их владелец пользователь sergiy:

Давайте изменим владельца папки dir1 на root:

Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:

Если вы хотите чтобы изменения применялись не только к этому каталогу, но и ко всем его подкаталогам, добавьте опцию -R:

Дальше давайте изменим группу и владельца на www-data только для тех каталогов и файлов, у которых владелец и группа root в каталоге /dir3:

chown —from=root:root www-data:www-data -cR ./

Для обращения к текущему каталогу используйте путь ./. Мы его использовали и выше. Далее указываем нужную группу с помощью опции —from и просим утилиту выводить изменения, которые она делает в файловой системе с помощью опции -c.

Читайте также:  Suse linux настройка dns

Выводы

Команда chown очень простая и позволяет только менять владельца и группу. Если вы хотите более подробно настроить права для владельца, группы и всех остальных, вам понадобится команда chmod. Права — довольно частая проблема при настройке работы различных программ, знание двух этих команд плюс ls и namei может помочь исправить много ошибок.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Изменение прав доступа у определенной группы в Linux?

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

  1. Необходимо дать права на исполнение файла определенной группе
  2. Дать право на изменение файла определенному пользователю
  3. Дать право на чтение файла определенной группе
  4. Дать право на изменение и создание файлов в определенном каталоге определенной группе

Заранее благодарен. Уже пару часов бьюсь не могу найти ответ, везде приводят пример что-то типа «u+x» и т.д., но не слова как дать определенной группе

planc

u — user
g — group
o — others ( остальные )

права:
r — read( чтение )
w — write( запись )
x — execution ( выполнение )

g+x — дать права группе на выполнение
g-x — забрать права у группы на выполнение

у каждого файла есть uid( user id ) и gid(group id)
поменять владельца: chown имя_юзера файл
поменять группу: chgrp имя_группы файл

если юзеру не принадлежит этот файл, тогда нужно читать про acl
или можно добавить юзера в группу, которой принадлежит файл и у группы есть права

Для этого эту определенную группу нужно сделать группой владельцем.
В никсах права работают не так как в винде, где можно любой группе/пользователю дать любые права.
В никсах есть только владелец, группа владелец и другие, вот этими понятиями и нужно оперировать.
Владельца и группу менять с помощью chown.

1. Права на исполнение файла группе «staff»:

Дать права группе «staff»:
chown :staff /home/user/scripts/script.sh
Дать права на запуск группе:
chmod g+x /home/user/scripts/script.sh
Дать права на запуск всем (в том числе группе):
chmod a+x /home/user/scripts/script.sh

2. Право на изменение файла пользователю «user»:

chown user /home/user/scripts/script.sh chmod u+rw /home/user/scripts/script.sh
chown :staff /home/user/scripts/script.sh chmod g+r /home/user/scripts/script.sh
chown -R :staff /home/user/scripts chmod -R g+rw /home/user/scripts

magrega

Подскажите, а как прописать права так, чтобы они сохранялись для новых файлов в папке? У меня есть папка с почтой /var/mail/Maildir c подпапками new, cur, tmp. У всех этих папок даны права 775, но когда новые файлы туда попадают, они все только с правами чтения\записи пользователя-владельца и приходится вручную писать chmod 775, чтобы группа тоже получила доступ.

Источник

Права доступа к файлам и папкам

url image

Поговорив о пользователях и группах, самое время вспомнить про права доступа, которые для них настраиваются. Общая схема прав одинакова и для файлов, и для папок. Вы уже видели, как система отображает права доступа, в выводе команды ls -l , которая показывает содержимое директории: Первые 10 символов содержат информацию о правах к файлу или каталогу.

Читайте также:  Astra linux автомонтирование флешки

Исходя из этого, иерархия доступа на уровне пользователей разбивается следующим образом: права пользователя-владельца, права участников группы-владельца и права всех остальных. Соответственно, для каждой категории указывается, какие операции с файлом ей доступны: чтение (r), запись (w) или выполнение (x) — для исполняемых файлов. Для директорий параметры те же, но обозначают немного другое: просмотр директории (r), создание папок / файлов (w) внутри директории, переход в директорию (x). Каждый из этих уровней доступа можно выразить в восьмеричной системе с помощью числового значения: 4 (r), 2 (w), 1 (x). Вот так мы и получаем общую схему прав:

a — любые пользователи
u — права пользователя g — права группы o — права всех остальных
r w x r w x r w x
4 2 1 4 2 1 4 2 1

Для отображения уровня прав помимо формата rwxrwxrwx используется упомянутый восьмеричный формат. Для этого достаточно сложить все уровни прав по категориям:

rwxrwxrwx = (4+2+1), (4+2+1), (4+2+1) = 777

Смена владельца файла или директории

Для смены владельца доступны два инструмента. Первый — chown , позволяет изменить пользователя и группу файла или папки:

chown [новый пользователь]:[новая группа] [файл или папка]

Если не указывать группу, изменится только пользователь-владелец. Если не указывать пользователя ( :[новая группа] ), изменится только группа-владелец. При изменении прав на директории можно использовать параметр -R . Он рекурсивно изменит владельца всех вложенных директорий и файлов. Представим, что нам нужно предоставить права на папку new-user для одноимённого пользователя и его группы. Команда для этого будет выглядеть так:

chown -R new-user:new-group /home/users/new-user
chgrp [группа] [файл или папка]

Смена прав доступа к файлу или директории

chmod [настройки прав] [файл или папка]

При работе с директориями опция -R позволит изменить права на все вложенные файлы и папки. Настройки прав в chmod можно определять двумя способами:

  1. Указав категорию ( u — пользователь-владелец, g — группа-владелец, o — другие пользователи, a — все пользователи), модификатор ( + , — , = ) и, соответственно, нужные права ( r , w , x ). Например, представим, что у нас есть файл example.txt с максимальным уровнем прав для всех категорий пользователей: Допустим, мы не хотим, чтобы кто-то в принципе мог запускать этот файл на выполнение. В таком случае нам нужно убрать параметр «x» из прав всех категорий пользователей сразу. Это можно сделать так:

Представим, что потом мы решили вернуть владельцу права на запуск файла. То есть нам нужно добавить параметр «x» в категорию пользователя-владельца:

Если вдруг мы захотим изменить весь набор параметров для отдельной категории разом, это будет выглядеть следующим образом:

В примере мы назначили максимальный уровень доступа всем категориям пользователей. Соответственно, для изменения уровня прав отдельной категории пользователей нужно изменить только это числовое значение. Например, запретим исполнение файла для всех пользователей:

Бывает, что нам нужно изменить права только на все папки или только на все файлы в определённой директории. Часто с этим можно столкнуться при настройке прав на файлы сайтов. Вот вам пара однострочников на этот случай:

Читайте также:  Realtek 8812bu linux driver

    Смена прав на 755 для всех папок внутри /var/www/sites/example.com :

find /var/www/sites/example.com/ -type d -exec chmod 755 <> \;
find /var/www/sites/example.com/ -type f -exec chmod 644 <> \;

Изменение атрибутов файлов

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

Посмотреть атрибуты файлов в текущей директории можно с помощью команды lsattr . Если запустить её без аргументов, она выведет атрибуты всех файлов в текущей директории. Если указать путь к файлу или папке, она перечислит свойства указанного файла или списка файлов в указанной папке соответственно:

Первые 20 символов в строке предназначены для отображения атрибутов файла.

Список атрибутов может отличаться в зависимости от файловой системы. Вот список основных:

«godmode» — файл становится неуязвим для любых изменений. Его нельзя удалить, переименовать, изменить содержимое, создать символьную ссылку на него.

в файл с таким атрибутом можно только добавлять новые данные. Старое содержимое изменить или удалить не получится. Это пригодится для защиты от вредоносных вставок или замен в файлах, куда постоянно записываются данные — например, в логах. Доступ к изменению старого содержимого по умолчанию есть только у суперпользователя root .

активирует безвозвратное удаление файла. В том смысле, что после удаления файл нельзя будет восстановить с носителя — при удалении все использовавшиеся для хранения файла блоки на диске перезаписываются нулями.

активирует «обратимое» удаление файлов. Это значит, что при удалении файла с этим атрибутом его содержимое можно восстановить.

сжатый файл. Все данные, записываемые в файл, автоматически сжимаются, а данные, извлекаемые из файла — возвращаются в исходное состояние.

настраивает для файла исключение при использовании утилиты dump . То есть файл не будет включен в архив при создании резервной копии этим способом.

показывает, что файл в качестве указателей использует экстенты.

в журналируемых файловых системах ( ext3 , ext4 ) указывает на то, что при сохранении файла он сначала будет записан в журнал ФС, и только потом — на диск.

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

атрибут для директорий. Указывает, что все изменения в папке синхронно записываются на диск, минуя кэш.

указывает, что все изменения в файле с этим атрибутом записываются синхронно на диск, минуя кэш.

Изменить атрибуты файла позволяет команда chattr :

chattr [модификатор][изменяемые атрибуты] [целевой файл или папка]

То есть, если нам нужно защитить какой-то важный файл от посягательств, можно использовать такую команду:

Проверяем — посягательства не работают.

Если же нам нужно вернуть файл в нормальное состояние, нужно выполнить обратную операцию:

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

Источник

Оцените статью
Adblock
detector