Вам не нужно преобразовывать их в числа. 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, поэтому, если каталог имеет липкий бит для других, вы увидите t (если имеются разрешения выполнения) или T (если разрешения на выполнение не являются настоящее время) . Например, разрешения /tmp:
drwxrwxrwt
В таких случаях вам нужно записать t как xt и s как rwxs:
[ f7] бит setuid означает, что когда этот файл выполняется, он запускается как пользователь, которому принадлежит файл, а не как пользователь, выполняющий его. Рассмотрим passwd (используется для смены пароля):# stat `which passwd`
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Если я (пользователь muru) запустил passwd, процесс, который запускается, запускается с разрешениями root, а не с моим. Обычно это видно на двоичных файлах, которые должны быть root для выполнения некоторого действия (например, passwd редактирования /etc/shadow). Биты setgid в каталоге означают, что все вновь созданные файлы или каталоги в нем наследуют групповое владение. Обычно это отображается в каталогах, используемых для веб-серверов или FTP-серверов и т. Д. Липкий бит означает, что даже если у пользователя есть права на запись в каталоге, они не могут перемещать или переименовывать файлы другого пользователя. Обычно это отображается в общих каталогах, например /tmp.