Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лек _LINUX_2012.doc
Скачиваний:
1
Добавлен:
14.04.2019
Размер:
255.49 Кб
Скачать

Права доступа к файлам и каталогам

В ОС Linux для каждого файла и каталога задаются права доступа, определяющие, кто и какие операции может осуществлять над данным файлом. Эти права позволяют ограничить доступ к файлу трем категориям пользователей (владелец, группа, остальные).

Кроме этого, можно управлять типом прав доступа к данному файлу или каталогу. Для файла или каталога может быть установлено право на чтение, запись и выполнение (для каталога - это право на вход в него). Наличие соответствующего права на чтение кодируется символом r (от англ. read), право на запись - w (write), право на выполнение - x (execute), отсутствие соответствующего права обозначают дефисом (-).

Эти три типа прав доступа для трех категорий пользователей образуют набор из девяти символов, однозначно задающий все права доступа к файлу (каталогу), например, rwxrwxr-x.

Обратите внимание, что для удаления файла необходимо обладать правом на запись в директорию, его содержащую.

При создании файла или каталога права устанавливаются автоматически, чем впрочем, тоже можно управлять. Владелец файла может изменять его права доступа как угодно.

Команда ls -l выдает подробную информацию о файле, включая права доступа к нему. С файлом, имеющим, например, код доступа rwxr-xr-x его хозяин может производить любые операции (читать, изменять и выполнять), а все остальные - только читать и выполнять.

Связывание файлов с разными именами

Файловая система ОС LUNIX обеспечивает возможность связывания одного и того же файла с разными именами. Осуществляется это с помощью ссылок. Различаются «жесткие» и «мягкие» ссылки.

Жесткие ссылки (link) на один и тот же файл могут располагаться в одном и том же каталоге, тогда локальные их имена обязательно должны быть разными, или в разных каталогах, тогда локальные их имена могут совпадать.

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

Жесткие ссылки могут существовать только в рамках определенной файловой системы. Они не могут связывать несколько файловых систем, так как ссылка на файл происходит по элементу дескриптора файла, который уникален только в рамках файловой системы.

"Символическая" связь или "мягкая" ссылка представляет собой ссылку не на физический файл, а на другой элемент каталога. При установлении символических связей только один элемент каталога ссылается на физический файл, и при удалении по этому имени физический файл также удаляется (если у него нет помимо этого жестких связей), а элементы каталога, ссылающиеся на удаленный, остаются, но становятся "неразрешенными ссылками", обращения по этим именам приводят к ошибкам.

Удаление ссылки не влияет на файл, на который она ссылается. Символическая ссылка не защищает файл от удаления; в случае, если файл, на который указывает ссылка, перемещается или удаляется, эта ссылка будет испорчена. По этой причине во многих системах для обозначения символических ссылок в листинге каталогов используются различные цвета, чаще всего – светло-голубой для хороших ссылок и красный для испорченных.

Первое существенное отличие файла-ссылки – отсутствие прав.

Второе - размер файла символических ссылок равен длине имени файла, на который указывает эта ссылка.

Cимволические ссылки существуют благодаря тому, что они преодолевают несколько ограничений, присущих («жестким») ссылкам:

  • Можно создать ссылку на файл, который находится в другой файловой системе.

  • Можно создать ссылки на каталоги.

Поэтому символические ссылки очень полезны в различных ситуациях, и очень часто люди стремятся их использовать для связывания файлов даже тогда, когда могла бы быть использована обычная ссылка. Одно из преимуществ обычного связывания состоит в том, что вы не потеряете файл, если удалите «оригинальный».

СИНТАКСИС

 

ln [-f] файл1 [файл2 ...] целевой_файл

ОПИСАНИЕ

 

Команда ln делает целевой_файл ссылкой на файл1. Файл1 не должен совпадать с целевым_файлом.

Если целевой_файл является каталогом, то в нем создаются ссылки на файл1, файл2,... с теми же именами. Только в этом случае можно указывать несколько исходных файлов. Если целевой_файл существует и не является каталогом, его старое содержимое теряется.

ОПЦИИ

 

-f  

удаление существующего целевого файла

-s  

создание символической ссылки (по умолчанию создается жесткая ссылка)

Создание жестких ссылок

:~$ echo testing > file1

:~$ ls -l file*

-rw-r--r-- 1 ian ian 8 2005-12-26 15:35 file1

:~$ ln file1 file2

i:~$ ls -l file*

-rw-r--r-- 2 ian ian 8 2005-12-26 15:35 file1

-rw-r--r-- 2 ian ian 8 2005-12-26 15:35 file2

:~$ rm file1

:~$ ls -l file*

-rw-r--r-- 1 ian ian 8 2005-12-26 15:35 file2

:~$ cat file2

testing

Создание мягких ссылок

:~$ touch file5

:~$ ln -s file5 file6

:~$ ln -s file5 file7

:~$ ls -l file*

-rw-r--r-- 2 ian ian 8 2005-12-26 15:35 file2

Поиск жестких ссылок

Для наождения жеских ссылок на определенный файл можно использовать команду find и параметр -samefile с указанием имени файла

:~$ ln file2 file3

:~$ ls -il file2

172 -rw-r--r-- 2 ian ian 8 2005-12-26 15:35 file2

:~$ find . -samefile file2

./file2

./file3

Поиск мягких ссылок

Можно использовать команду find и параметр -lname с указанием имени файла,

В ссылках могут использоваться относительные и абсолютные пути, поэтому полезно поставить подстановочный символ «звездочка» перед именем искомого

:~$ mkdir linktest1

:~$ ln -s ~/file3 linktest1/file8

:~$ find . -lname "*file3"

./linktest1/file8

:~$ find . -lname "*file5"

./file7

./file6

Пример

Создание рабочей копии файла и внесение в нее

версионных изменений.

$ cp Hum-Dum.txt HD

$ ed HD

201

1i

Версия 1

.

w

210

q

Создание подкаталога D1 и новой версии файла в нем.

$ mkdir D1

$ cd D1

$ cp ../HD HD

$ ed HD

210

1c

Версия 2

.

w

210

q

Создание подкаталога D3 и мягкой ссылки в нем.

$ mkdir D3

$ cd D3

$ ln -s ../HD HD

Создание подкаталога D6 и жесткой ссылки в нем.

$ mkdir D6

$ cd D6

$ ln ../../../HD HD

Возврат в домашний каталог.

$ cd

Создание подкаталога D2 и подкаталогов в нем.

$ mkdir D2

$ cd D2

$ mkdir D4

$ mkdir D5

Создание файла и жесткой ссылки в подкаталоге D4.

$ cp ../../HD HD

$ ed HD

210

1c

Версия 3

.

w

210

q

$ ln HD HD1

Создание мягкой ссылки в подкаталоге D5.

$ cd ../D4

$ ln -s HD HD1

Возврат в домашний каталог.

$ cd