Linux chmod chown chgrp
Права файлов (chmod)
# chmod --help
Использование: chmod [КЛЮЧ]... РЕЖИМ[,РЕЖИМ]… ФАЙЛ
или: chmod [КЛЮЧ]… ВОСЬМ-РЕЖИМ ФАЙЛ…
или: chmod [КЛЮЧ]… --reference=ОФАЙЛ ФАЙЛ…
Смена РЕЖИМА доступа к указанным ФАЙЛАМ.
При задании --reference, установить режим
указанных ФАЙЛОВ как у ЭФАЙЛА.
-c, --changes как verbose, но выводить только при выполнении
изменений
-f, --silent, --quiet не выводить большинство сообщений об ошибках
-v, --verbose выводить диагностические сообщения по каждому файлу
--no-preserve-root не обрабатывать «/» особым образом (по умолчанию)
--preserve-root отказываться рекурсивно обрабатывать «/»
--reference=ЭФАЙЛ использовать режим доступа ЭФАЙЛА
вместо значений РЕЖИМ
-R, --recursive рекурсивно изменять файлы и каталоги
--help показать эту справку и выйти
--version показать информацию о версии и выйти
Каждый РЕЖИМ задается в форме «[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+».
Обычно права доступа регламентируют такие действия как чтение, запись (данных в файл или файлов в каталог) и исполнение. В системах UNIX все пользователи разделяются на три группы: "user", Права владельца(непосредственно владелец файла), "group", Групповые права(группа, к которой принадлежит владелец файла) и "other", Публичные права(все остальные).
Команда "chmod" имеет два режима: Абсолютный(цифровой) и Символьный режим. Команда "chmod"
Абсолютный(цифровой). При установке правил в цифровом виде необходимо указывать 3 цифры (например 754):
- 7 - Первая цифра - Права владельца (Первая цифра означает применения прав для пользователя)
- 5 - Вторая цифра - Групповые права (Вторая - для группы)
- 4 - Третья цифра - Публичные права (Третья - права для всех остальных )
7 - rwx - читать, писать, выполнять
6 - rw- - читаь, писать
5 - r-x - читать, выполнять
4 - r-- - читать
3 - -wx - писать, выполнять
2 - -w- - писать
1 - --x - выполнять
0 - --- - ничего нельзя делать
Символьный режим. В текстовом формате установка правил проводится аналогично:
rwx дает право на чтение, запись и выполнение
rw- дает право на чтение и изменение содержимого
r-x дает право на чтение и исполнение
r-- дает право на чтение
-wx дает право на запись и исполнение
--х дает право на исполение
-w- дает право на запись
--- файл не доступен
При Абсолютном (цифровом) режиме используется 3-х цифровой код прав доступа. Символьный режим использует буквенный формат для установки прав доступа. Здесь используются буквы "r", "w" и "x" для read, write и execute соответственно. А также "u", "g", "o" для user, group, other | и a = all (все) соответственно.
d = directory; U = user; G = group; O = other
r = Read; w = Write; x = eXecute; - = Нет права
Например изменение прав на 755 "u", "g", "o" для user и group, other:
u - для пользователей
g - для его группы
o - для остальных
а - для всех (используется по умолчанию)
chmod u=rwx,go=rx filename
изменение прав на 644
chmod u=rw,go=r filename
изменение прав на 600
chmod u=rw,go= filename
изменение прав на 444
chmod a=r filename
Наиболее часто встречающиеся сочетания
- | rw- | --- | --- chmod 600 только владелец файла может читать/записывать
- | rw- | r-- | r-- chmod 644 владелец файла может читать и записывать, члены группы и остальные - только читать
- | rw- | rw- | rw- chmod 666 любой пользователь может читать/записывать
- | rwx | --- | --- chmod 700 только владелец файла, может читать/записывать и запускать на исполнение
- | rwx | --x | --x chmod 711 владелец файла, может читать/записывать и запускать на исполнение, члены группы и остальные могут запускать на исполнение, но не могут читать и изменять
- | rwx | r-x | r-x chmod 755 владелец файла, может читать/записывать и запускать на исполнение, члены группы и остальные могут читать и запускать на исполнение, но не могут записывать
- | rwx | rwx | rwx chmod 777 любой пользователь может читать/записывать и запускать на исполнение
d | rwx | --- | --- chmod 700 только владелец может входить в этот каталог, читать и записывать в него файлы
d | rwx | r-x | r-x chmod 755 любой пользователь может входить в этот каталог и читать содержимое каталога, но изменять содержимое может только владелец
А также можно использовать символы:
+ добавить привелегию
- отнять привелегию
= присвоение прав (и отмена не заданных привелегий)
Рекурсивная установка прав на файлы в каталоге
пример:
chmod -hR <права> <каталог>
chmod -hR 777 /home/iuser/files
Установка прав на перечисленные файлы, пример:
chmod права файл1 файл2 ... файлN
chmod 777 file1.txt file2.txt ffile3.txt
Для всех битов (a = all) убрать (-, символ минус) флаги r и w (т.е. запретить чтение и запись)
chmod a-rw /home/user2/folder1/file2.txt
Для группы (g = group) и для других (o = others) добавить (+, символ плюс) флаг чтения (r)
chmod go+r /home/user2/folder1/file9.txt
Информацию о команде chmod можно прочесть в мануале:
man chmod
Так же chmod позволяет изменять биты SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно. Маска для SUID выглядит как - 4000, для SGID как -2000 а для T - 1000. Эти атрибуты имеют смысл только при установленном соответствующем бите разрешающим ваполнение и обозначаются при символьной записи буквой «s»: srwx.
Бит SUID можно задать например командой: chmod 4555 filename - в этом случае запускаться файл на исполнение будет с правами владельца, но права на исполнение имеют все пользователи. Установка SGID для директории приведёт к установке принадлежности каждого нового создаваемого файла к той же группе, к которой принадлежит сама директория, а не к основной группе владельца, как это происходит по умолчанию. SUID для директории не имеет смысла.
t-бит используется только с директориями. Когда t-бит для директории не установлен, файл в данной директории может удалить любой пользователь, имеющий доступ на запись к данному файлу. При установленном t-бите на директорию, удалить файл может только владелец этого файла.
Право на запись (w) даёт пользователю возможность записывать или изменять файл, а право на запись для каталога - возможность создавать новые файлы или удалять файлы из этого каталога. Если на каталоге стоит возможность записи (w), то файл внутри этого каталога можно будет удалить, даже если право на запись для него не установлено. (В соответствии с концепцией файловой системы POSIX).
chmod калькулятор
https://advancedhosters.com/ru/chmod#calc
chmod - Изменяет права доступа к файлу
chown - Изменяет владельца файла
chgrp - Изменяет группу владельца файла
chcon - Изменяет контекст безопасности файла (SELinux)
# chown --help
Использование: chown [КЛЮЧ]… [ВЛАДЕЛЕЦ][:[ГРУППА]] ФАЙЛ…
или: chown [КЛЮЧ]… --reference=ОФАЙЛ ФАЙЛ…
Смена владельца и группы указанного ФАЙЛА на ВЛАДЕЛЬЦА и/или ГРУППУ.
При задании --reference, сменить владельца и группу
указанных ФАЙЛОВ на такие же как у ЭФАЙЛА.
-c, --changes как verbose, но выводить только при выполнении
изменений
-f, --silent, --quiet не выводить большинство сообщений об ошибках
-v, --verbose выводить диагностические сообщения по каждому файлу
--dereference применять к файлу по символьной ссылке, а не к самой
ссылке (по умолчанию)
-h, --no-dereference применять к символьной ссылке, а не к самому файлу
(имеет смысл только на системах, где
можно изменять владельца символьной ссылки)
--from=ТЕКУЩИЙ_ВЛАДЕЛЕЦ:ТЕКУЩАЯ_ГРУППА
Изменяет владельца и/или группу каждого файла
только если текущий владелец и/или группа
совпадают с указанными.
Как группа, так и владелец могут быть опущены;
в этом случае совпадение для данного атрибута
не обязательно.
--no-preserve-root не обрабатывать «/» особым образом (по умолчанию)
--preserve-root отказываться рекурсивно обрабатывать «/»
--reference=ЭФАЙЛ использовать владельца и группу ЭФАЙЛа, вместо
указанных значений ВЛАДЕЛЕЦ:ГРУППА
-R, --recursive рекурсивно обрабатывать файлы и каталоги
Следующие параметры влияют на способ обхода иерархии каталогов при
заданном параметре -R. Если указано несколько этих параметров, действует
только последний.
-H если аргумент командной строки является символьной
ссылкой на каталог, перейти по ней
-L переходить по любой встреченной символьной ссылке на
каталог
-P не переходить по символьным ссылкам (по умолчанию)
--help показать эту справку и выйти
--version показать информацию о версии и выйти
Владелец не изменяется, если он не задан в аргументе. Группа также не
изменяется, если не задана; но если после символьного ВЛАДЕЛЬЦА стоит
символ «:», подразумевается изменение группы на основную группу текущего
пользователя.
ВЛАДЕЛЕЦ и ГРУППА могут быть как числовыми, так и символьными.
Примеры:
chown root /u Меняет владельца /u на «root».
chown root:staff /u То же, но еще меняет группу на «staff».
chown -hR root /u Меняет владельца /u и вложенных файлов на «root».
chgrp — Программа предназначенная для изменения группы (GID) файлов. В отличие от команды chown, chgrp позволяет рядовым пользователям изменять группы, но только те, членами которых они являются. Группа может быть представлена как именем группы, так и её числовым идентификатором (GID).
Расширение GNU (начиная с GNU fileutils−4.0) позволяет использовать --reference=rfile в качестве определения группы: та же группа, что и у rfile.
# chgrp --help
Использование: chgrp [КЛЮЧ]… ГРУППА ФАЙЛ…
или: chgrp [КЛЮЧ]… --reference=ОФАЙЛ ФАЙЛ…
Смена ГРУППЫ у указанных ФАЙЛОВ.
При задании --reference, сменить группу
указанных ФАЙЛОВ как у ЭФАЙЛА.
-c, --changes как verbose, но выводить только при выполнении
изменений
-f, --silent, --quiet не выводить большинство сообщений об ошибках
-v, --verbose выводить диагностические сообщения по каждому файлу
--dereference применять к файлу по символьной ссылке, а не к самой
ссылке (по умолчанию)
-h, --no-dereference применять к символьной ссылке, а не к самому файлу
(имеет смысл только на системах, где
можно изменять владельца символьной ссылки)
--no-preserve-root не обрабатывать «/» особым образом (по умолчанию)
--preserve-root отказываться рекурсивно обрабатывать «/»
--reference=ЭФАЙЛ использовать группу ЭФАЙЛа, вместо
указанного значения ГРУППЫ
-R, --recursive рекурсивно обрабатывать файлы и каталоги
Следующие параметры влияют на способ обхода иерархии каталогов при
заданном параметре -R. Если указано несколько этих параметров, действует
только последний.
-H если аргумент командной строки является символьной
ссылкой на каталог, перейти по ней
-L переходить по любой встреченной символьной ссылке на
каталог
-P не переходить по символьным ссылкам (по умолчанию)
--help показать эту справку и выйти
--version показать информацию о версии и выйти
Примеры:
chgrp staff /u Меняет группу /u на staff.
chgrp -hR staff /u Меняет группу /u и вложенных файлов на staff.
Изменим группу, к которой принадлежит корневой каталог, применив рекурсивный вариант команды.
sudo chgrp -hR www-data /var/www
chcon — вносит изменения в контекст SELinux для файлов. Изменения, вносимые с помощью команды chcon не сохраняются после перемаркирования файловой системы или выполнения команды /sbin/restorecon (apt install policycoreutils). (Так что для настройки контекста лучше использовать другие программы)
# chcon --help
Использование: chcon [КЛЮЧ]… КОНТЕКСТ ФАЙЛ…
или: chcon [КЛЮЧ]… [-u ПОЛЬЗ-ЛЬ] [-r РОЛЬ] [-l ДИАПАЗОН] [-t ТИП] ФАЙЛ…
или: chcon [КЛЮЧ]… --reference=ЭФАЙЛ ФАЙЛ…
Меняет КОНТЕКСТ безопасности SELinux указанных ФАЙЛОВ.
При задании --reference, делает контекст безопасности
указанных ФАЙЛОВ таким же как у ЭФАЙЛА.
Аргументы, обязательные для длинных ключей, обязательны и для коротких.
--dereference применять к файлу по символьной ссылке, а не к самой
ссылке (по умолчанию)
-h, --no-dereference применять к символьной ссылке, а не к самому файлу
-u, --user=ПОЛЬЗ задать ПОЛЬЗОВАТЕЛЯ в наз-мом контексте безопасности
-r, --role=РОЛЬ задать РОЛЬ в назначаемом контексте безопасности
-t, --type=ТИП задать ТИП в назначаемом контексте безопасности
-l, --range=ДИАПАЗОН задать ДИАПАЗОН в назначаемом контексте безопасности
--no-preserve-root не обрабатывать «/» особым образом (по умолчанию)
--preserve-root отказываться рекурсивно обрабатывать «/»
--reference=ЭФАЙЛ использовать контекст безопасности ЭФАЙЛа, вместо
указанного значения КОНТЕКСТА
-R, --recursive рекурсивно обрабатывать файлы и каталоги
-v, --verbose выводить диагностические сообщения для каждого файла
Следующие параметры влияют на способ обхода иерархии каталогов при
заданном параметре -R. Если указано несколько этих параметров, действует
только последний.
-H если аргумент командной строки является символьной
ссылкой на каталог, перейти по ней
-L переходить по любой встреченной символьной ссылке на
каталог
-P не переходить по символьным ссылкам (по умолчанию)
--help показать эту справку и выйти
--version показать информацию о версии и выйти
Примеры:
Установить для файла filename тип httpd_sys:
chcon -t httpd_sys_content_t filename
Установить тип httpd_sys для каталога catalogname и всего его содержимого:
chcon -R -t httpd_sys_content_t catalogname
Использование, ПРИМЕРы!
Команда chmod -R будет рекурсивно применена ко всем вложенным файлам и каталогам.
Владелец vasya состоящий в группе users, владеет всеми правами на каталог vasya и со всеми вложениями папок и файлов
sudo chown -hR vasya:users /home/vasya
только на папку
sudo chown vasya:users /home/vasya
Задаем права на доступ к чтению ЮЗЕРУ и ГРУППЕ, с рекурсией (-R), т.е. со всеми вложениями папок и файлов
sudo chmod -hR ug+r /home/vasya
только на папку
sudo chmod ug+r /home/vasya
В символьном варианте:
chmod u=rwx,g=r,o=r filename
Установить права на чтение каталога catalog и всего его содержимого для всех пользователей:
chmod -hR a+r ./catalog
Для смены владельца файлов/каталогов используем chown:
chown -hR vasya:users /home/vasya
Изменим владельца корневого каталога сервера:
sudo chown -hR www-data:www-data /var/www
Добавить пользователя к группе www-data можно следующей командой:
sudo usermod -a -G www-data username
Удалить пользователя из группы www-data можно командой:
sudo gpasswd -d username www-data
Удалить атрибуты SUID и SGID файла filename:
chmod u-s,g-s ./filename
Изменить идентификатор группы для /home на 111:
chown :111 /home
Чтобы проверить какие права установлены на директорию выполните в командной строке:
ls -Alh /home/vasya
Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:
cd /samba
sudo chmod -R 0755 obmen
sudo chown -R nobody:nogroup obmen/
Комментарии
Отправить комментарий