Команда используется для изменения прав доступа к файлам.
Команда 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 [-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
Команда используется для временной подмены идентификатора пользователя.
Команда имеет следующий синтаксис:
su [-] [-flms] [-c класс] [пользователь [аргументы]]
Команда su позволяет пользователю временно стать другим
пользователем. Если не указан
параметр пользователь
, то
используется значение по умолчанию - суперпользователь. Если указанному
пользователю назначен пароль, то потребуется его ввести, прежде чем стать
другим пользователем.
Для того, чтобы стать суперпользователем, нужно ввести команду su без параметров:
user@desktop$ su Password: desktop#
Программа sudo является логическим развитием программы su и позволяет как переходить в сеанс суперпользователя, так и запускать отдельные программы от имени суперпользователя.
Программа sudo имеет синтаксис:
sudo [-HSb] [-u пользователь] {-s | команда}
. Можно использовать следующие опции:
-H
HOME
изменяется в соответствии с
выбранным пользователем;
-b
-s
Главным достоинством команды sudo является
возможность гибкого конфигурирования – на какие программы
каким пользователям разрешено повышение превилений. Конфигурация хранится в
файле /etc/sudoers
, рассмотрение формата которого
выходит за рамки этих лекций.
Команда используется для изменения пароля.
Команда имеет следующий синтаксис:
passwd [-l] [пользователь]
Обычные пользователи могут сменить только собственные пароли. Суперпользователь может менять пароли любых пользователей. При вызове команды сначала необходимо ввести старый пароль, если он был установлен. Затем предлагается дважды ввести новый пароль. Если указанные операции были сделаны без ошибок, то пароль пользователя будет изменен.
Команда предназначена для добавления нового регистрационного имени пользователя в системе.
Команда имеет следующий синтаксис:
useradd [-u идентификатор [-o] [-i]] [-g группа] [-G группа[[,группа] . . .]] [-d каталог] [-s shell] [-c комментарий] [-m [-k skel_dir]] [-f inactive] [-e expire] [-p passgen] [-a событие[, . . .]] регистрационное_имя
Команда предназначена для удаления регистрационных имен пользователей из системы.
Команда имеет следующий синтаксис:
userdel [-r] [-n месяцев] регистрационное_имя
Команда userdel удаляет определение регистрационного
имени пользователя из системы. Она удаляет определение указанного
регистрационного имени и выполняет соответствующие изменения в
регистрационных файлах и файловой системе. Команда также запоминает
идентификационный номер удаляемого пользователя (UID) в
файле /etc/security/ia/ageduid
, так что этот
идентификатор не будет повторно использован на протяжении определенного
периода времени. Эта практика не использования идентификатора пользователя
называется устареванием идентификатора (UID aging). Для удаления домашней
директории пользователя необходимо указать
флаг -r
.
Параметр месяцев
задает, сколько
месяцев будет запрещено использовать удаляемый идентификатор.
Команда предназначена для изменения регистрационной информации о пользователе в системе.
Команда имеет следующий синтаксис:
usermod [-u идентификатор [-U] [-o]] [-g группа] [-G группа[[,группа] . . .]] [-d каталог [-m]] [-s shell] [-c комментарий] [-l новое_рег_имя] [-f inactive] [-e expire] [-p passgen] [-a [оператор]событие[, . . .]] регистрационное_имя
Команда предназначена для изменения регистрационной информации о пользователе в системе.
Команда используется для создания новой группы в системе.
Команда имеет следующий синтаксис:
groupadd [-g идентификатор [-o]] группа
Новую группу может добавить только администратор. Команда groupadd создает новое определение группы в системе путем добавления соответствующей записи в файл /etc/group.
Команда используется для удаления определения группы из системы.
Команда имеет следующий синтаксис:
groupdel группа
Команда groupdel удаляет определение группы из системы
путем удаления записи о соответствующей группе из
файла /etc/group
. Она, однако, не удаляет
идентификаторо группы (GID) из файла паролей; удаленный GID действует для
всех файлов и каталогов, которые его имели.
Команда предназначена для изменения определения группы в системе.
Команда имеет следующий синтаксис:
groupmod [-g идентификатор [-o]] [-n имя] группа
Команда groupmod изменяет определение указанной группы
путем изменения соответствующей записи в
файле /etc/group
. Новое имя группы задается в
параметре группа
, новый идентификатор
группы задается в
параметре идентификатор
. Опция -o
позволяет задать дублирующийся идентификатор
группы. Если перед группой стоит символ «+»,
(например, +student), определение группы
администрируется сетевой информационной службой (Network Information Service - NIS). В этом случае,
значение идентификатора группы берется из базы
данных NIS. Для таких групп использование
опций -g
или -o
вызовет выдачу сообщения о
синтаксической ошибке.