Выбрать главу

Из таблицы следует, что, например, значению umask, равному 002, соответствует режим 664 для файлов и 775 для каталогов.

Если вам удобнее работать со строками режима, руководствуйтесь описанной ниже последовательностью действий. Предположим, значение umask равно 002.

   • Сначала запишите полную строку режима, эквивалентную числу 777.

   • Под ней запишите строку режима, соответствующую значению umask (002).

   • Вычеркните из первой строки те символы, которые дублируются в тех же позициях во второй строке. Вы получите строку режима для каталогов.

   • Вычеркните из полученной строки все символы x. Вы получите строку режима для файлов.

1. Полная строка режима rwxrwxrwx (777)
2. Значение umask (002) w-
3. Строка режима для каталогов rwxrwxr-x (775)
4. Строка режима для файлов rw‑rw‑r-- (664)

1.8.2. Примеры установки значений umask

В табл. 1.9 представлены некоторые возможные значения umask и указаны соответствующие им режимы доступа к файлам и каталогам.

Таблица 1.9. Примеры значений umask

Значение umask Режим доступа к каталогам Режим доступа к файлам
022 755 644
027 750 640
002 775 664
006 771 660
007 770 660

Для просмотра текущего значения umask введите команду umask без параметров.

$ umask

022

$ touch file1

$ 1s -1 file1

-rw‑r--r-- 1 dave admin 0 Feb 18 42:05 file1

Чтобы изменить существующую установку, просто укажите новый аргумент команды umask:

$ umask 002

Убедимся в том, что система приняла изменения:

$ umask

002

$ touch file2

$ ls -l file2

-rw‑rw‑r-- 1 dave admin 0 Feb 18 45:0? file2

1.9. Символические ссылки

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

1.9.1. Применение символических ссылок

Предположим, у нас есть файл с информацией о продажах, находящийся в каталоге /usr/locai/admin/sales. Необходимо, чтобы каждый пользователь мог работать с этим файлом. Вместо того чтобы создавать множество копий файла в пользовательских каталогах, можно образовать в них символические ссылки, которые указывают на исходный файл в каталоге /usr/local/admin/sales. Тогда о всех изменениях, производимых в файле любым пользователем, немедленно узнают остальные пользователи. Имена символических ссылок могут быть произвольными и не обязаны совпадать с именем исходного файла.

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

1.9.2. Примеры создания символических ссылок

Символическая ссылка создается с помощью команды ln -s, формат которой таков:

ln -s исхолный_файл [имя_ссылки]

Если имя ссылки не указано, будет создана ссылка, имя которой совпадает с именем исходного файла.

Рассмотрим случай, когда в системе регистрируются 40 пользователей, относящихся к двум группам — менеджеры (sales) и административный персонал (admin). Для каждой группы при входе в систему должны быть заданы свои установки. Сначала

я удалю все профильные файлы (.profile) во всех пользовательских начальных каталогах, а затем создам в каталоге /usr/local/menus два новых профильных файла — sales.profile и admin.profile. В начальном каталоге каждого пользователя необходимо создать символическую ссылку на один из этих двух файлов. Вот как это делается для пользователя matty, являющегося членом группы sales:

$ cd /home/sales/matty

$ rm .profile

$ ln -s /usr/local/menus/sales.profile .profile