В Unix я давно узнал о chmod
: традиционном способе установки разрешений, о Unix (и разрешении программам получать привилегии, используя setuid, setgid).
Недавно я обнаружил несколько новых команд в GNU / Linux:
setfacl
расширяет традиционныеugo:rwx
биты иt
немногоchmod
.setcap
дает больший контроль зерна, чемug:s
битыchmod
.chattr
Позволяет некоторые другие элементы управления (немного микс) файла.
Есть ли другие?
linux
permissions
filesystems
gnu
Ctrl-Alt-Делор
источник
источник
chmod
Ответы:
chmod
: изменить биты режима файлаИспользование (восьмеричный режим):
Использование (символьный режим):
references
является комбинацией буквugoa
, которые определяют, какой доступ пользователяfiles
будет изменен:u
пользователь, которому он принадлежитg
другие пользователи вfile
группеo
другие пользователи, не входящие в группу файлаa
все пользователиЕсли он опущен, он используется по умолчанию для всех пользователей, но
umask
изменяются только разрешения, разрешенные пользователем .operator
это один из персонажей+-=
:+
добавить указанные биты режима файла к существующим битам режима файла каждогоfile
-
удаляет указанные биты режима файла в существующие биты режима файла каждогоfile
=
добавляет указанные биты и удаляет неуказанные биты, за исключениемsetuid
иsetgid
бит для каталогов, если явно не указано.mode
состоит из комбинации буквrwxXst
, которые указывают, какой бит разрешения должен быть изменен:r
читатьw
записыватьx
выполнить (или поиск по каталогам)X
выполнять / искать, только если файл является каталогом или уже имеет бит выполнения, установленный для какого-либо пользователяs
setuid или setgid (в зависимости от указанногоreferences
)t
ограниченный флаг удаления или закрепленный битВ качестве альтернативы,
mode
буква может состоять из одной буквыugo
, и в этом случае режим соответствует разрешениям, предоставленным в настоящее время владельцу (u
), членуfile
группы (g
) или разрешениям пользователей ни в одной из предыдущих категорий (o
).Различные биты
chmod
объяснили:setfacl
)rwx
- права чтения (r), записи (w) и выполнения / пересечения (x).#!
) И других исполняемых файлов.s
иt
- липкий бит (t) и setgid (s) для каталоговs
- setuid, setgid, для исполняемых файлов.setcap
на более современный способ сделать это.chown
chgrp
:chattr
: изменить атрибуты файлаИспользование:
operator
является одним из символов+-=
: *+
добавляет выбранные атрибуты к существующимattributes
изfiles
*-
удаляет выбранныеattributes
*=
перезаписывает текущий набор атрибутов, которые файлы имеют с указаннымиattributes
.attribute
является комбинацией буквacdeijstuADST
, которые соответствуют атрибутам:a
добавить толькоc
сжатыйd
нет свалкиe
формат экстентаi
неизменныйj
журналирование данныхs
безопасное удалениеt
без слияния хвостовu
неудаляемостиA
нетatime
обновленийD
синхронные обновления каталоговS
синхронные обновленияT
вершина иерархии каталоговsetfattr
: изменить расширенные атрибуты файлаИспользование (установить атрибут):
Использование (удалить):
name
Имя расширенного атрибута для установки или удаленияvalue
это новое значение расширенного атрибутаsetfacl
: изменить списки контроля доступа к файламИспользование:
option
должен включать одно из следующего:--set
установить ACL для файла или каталога, заменив предыдущий ACL-m
|--modify
изменить ACL файла или каталога-x
|--remove
удалить записи ACL из файла или каталогаtarget
это одна из буквugmo
(или более длинная форма, показанная ниже):u
,users
разрешение именованного пользователя, идентифицированного пользователемparam
, по умолчанию указывается владелец файла,uid
если он опущенg
,group
разрешение именованной группы, идентифицируемой поparam
умолчанию, группе-владельцу,uid
если опущеноm
,mask
Эффективные права маскиo
,other
разрешения другихperms
это комбинация буквrwxX
, которые соответствуют разрешениям:r
читатьw
записыватьx
выполнятьX
выполнять только если файл является каталогом или уже имеет разрешение на выполнение для какого-либо пользователяВ качестве альтернативы,
perms
может быть восьмеричная цифра (0
-7
), обозначающая набор разрешений.setcap
: изменить возможности файлаИспользование:
A
capability-clause
состоит из разделенного запятыми списка имен возможностей, за которым следует список пар флаг-оператор.Доступные операторы
=
,+
и-
. Доступные флагиe
,i
иp
которые соответствуют Действуют , наследуемые и Разрешенные наборами возможностей.=
Оператор поднимет указанные наборы возможностей и сбросить другие. Если вместе с=
оператором не указаны флаги, все наборы возможностей будут сброшены.+
И-
операторы будут повышать или понижать один или более указанных наборы возможностей соответственно.chcon
: изменить контекст безопасности файла SELinuxИспользование:
пользователь - это пользователь SELinux, например
user_u
,system_u
илиroot
.роль - это роль SELinux (всегда
object_r
для файлов)тип - это тип субъекта SELinux
chsmack
: изменить SMACK расширенные атрибутыИспользование:
value
метка SMACK, которая будет установлена дляSMACK64
расширенного атрибута файлаsetrichacl : изменить расширенный список контроля доступа.
richacl - это функция, которая добавляет более продвинутые списки ACL.
В настоящее время ведутся работы, поэтому я не могу вам о них много рассказать. Я не использовал их.
См. Также этот вопрос. Существуют ли более продвинутые списки ACL для файловых систем, помимо традиционных rwx и POSIX ACL? и справочная страница
источник
с высокого уровня:
-rwxrwxrwx
обрабатываютсяchmod
вместе с идентификаторами владельца и группы, привязанными к каждому файлу или папке в файловой системе, обрабатываемойchown
иchgrp
; все в основном знают эту часть.другие ключевые моменты:
user_xattr
и я мог выбрать, чтобы xattr не был доступен в корневой файловой системе во время установки; теперь я думаю, что в RHEL / CentOS 7 xattr присутствует по умолчанию, и вы не можете его не иметь.ls
if, если вы видите,-rwxrwxrwx+
что+
в этом объекте присутствует расширенный атрибут файла .tar
с xattr, если он остается в этой системе без проблем, но если он уходит в другое место, это может быть проблематично, если xattr важен (например, samba и копирование между win10 ntfs и linux ext3 / 4, btrfs, xfs; или обратно). и далее между сетевыми устройствами хранения данных)xattr
s, тоxattr
s теоретически ничего не может значить и может быть отброшен или удален, потому что в этот момент это просто дополнительный багаж.Базовый ресурс Samba не работает в RHEL / CentOS 7 ... потому что selinux по умолчанию настроен на принудительное выполнение; selinux запретил все, пока вы не разрешите, поэтому либо отключите selinux (плохо), либо установите его как разрешающий. Если вы оставляете selinux принудительным, вы должны пометить папку, которую вы хотите использовать в samba, расширенным атрибутом, чтобы selinux распознал и разрешил общий доступ. Так что, если вы оставите selinux принудительным, тогда со всеми командами selinux (которые затем установят необходимые
xattr
s):Вы также используете selinux в системе linux с этим общим ресурсом samba, чтобы наложить ограничения на файлы / папки в этом общем ресурсе samba (используя любой расширенный атрибут). Поскольку эти файлы / папки являются общими, пользователь законно копирует некоторые из них на свой win10 pc, а затем копирует обратно, теряя расширенный атрибут. Теперь, после этой копии туда и обратно, в этой системе linux selinux будет ограничивать доступ к указанным файлам, потому что необходимый xattr больше не присутствует, и пользователи / администраторы стучат там по головам, задаваясь вопросом, почему вещи теперь просто работают, он не ... устанавливает selinux разрешить и распознать проблему потери потерянных
xattr
файлов в журналах аудита, но это не будет напрямую указывать на то, что это результат обратной копии, потерявшей xattr. Также рассмотрите возможность резервного копирования и восстановления данных, а также потенциальную работу, которую необходимо запомнитьxattr
s в дополнение к uid / gid, если вы хотите обеспечить безопасность на основе правильныхxattr
s.источник