Я имею проблемы, преобразовывающие пользовательские права. Я хочу присвоить следующие права на определенные файлы/папки, но не знаю, что шляпа переводит их в формат, какой chmod будет работать с подобным chmod 755
.
-rwxrwxrwx
будет?
И
drwxr-xr-x
будет?
И наконец
-rw-r--r--
будет?
Короткая версия:
Полномочия могут включать: читайте (r), запишите (w), выполнитесь (x)
Поэтому полномочия выражаются подряд трех символов, например, rwx (для предоставления всех полномочий)
Когда разрешение отклонено, "-" помещается, например: r--
дать только разрешение чтения.
потому что существует три типа пользователей, нам будут нужны символы 3 x 3:
owner | owner group | others
например, rwx
rwx
rwx
дает все типы пользователей все полномочия.
эти полномочия могут быть выражены в восьмеричной нумерации, где:
read = 4
write = 2
execute = 1
so:
r-- = 4
rw- = 6
rwx = 7
пример:
rw- r-- r--
дает всем разрешение чтения, только пользователь может записать. В восьмеричном:
644
(4+2+0 | 4+0+0 | 4+0+0)
Ваш пример:
-rwxrwxrwx
вероятно, вывод ls -l
, где предыдущее -
средства это - файл. В Вашем втором примере:
drwxr-xr-x
объект является каталогом (d
)
s
флагиз Википедии:
setuid и setgid (короткий для "идентификатора пользователя аппарата после выполнения" и "идентификатора группы набора после выполнения", соответственно) 1 являются флагами прав доступа Unix, которые позволяют пользователям выполнять исполняемый файл с полномочиями владельца или группы исполняемого файла соответственно и изменять поведение в каталогах. Они часто используются, чтобы позволить пользователям на компьютерной системе запускать программы со временно поднятыми полномочиями для выполнения определенной задачи.
Пример passwd
(-rwsr-xr-x
) который может изменить файлы защищенные от записи от имени пользователя.
Довольно хорошее описание должно быть найдено здесь на Википедию.
t
флаг (липкий бит)(Снова) из Википедии:
Когда липкий бит каталога установлен, файловая система рассматривает файлы в таких каталогах специальным способом поэтому только владелец файла, владелец каталога, или пользователь root может переименовать или удалить файл. Без липкого набора битов, любого пользователя с записью и выполняются, полномочия для каталога могут переименовать или удалить содержавшие файлы, независимо от владельца файла.
В системах Linux, t
флаг проигнорирован при использовании на файлах.
См. также здесь на Википедию.
Вы не должны преобразовывать их в числа. chmod
понимает символы очень хорошо, если Вы разделяете их на пользователя, группу и другие поля. Следующее эквивалентно:
chmod 755
chmod u=rwx,g=rx,o=rx
Так данный ряд полномочий как, разделяет их как так:
-rwxrwxrwx == - rwx rwx rwx
drwxr-xr-x == d rwx r-x r-x
-rw-r--r-- == - rw- r-- r--
И затем присвойте первый триплет u
, второе к g
и третье к o
, пропуск дефисов:
chmod u=rwx,g=rwx,o=rwx
chmod u=rwx,g=rx,o=rx
chmod u=rw,g=r,o=r
Когда два поля являются тем же, можно объединить их. Последнее chmod
совпал бы с:
chmod u=rw,go=r
И можно использовать a
(все) для присвоения к u
,g
и o
сразу, таким образом, первое эквивалентно:
chmod a=rwx
Теперь, существует несколько специальных битов полномочий: s
(setuid/setgid) и t
(липкий бит).
Их показывают по полю где x
обычно замечается, поэтому если бы каталог имеет липкий бит для других, Вы видели бы a t
(если выполняются, полномочия присутствуют), или a T
(если выполняются, полномочия не присутствуют). Например, полномочия /tmp
:
drwxrwxrwt
В таких случаях необходимо записать t
как xt
, и s
как rwxs
:
chmod u=rwx,g=rwx,o=rwxt
setuid укусил средства, что, когда этот файл выполняется, он работает как пользователь, который владеет файлом, не как пользователь, выполняющий его. Рассмотреть passwd
(используемый для изменения пароля):
# stat `which passwd`
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Если я (пользователь muru
) выполненный passwd
, процесс, который запускается выполнения с root
полномочия, не с моим. Это обычно замечается на двоичных файлах, которые должны быть, поддерживают выполнение некоторого действия (passwd
редактирования /etc/shadow
, например).
setgid обдумал средства каталога, что любые недавно созданные файлы или каталоги в нем наследовали владение группы. Это обычно замечается на каталогах, используемых для сети или FTP-серверов и т.д.
Липкий бит означает, что, даже если у пользователя есть полномочия записи на каталоге, они не могут переместить или переименовать файлы другого пользователя. Это обычно замечается на общих каталогах, как /tmp
.