Каждый файл в UNIX принадлежит владельцу и группе. Владелец файла имеет
только одну привилегию, которая другим пользователям системы недоступна:
ему разрешено изменять права доступа к файлу. В частности, владелец
может установить права так, что никто кроме него, не сможет обращаться к
данному файлу. Владелец файла -это всегда один человек. В группу могут
входить несколько пользователей. Сведения о группах храняться в файле
/etc/group.
Владелец файла определяет, какие операции могут выполняться над файлом
члены группы. Такая схема допускает коллективное использование файлов
членами одной группы. Узнать о том, кому принадлежит файл, можно с
помощью команды ls -l <имя_файла>
По отношению к файлу пользователь может водить в одну из трех категорий:
владелец, член группы, все остальные. Для каждой из этих категорий
есть свой набор прав доступа.
Первым владельцем файла становиться его создатель. Дальше файл можно передать другому владельцу или в другую группу командой
chown [ключи] <новый_пользователь>[:новая_группа] <файл>
или
chgrp [ключи] <новая_группа> <файл>
В некоторых реализациях Linux передать файл другому владельцу имеет
право только суперпользователь, а в других - также его владелец.
Набор прав доступа состоит из прав на чтение, запись и исполнение файла.
В символьном представлении он выглядит как строка rwx, где вместо
любого символа может стоять дефис. Буква означает наличие
права(r-чтение, w-запись, x-исполнение), дефис - его отсутствие.
Эти три бита могут быть записаны еще и как восьмеричное число. Так,
права доступа r-x(чтение и исполнение без записи)понимаються как три
двоичные цифры 101 или как восьмеричная цифра 5. численное представление
прав доступа называеться абсолютным, или двоичной маской.
Полная строка прав доступа в символьном представлении устроена как:
<права_владельца><права_группы><права_остальных>
В абсолютном представлении права владельца являються старшим разрядом
восьмеричного числа, права группы- вторым иправа остальных - третим.
Так, права rwxr-x--x выглядят как число 111 101 001, или 751.
Вы можете изменять режим доступа к файлам, которыми владеете, с помощью команды chmod. Аргументы этой команды могут быть заданы либо в числовом виде(абсолютный режим), либо в символьном(символьный режим). сначала рассмотрим символьный режим.
*********Символьный режим
Общий формат команды chmod для символьного режима таков:
chmod [кто] оператор [разрешения] файл
Значения параметра кто:
u Владелец g Группа o Другие пользователи a Все(владелец, группа и другие пользователи)
Значения параметра оператор:
+ Добавления разрешения - Удаления разрешения = Установка заданного разрешения
Значения параметра разрешения:
r Право чтения w Право записи x Право выполнения X Установка права выполнения только в том случае, если для какой-либо категории пользователей уже задано право выполнения
s - Установка бита SUID или SGID для владельца или группы t Установка stiky-бита (Если символ t установлен для каталога, то это означает, что только владелец файлов, содержащихся в данном каталоге, может удалять их, даже если член группы имеет те же права, что и владелец файла. Если символ t Установлен для исполняемого файла( программы или сценария), то после завершения программы ее следует оставить на диске подкачки(в виртуальной памяти), чтобы ускорить последующий ее запуск другими пользователями. Поскольку в наши дни проблема оперативной памяти не стоит так остро, как раньше, в использовании stiky-бита при работе с файлами нет особой необходимости. u Установка тех же прав, что и у владельца g Установка тех же прав, что и у группы o Установка тех же прав, что и у других пользователей
****************Примеры*********** Предпологается, что строка режим для нашего файла имеет такой вид rwxrwxrwx chmod a-x myfile rw-rw-rw- chmod og-w myfile rw-r--r-- chmod g+w myfile rw-rw-r-- chmod u+x myfile rwxrw-r-- chmod go+x myfile rwxrwxr-x chmod g=o myfile rwxr-xr-x
***********Абсолютный режим Общий формат команды chmod для абсолютного режим таков: chmod [режим] файл
Здесь параметр режим представляет собой восьмеричное число. В простейшем случае оно состоит из трех трехбитовых наборов, каждый из которых относится к соответствующей катагории разрешения (владельца, группы, других пользователей). Старший бит соответствует разрешию на чтение(1-установлено, 0- снято), средний -разрешению на запись, а младший - разрешению на выполнение.
400 Владелец имеет право чтения 200 Владелец имеет право записи 100 Владелец имеет право выполнения 040 Группа имеет право чтения 020 Группа имеет право записи 010 Группа имеет право выполнения 004 Другие пользователи имеют право чтения
002 Другие пользователи имеют право записи
001 Другие пользователи имеют право выполнения
Чтобы получить итоговое значение режима, который вы хотите задать для своего файла, определите требуемый набор разрешений и сложите соответствующие числа в левой колонке таблицы. Обратимся к примеру файла -rw-r--r-- Его строка режим эквивалентна числу 644, сформированного таким образом право чтения и записи для владельца--- 400 + 200 = 600 право чтения для группы------------------- 040 = 040 право чтения для других пользователей- 004 = 004 -----------------------------------------------------------------644
Правило формирования восьмеричного режим доступа проще всего сформулировать с помощью следующей таблицы:
Владелец
Группа
Другие пользователи
r w x
r w x
r w x
4+2+1
4+2+1
4+2+1
//// Имена символических ссылок могут быть произвольными и не обязаны совпадать с именем исходного файла.
Символическая ссылка создается с помощью команды ln -s: ln -s исходный файл [имя_ссылки]
Если имя ссылки не указано, будет создана ссылка в текущем каталоге, имя которой совпадает с именем исходного файла.
Расмотрим случай, когда в системе регистрируются 40 пользователей, относящихся к двум группам - менеджеры(sales) и административный персонал(admin). Для каждой группы при входе в систему должны быть заданы свои установки. Сначала удаляем все профильные файлы(~/profile) во всех пользовательских начальных каталогах, а затем создаем в каталоге /usr/local/menus два новых профильных файла - sales.profile и admin.profile. В начальном каталоге каждого пользователя необходими создать символическую ссылку на один из этих двух файлов.
cd /home/sales/matty rm .profile ln -s /usr/local/menus/sales.profile .profile
Когда ссылка больше не нужна, ее можно удалить. Однако помните, что при удалении исходного файла символическая ссылка не удаляется автоматически, а лишь становится недействительной. Символическая ссылка может указывать на файл или каталог, находящийся в другой файловой системе. Следует только учитывать, что у вас должно быть право поиска во всех каталогах, перечисленных в путевом имени к исходному файлу. Режим доступа к ссылке устанавливается равным 777, но режим доступа к исходному файлу не меняется.