- •1. Цели и задачи самостоятельной работы
- •Распределение часов по семестрам и видам занятий
- •Команды по работе с текстом
- •Команды, использующие регулярные выражения
- •Сбор сведений о системе и управление процессами Команды получения сведений о системе
- •Команды по работе с процессами
- •Команды по управлению правами
- •Команды по управлению пользователями
- •Способы компоновки программ
- •Порядок отладки
- •К лабораторной работе № 5 Препроцессоры Макроопределения
- •Библиотека макроопределений.
- •Псевдооператоры Макроассемблера.
- •Считывание библиотеки макроопределений в программу
- •К лабораторной работе № 6 Организация дочерних процессов
- •К лабораторной работе /№ 7 Файловая система Основные характеристики файловой системы ms-dos
- •Функции создания и чтения файла
- •Функции прямого доступа к файлу
- •Примеры по программированию операций над файлами
- •Cписок использованных источников
Команды по управлению правами
chmod
Команда используется для изменения прав доступа к файлам.
Команда chmod имеет следующий синтаксис:
chmod [-fhv] [-R [-H | -L | -P]] права_доступа файл ...
Права доступа к файлу могут изменить только владелец файла и суперпользователь. Параметр права_доступа задается в числовой форме, либо в символьной.
Права доступа в числовой форме задаются в виде восьмеричного числа – битовой маски, являющегося суммой одного или нескольких следующих значений:
-
4000
– установка бита SUID
2000
– установка бита SUID
1000
– установка sticky-бита
0400
– право на чтение для владельца
0200
– право на запись для владельца
0100
– право на выполнение для владельца
0040
– право на чтение для группы владельца
0020
– право на запись для группы владельца
0010
– право на выполнение для группы владельца
0004
– право на чтение для остальных пользователей
0002
– право на запись для остальных пользователей
0001
– право на выполнение для остальных пользователей
Права доступа в символьном виде задаются с помощью следующей грамматики:
-
права_доступа
::=выражение [, выражение ...]
выражение
::=[субъект ...] [действие ...] действие
действие
::=операция [права ...]
субъект
::=a | u | g | o
операция
::=+ | - | =
права
::=r | s | t | w | x | X | u | g | o
Пример использования. Для того, чтобы для файла test.txt сбросить все права для группы владельца и остальных пользователей, а для владельца установить права на чтение и запись, можно использовать следующие команды (они эквивалентны): chmod u=rw,go= test.txt, chmod a=,u=rw test.txt, chmod 600 test.txt. Результат:
user@desktop$ ls -l test.txt
-rw-r--r-- 1 pp ppgroup 0 7 дек 00:34 test.txt
user@desktop$ chmod a=,u=rw test.txt
user@desktop$ ls -l test.txt
-rw------- 1 pp ppgroup 0 7 дек 00:34 test.txt
Для добавления группе владельца права на запись и отмена для остальных пользователей права на чтение можно использовать следующую команду: chmod g+w,o-r test.txt. Результат:
user@desktop$ ls -l test.txt
-rw-r--r-- 1 pp ppgroup 0 7 дек 00:34 test.txt
user@desktop$ chmod g+w,o-r test.txt
user@desktop$ ls -l test.txt
-rw-rw---- 1 pp ppgroup 0 7 дек 00:34 test.txt
chown
Команда используется для смены владельца/группы файлов.
Команда имеет следующий синтаксис:
chown [-fhv] [-R [-H | -L | -P]] владелец[:группа] файл ...
chown [-fhv] [-R [-H | -L | -P]] :группа файл ...
Владельца файла может изменить только суперпользователь. Группу может изменить владелец и суперпользователь. В качестве имени владельца/группы берется первый аргумент, не являющийся опцией. Если задано только имя пользователя (или числовой идентификатор пользователя), то данный пользователь становится владельцем каждого из указанных файлов, а группа этих файлов не изменяется. Если за именем пользователя через двоеточие следует имя группы (или числовой идентификатор группы), без пробелов между ними, то изменяется также и группа файла.
Для изменения группы-владельца файла test.txtна guest необходимо ввести следующую команду: chown :guest test.txt. Результат:
user@desktop$ ls -l test.txt
-rw------- 1 pp ppgroup 0 7 дек 00:34 test.txt
user@desktop$ chown :wheel test.txt
user@desktop$ ls -l test.txt
-rw------- 1 pp wheel 0 7 дек 00:34 test.txt