Разрешения
Владение
Владение (ownership) - определяет разрешения, которые имеет пользователь
У каждого файла есть пользователь-владелец, группа-владелец и другие сущности, которым предоставлен доступ (UGO - user, group, other)
Разрешения не имеют каких-либо дополнений, если вы владелец - вам предоставляются права, и все
Сначала проверяется владение пользователем, если совпадает - доступ дается, дальше не проверяется
Затем проверяется группа, если совпадает - доступ дается, дальше не проверяется
В случае отсуствия совпадения по пользователю и группе доступ дается на основе прав для others
ls -l отображает текущее владение и связаннные разрешения
[root@centos8 ~]# ls -l /home/admin
total 16764
drwxr-xr-x. 2 admin admin 6 Jan 7 12:39 Desktop
-rw-r--r--. 1 root root 17031320 Nov 19 00:48 docker-compose-Linux-x86_64
drwxr-xr-x. 2 admin admin 6 Jan 7 12:39 Documents
drwxr-xr-x. 2 admin admin 6 Jan 7 12:39 Downloads
drwxrwxr-x. 3 admin admin 23 Feb 16 20:52 folder
drwxr-xr-x. 2 admin admin 6 Jan 7 12:39 Music
drwxr-xr-x. 2 admin admin 6 Jan 7 12:39 Pictures
drwxr-xr-x. 2 admin admin 6 Jan 7 12:39 Public
drwxr-xr--
d - директория
rwx - права пользователя (read, write, execute)
r-x - права группы
r-- - права для других
Изменение владений
chown user[:group] file - для установки владений
[root@centos8 home]# touch newfile
[root@centos8 home]# ls -l
total 4
drwx------. 16 admin admin 4096 Feb 22 17:01 admin
drwx------. 3 bill bill 78 Feb 23 11:59 bill
-rw-r--r--. 1 root root 0 Feb 24 10:22 newfile
[root@centos8 home]# chown bill newfile
[root@centos8 home]# ls -l
total 4
drwx------. 16 admin admin 4096 Feb 22 17:01 admin
drwx------. 3 bill bill 78 Feb 23 11:59 bill
-rw-r--r--. 1 bill root 0 Feb 24 10:22 newfile
[root@centos8 home]# chown bill:profs newfile
chgrp group file - установить группу владения
Разрешения

Файлы
Директории
read
Чтение файлов
Отображение содержимого файлов (ls)
write
Изменение файлов
Удаление, создание файлов в директории
execute
Запуск файлов
Переход в директорию (cd0)
execute не может быть без read, поэтому это минимальный набор разрешений для доступа в папку и исполнения файлов в ней
Управления разрешениями
chmod - управление разрешениями
Может быть использовано в абсолютном или относительном режиме
Абсолютный - chmod 750 file
Относительный - chmod +x myscript (+x - добавить исполнение файла)

Umask
Umask - настройка shell, которая вычитает umask из значений разрешений по-умолчанию
Например, если значение umask равняется 174, тогда каждый новый файл будет иметь права доступа 602, а каждый новый каталог — 603
Разрешения по-умолчанию для файлов - 666
Разрешения по-умолчанию для директорий - 777
umask назначается на shell и поэтому применяется ко всем файлам и директориям, создаваемым пользователем
Параметры расчета umask находятся в /etc/profile или в home/.bash_profile
Специальные разрешения
Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты.
SUID - если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
SGID - этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
Sticky-bit - этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.
Файлы
Директории
SUID (set user ID) (4)
Запустить как владелец
-
SGID (2)
Запустить как группа-владелец
Наследование группы-владельца
Sticky Bit (1)
-
Удаление, если ты только владелец файла
Управление специальными разрешениями
SUID
chmod 4770 myfile
chmod u+s myfile
SGID
chmod 2770 mydir
chmod g+s mydir
Sticky Bit
chmod 1770 mydir
chmod +t mydir
Понятие ACL
ACL - Access Control List - правила, используемые для определения разрешений для дополнительных пользователей и групп
Normal ACL - применяется только к созданным файлам
Default ACL - применяется и к новым файлам
getfacl - показывает текущие настройки
Управление ACL
setfacl - устанавливает настройки
setfacl -R -m g:somegroup:rx /data/groups
setfacl -m d:g:somegroup:rx /data/groups
[root@centos8 home]# getfacl sales
# file: sales
# owner: root
# group: sales
user::rwx
group::rwx
other::---
[root@centos8 home]# setfacl -m d:g:account:rx sales
[root@centos8 home]# ls -l
total 4
drwxrwx---. 2 root account 6 Feb 24 11:06 account
drwx------. 16 admin admin 4096 Feb 22 17:01 admin
drwx------. 3 bill bill 78 Feb 23 11:59 bill
-rw-r--r--. 1 bill root 0 Feb 24 10:22 newfile
drwxrwx---+ 2 root sales 6 Feb 24 11:06 sales
[root@centos8 home]# getfacl sales
# file: sales
# owner: root
# group: sales
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:group:account:r-x
default:mask::rwx
default:other::---
Default ACL наследует стандартные разрешения, применяемые к директории
Маска в ACL отфильтровывает разрешение на исполнение, поскольку это противоречит концепции безопасности в Linux
Разрешение на исполнение в Linux по-умолчанию не может быть получено и должно выставляться отдельно
Last updated
Was this helpful?