Chmod/ru
Права и владельцы в nix-системах.
Contents |
Вступление
Эта статья имеет цель познакомить пользователей только со стандартными функциями команд chmod\chown. Выполняя команды, будье уверены в своих действиях. Неверные действия могут повлечь за собой очень неприятные последствия
Основные понятия
gid\uid
GID - Group ID - числовой идентификатор пользователя группы. UID - User ID - чмсловой идентификатор пользователя. GID как и UID уникален. Для каждой группы и юзера он разный.
Цифровое и текстовое обозначение прав
Права доступа в цифровом виде имеют вид 'XXX', например '762'.
Каждая цифра отвечает за свою группу и представляет определенные права.
Первая цифра (в нашем примере это '7') является обозначением прав владельца на этот файл.
В текстовом виде это выглядит так: '-rwx------' (или '700' в цифровом).
Вторая цифра отвечает за права группы которой прнадлежит файл.
В нашем примере цифра '6' предостовляет доступ группе на чтение и запись файла.
Выглядит это так: '----rw----' (или '060' в цифровом).
Наконец последняя цифра представляет права неких 'Others' или по русски 'Других'.
Т.е. тех, кто НЕ входит в группу которой принадлежит файл\директория, и не является владельцем.
В нашем примере это цифра '4', что дает 'Другим' право только на чтение.
Выглядит это так: '-------r--' (или '002' в цифровом).
Полность наш пример '764' в текстовом варианте выглядит так: '-rwxrw-r--'.
Владелец может Читать, Писать и Выполнять (./filename) файл.
Группа может Читать и Писать файл, но не может Выполнять.
Все остальные могут только любоваться его содержимым.
Просматривая все вышеизложенное мы приходим к выводу что:
- x - 1 - eXecutable - Выполнение
- r - 2 - Read - Чтение
- w - 4 - Write - Запись
Числа 6, 7 мы можем получить путем сложения чисел нужных нам атрибутов...
Программы изменения прав и владельцев
chmod
chmod - Change Modes - Смена режима. Собственно эта программа меняет режим доступа к файлу\директории. Ему (chmod'у) можно задавать параметры как в текстовом формате так и в числовом.
$ chmod u+rwx,g+rw,o+r <filename or directory>
Будет делать тоже самое что
$ chmod 762 <filename or directory>
chown
chown - Change Owner - Смена Владельца - Собственно название говорит за себя... Для смены владельца можно использовать как числовой идентификатор (GID) так и имя группы. Смена владельца файла выполняется так:
$ chown username filename
Можно сразу сменить и группу:
$ chown username:groupname filename
Так же в этих командах можно использовать GID и UID. Допустим что наш пользователь имеет GID=501 и UID=100. Тогда команды будут, соответственно предыдущим, выглядеть так:
$ chown 100 filename $ chown 100:501 filename
chgrp
chgrp - Change Group - Смена Группы. В этой команде также может использоваться как текстовое имя групы так и GID. Например так:
$ chgrp groupname filename $ chgrp 501 filename
Некоторые общие замечания и предупреждения
1. Для всех трех программ есть ключ -R указав который, Вы выполните команду рекрусивно, т.е. указывая -R и директорию Вы смените права\группу\владельца не только на саму директорию но и на ВСЕ вложенные файлы и директори...
2. Для просмотра такущих прав используйте
$ ls -Alh
Опция -l (long) выдает длинный формат. Опция -A (All) выдает все файлы кроме . и ... Опция -h (human readable) выдает размер файла\директории в читабельном виде (Б\Кб\Мб\Гб и т.п.) Прим.: Чтобы не писать все опции постоянно можно выполнить команду (только если Вы используете Bash)
$ echo 'alias ls="ls -Alh -color=auto"' >> ~/.bashrc
И тогда после перезапуска shell'a можете писать просто ls и будете получать тот же результат что и при ls -lhA.
3. Будьте ОЧЕНЬ осторожны используя режим -R. На крайний случай есть Ctrl+C. Так сказать резкая отмена текущей оперции...
Заключение
Это далеко не все что можно сделать с правами. Есть ещё некие ACL и что-то там ещё... Но я не использую их и потому не в курсе.
Того что я привел выше, среднему (да даже некоторым продвинутым) хватит выше крыши.
--Xorkrus2 16:34, 16 October 2008 (UTC)