На самом деле нельзя просто писать в каталог, даже суперпользователю
root$ who > . .: cannot create $Существуют системные обращения, которые создают и удаляют файлы, и только с их помощью можно изменить содержимое каталога. Но принцип прав доступа применим и для них: поле
wПраво на удаление файла не зависит от самого файла. Если у вас есть право записи в каталог, вы можете удалять файлы из него, причем даже те, которые защищены от записи. Команда
rm-fПоле
xxlsr--ls/usr/gamesКоманда
chmod$ chmod права_доступа имена файлов...Синтаксис конструкции "права_доступа", к сожалению, громоздкий. Она может определяться двумя способами: с помощью восьмеричных чисел и последовательностью символов. Проще использовать восьмеричные числа, хотя иногда более удобными оказываются символьные обозначения, так как с их помощью можно показать, какие изменения произошли в правах доступа. Лучше, конечно, было бы задать
$ chmod rw-rw-rw- junkчем вводить
$ chmod 666 junkно так не получается. Восьмеричное значение режима складывается из значений прав доступа: 4 — для чтения, 2 — для записи и 1 — для выполнения. Три цифры, как и в выводе команды
lschmod(1)+-$ chmod +x commandпозволяет всем выполнять команду, а
$ chmod -w fileлишает всех права записи в файл, включая и владельца файла. Если не принимать во внимание существование суперпользователя, то только владелец файла может изменить права доступа к файлу, независимо от текущих прав доступа. В том случае, когда кто-то еще предоставил вам право записи в файл, система не позволит изменить код прав доступа к файлу:
$ ls -ld /usr/marydrwxrwxrwx 5 mary 704 Sep 25 10:18 /usr/mary$ chmod 444 /usr/marychmod: can't change /usr/mary$Но, если каталог не защищен от записи, пользователи могут удалять файлы, несмотря на отсутствие права доступа к файлу. Если вы хотите быть уверенным в том, что ни вы, ни ваши друзья никогда не удалят файлы из каталога, отмените право на запись для каталога:
$ cd$ date > temp$ chmod -w . $ ls -ld .dr-xr-xr-x 3 you 80 Sep 27 11:48 .$ rm temprm: temp not removed $ chmod 775 . $ ls -ld .drwxrwxr-x 3 you 80 Sep 27 11:48 .$ rm temp $Файл
tempПоэкспериментируйте с командой
chmod2.5 Индексные дескрипторы
Файл имеет несколько атрибутов: имя, содержимое и служебную информацию (права доступа и даты модификации). Служебная информация размещается в индексном дескрипторе вместе с важной системной информацией, такой, как размер файла, место хранения его на диске и т.д. [8] В индексном дескрипторе хранятся три даты: время последнего изменения файла (записи в него), время последнего использования файла (чтение или выполнение), время последнего изменения самого индексного дескриптора, например изменения прав доступа.
$ dateTue Sep 27 12:07:24 EDT 1983 $ date > junk$ ls -l junk-rw-rw-rw 1 you 29 Sep 27 12:07 junk$ ls -lu junk-rw-rw-rw 1 you 29 Sep 27 06:11 junk$ ls -lc junk-rw-rw-rw 1 you 29 Sep 27 12:07 junk$Как видно из результата действия команды
ls -luls -lc$ chmod 444 junk$ ls -lu junk-r--r--r-- 1 you 29 Sep 27 06:11 junk$ ls -lc junk