Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

3.9.4. Изменение прав доступа

Команда chmod используется для установки (изменения) прав доступа файла. Только владелец файла может менять права доступа к нему.

Синтаксис команды имеет вид:

    chmod {a,u,g,o}{+,-}{r,w,x} <filenames>

Кратко, вы выбираете из all (все), user (пользователь), group (группа) или other (другие). Далее указываете, либо вы добавляете права (+), либо лишаете прав (-). И наконец, вы указываете один или несколько режимов: read, write или execute. Несколько примеров допустимых команд:

chmod a+r stuff
Дает всем пользователям право читать файл stuff.
chmod +r stuff
То же самое, что и ранее (a - по умолчанию).
chmod og-x stuff
Лишает права на выполнение всех, кроме владельца.
chmod u+rwx stuff
Разрешает владельцу все (read, write и execute).
chmod o-rwx stuff
Запрещает все (read, write и execute) пользователям категории другие (other).

3.10. Управление связями файлов

Связи позволяют давать одному физическому файлу много имен. Системой файлы распознаются по индексам файлов, которые являются уникальными идентификаторами в рамках системы. Команда ls -i выдаст вам индексы файлов. На самом деле каталог - это перечень индексов файлов с соответствующими этим индексам номерами. Каждое имя файла в каталоге привязано к конкретному индексу.

3.10.1. Жесткие связи

Команда ln используется для создания множества связей для одного файла. Например, скажем, что у вас есть файл foo. Используя ls -i можно посмотреть индекс этого файла.

    # ls -i foo
    22192 foo
    #

Здесь файл foo имеет в файловой системе индекс 22192. Мы можем создать новую связь для этого файла под именем bar:

    # ln foo bar

С помощью ls -i можно убедиться, что оба файла имеют один и тот же индекс.

    # ls -i foo bar
    22192 bar   22192 foo
    #

Теперь, обращаясь к foo или bar мы фактически обратимся к одном у тому же файлу. Поэтому, если мы меняем что-то в файле foo, эти же самые изменения произойдут в файле bar.

Эти связи известны, как жесткие связи (hard links), поскольку они реализуются прямой ссылкой на индекс файла. Обратите внимание, что в рамках одной файловой системы вы можете организовать только жесткие связи; символические связи (смотрите ниже) не имеют этого ограничения.

Когда вы удаляете файл командой rm, на самом деле вы удаляете только одну ссылку на файл. Если вы введете команду

    # rm foo

Удаляется только связь, имеющая имя foo; bar будет как и прежде существовать. Файл только тогда действительно удаляется, когда на него больше нет связей. Обычно файлы имеют только одну связь, так что команда rm действительно приведет к удалению файла. Однако, если файл имеет много ссылок, применение rm приведет только к удалению одной связи; для того, чтобы удалить файл, вы должны удалить все связи на этот файл.

Команда ls -l покажет число ссылок на файл (кроме прочей информации)

    # ls -l foo bar
    -rw-r--r--   2 root     root          12 Aug  5 16:51 bar
    -rw-r--r--   2 root     root          12 Aug  5 16:50 foo
    #

Вторая колонка с цифрой "2" показывает число связей файла.

Самом деле оказывается, что каталоги представляют из себя справочник типа "имена-индексы". Кроме прочего, каждый каталог имеет минимум две жесткие ссылки: "." (ссылка, указывающая на самого себя) и ".." (ссылка, указывающая на родительский каталог). В корневом каталоге (/) ссылка ".." указывает на сам же каталог /.


[ Назад | Оглавление | Далее ]









helloworld.ru © 2001-2021
Все права защищены