Linux и UNIX: программирование в shell. Руководство разработчика. - страница 8
>$ groups matty
>sysadmin appsgen post
Данная команда сообщает о том, что пользователь matty входит в состав групп
sysadmin, appsgen и post.
1.8. Команда umask
Когда вы регистрируетесь в системе, команда umask устанавливает стандартный режим доступа к создаваемым файлам и каталогам. Задайте с помощью этой команды подходящий для вас режим, чтобы пользователи, не являющиеся членами вашей группы, не могли выполнять нежелательные операции над вашими файлами. Действие команды длится до тех пор, пока вы не выйдете из системы либо не выполните команду umask еще раз.
Как правило, значение umask устанавливается в файле /etc/profile, доступ к которому имеют все пользователи. Поэтому, если вы хотите установить общесистемное значение umask, отредактируйте данный файл (для этого нужно иметь права администратора). Свое собственное значение umask можно задать в файле .profile или .bash_profile, находящемся в каталоге /home.
1.8.1. Обработка значений umask
Команда umask задает восьмеричное число, которое при создании каждого файла и каталога вычитается из стандартного значения режима доступа. Полученное значение режима присваивается файлу или каталогу. Стандартному режиму доступа к каталогам соответствует число 777, а режиму доступа к файлам — 666 (система не позволяет создавать текстовые файлы с установленными битами выполнения, эти биты следует добавлять отдельно с помощью команды chmod). Значение umask также состоит из трех трехбитовых наборов: для владельца, группы и других пользователей.
Общий формат команды umask таков:
umask nnn
где nnn — это маска режима в диапазоне от 000 до 777.
Ниже показано; как на основании значения umask определить режим доступа к файлу или каталогу (табл. 1.8).
Таблица 1.8. Интерпретация значения umask
Цифра в значении umask | Результат для файла | Результат для каталога |
0 | 6 | 7 |
1 | 6 | 6 |
2 | 4 | 5 |
3 | 4 | 4 |
4 | 2 | 3 |
5 | 2 | 2 |
6 | 0 | 1 |
7 | 0 | 0 |
Из таблицы следует, что, например, значению 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. Тогда о всех изменениях, производимых в файле любым пользователем, немедленно узнают остальные пользователи. Имена символических ссылок могут быть произвольными и не обязаны совпадать с именем исходного файла.