В Linux файл имеет ``права доступа'' и ``владельца'', который относится к
``группе''. Посмотрите пример:
$ ls -l /bin/ls
-rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls*
Первое поле содержит права доступа к файлу /bin/ls
, который принадлежит
пользователю root
, группы bin
. Опуская другую информацию,
запомните, что означает -rwxr-xr-x
, слева направо:
rwx
являются правами доступа для владельца файла (чтение, запись,
выполнение);
r-x
являются правами доступа для группы, к которой относится
владелец файла (чтение, выполнение);
r-x
являются правами доступа для всех остальных пользователей
(чтение, выполнение).
Каталог /bin
тоже имеет права доступа. Вот поэтому вы не можете удалить
файл /bin/ls
до тех пор, пока не станете пользователем root
: вы
просто не имеете прав сделать это. Для изменения прав доступа к файлу
используется команда:
$ chmod <ugoXperm> <file>
где ugo
-- это u
(пользователь, который является владельцем),
g
(группа), o
(остальные), X
-- это либо +
, либо
-
, perm
-- это r
(чтение), w
(запись), или x
(выполнение). Вот общие примеры использования команды chmod
:
$ chmod +x file
устанавливает право на выполнения данного файла.
$ chmod go-rw file
удаляет право на чтение и запись для всех, кроме владельца файла.
$ chmod ugo+rwx file
дает всем права на чтение, запись и выполнение.
# chmod +s file
делает так называемый ``setuid''
или ``suid''
файл -- файл,
который любой может выполнять с привилегиями владельца. Обычно, это применяется
к файлам, владельцем которых является root
; часто это важные системный
файлы, такие как X-сервер.
Более коротким способом для ссылки на права доступа является использование
цифрового обозначения: rwxr-xr-x
может быть выражен как 755 (каждый
символ соответствует биту: ---
равен 0, --x
равен 1, -w-
равен 2, -wx
равен 3...). Это выглядит трудным, но, немного
попрактиковавшись, вы поймете концепцию. root
, будучи администратором,
может изменять права доступа на файлы любого пользователя.