Пользовательские Права обозначают буквами к числам

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

-rwxrwxrwx 

будет?

И

drwxr-xr-x

будет?

И наконец

-rw-r--r--

будет?

6
задан 18 November 2014 в 12:47

2 ответа

Короткая версия:

  • Полномочия могут включать: читайте (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 флаг проигнорирован при использовании на файлах.

См. также здесь на Википедию.

14
ответ дан 17 November 2019 в 04:38

Вы не должны преобразовывать их в числа. 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.

5
ответ дан 17 November 2019 в 04:38

Другие вопросы по тегам:

Похожие вопросы: