Показать сообщение отдельно
Старый 27.04.2006, 21:44   #1
Vulzscht
Местный
 
Аватар для Vulzscht
 
Регистрация: 26.04.2006
Адрес: Улица Свободы
Сообщений: 1,249
Вы сказали Спасибо: 4
Поблагодарили 73 раз(а) в 53 сообщениях
По умолчанию Системные комманды и утилиты

Заголовок: Системные комманды и утилиты
Создано grumbler 18.04.2006 :: 23:09:20
Vulzscht wrote:
5) chmod - изменяет права доступа к файлу... 755 - делает выполняемым, а какие есть еще и их значение? в хэлпе просто как-то скромненько описано...

Всего можно перечислить 8 возможных вариантов доступа к файлу/директории:
Восьмиричное число Двоичное число Маска режима доступа Доступ
0 000 --- никакой
1 001 --x только исполнение
2 010 -w- только запись
3 011 -wx запись и исполнение
4 100 r-- только чтение
5 101 r-x чтение и исполнение
6 110 rw- чтение и запись
7 111 rwx чтение, запись и исполнение

Права доступа назначаются для владельца (Owner, User), группы пользователей (Group) и всех остальных (Other).
Соответственно, нам необходимо три чиселка! ;-)

В качестве опций комманды chmod чащего всего подают три _восьмиричных_ чиселка (по чиселку для владельца, группых и прочих). Следовательно, 755 = 111 101 101 = rwxr-xr-x (слева - направо: владелец, группа, остальные).

Однако есть более гибкие (и более понятные) варианты опций комманды chmod!
Для задания прав доступа к файлу можно пользоваться следующим синтаксисом:

Код:
chmod [u][g][o][+][=][-][r][w][x][X] путь_к_файлу
Здесь символам u,g,o соответствуют владелец (user), группа (group) и остальные (other).
Знаки + и - говорят о том следует ли _добавить_ к имеющимся правам доступа следующие за знаком права, или _удалить_ перечисленные за знаком права доступа к файлу. Знак = задаёт (не сохраняя имевшихся) новые права доступа к файлу.
А символы r,w,x,X -- соответственно чтение (read), запись (write), исполнение (execute) и открытие дирректорий (eXecute).

Ещё одна очень полезная опция комманды chmod: -R (Recursive) -- заставляет применить указанные правила ко всем файлам/директориям, лежащим "ниже" данной директории (то есть к поддиректориям и файлам в них).

В качестве примера: добавим возможность для группы и всех остальных возможность читать файлы и открывать директории всех файлов и папок в каталоге /var/ftp

Код:
chmod -R go+rX /var/ftp
Отберём у групы и всех остальных пользователей возможность записи и исполнения файла /etc/rc.d/init.d/iptables

Код:
chmod go-rx /etc/rc.d/init.d/iptables

Каковы особенности двух различных вариантов задания прав доступа к файлу?
При использовании трёх восьмиричных чисел для задания прав доступа мы задаём права "жёстко". То есть что сказали -- то и получили.
А при задании прав доступа посредством символов u,g,o, знаков +/- и аттибутов r,w,x,X мы добавляем/удаляем указанные привилегии, оставляя те, которые уже были заданы файлу/папке.
То есть, если у файла были аттрибуты -rwxrwxrwx, а мы выполнили комманду

Код:
chmod ugo-x путь_к_файлу
то получим -rw-rw-rw-.

Что лучше -- сказать невозможно: для каждого случая -- своё.

Последний раз редактировалось Vulzscht; 27.04.2006 в 21:51.
Vulzscht вне форума