Пользователи
Администрирование пользователей в Linux позволяет: создавать, удалять пользователей, изменять пароли, создавать группы и добавлять и добавлять в их список участников.
Суперпользователь
В LinuxСуперпользователь (Super User) называется root. Пользователь root может контролировать каждый процесс, имеет доступ к каждому файлу и может выполнить любую функцию в системе. Очень важно, чтобы учетная запись root была защищена паролем.
Не следует использовать root для выполнения обычных задач.
Создание новых пользователей
Новый пользователь добавляется командой useradd:
# useradd -c "normal user" -d /home/oleg -g users \ -G dialout,wheel -s /bin/bash oleg
Команда useradd создает нового пользователя по имени oleg (последний параметр в команде). Комментарий говорит, что oleg — normal user (обычный пользователь). Для него будет создан домашний каталог /home/oleg. Его основной группой будет users, но он также будет входить в группы dialout и wheel. В качестве обычного консольного окружения новый пользователь будет использовать оболочку /bin/bash.
Изменение паролей
Пользовательский пароль изменяется командой passwd :
После ввода команды будет предложено ввести и подтвердить устанавливаемый пароль. Если они совпадут, то данные пользователя будут обновлены, а пароль изменен.
Пользователь также может изменить свой собственный пароль:
$ passwd Changing password for oleg Old password: Enter the new password (minimum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password:
В этом случае прежде чем вводить новый пароль, необходимо ввести старый.
Удаление пользователей
Пользователи удаляются командой userdel :
При использовании ключа -r будет также удален домашний каталог пользователя со все его содержимым:
Группы
После создания группы в Linux в ее список добавляются участники. Ресурсы могут иметь права, приписанные группе. Члены группы имеют доступ к ресурсу, ассоциированному с этой группой.
Группы находятся в файле /etc/group, где каждой группе отводится отдельная строка:
$ less /etc/group . dialout:x:102
Первая колонка показывает имя группы. Вторая — пароль. x означает, что настоящий пароль хранится в теневом файле /etc/gshadow. Третья колонка будет содержать идентификаторы участников группы, разделенные запятыми.
Добавление члена группы производится с использованием команды gpasswd с ключом -a и id добавляемого пользователя:
Удаление пользователя из группы производится той же командой, но с ключом -d :
Вносить изменения в группы можно также прямым редактированием файла /etc/group.
Настройка WvDial
Пакет WvDial необходим для установления надежного модемного соединения и является прекрасной альтернативой красивому, но мало функциональному kppp.
WvDial обладает не только бульдожьей хваткой, но и способностью дозваниваться по расписанию. Для его установки необходим пакет libwvstreams (ALT Linux), либо wvstreams (Slackware, CRUX).
Конфигурирование WvDial
Выполняем как root следующие команды:
# touch /etc/wvdial.conf && wvdialconf /etc/wvdial.conf
touch создаст пустой конфигурационный файл /etc/wvdial.conf, а wvdialconf проверит наличие рабочего модема, определит его собственные настройки и запишет их в файл конфигурации.
. Found a modem on /dev/ttyS0, using link /dev/modem in config. Modem configuration written to /etc/wvdial.conf. ttyS0: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
Смотрим, что получили в результате:
$ cat /etc/wvdial.conf [Dialer Defaults] Modem = /dev/modem Baud = 115200 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ISDN = 0 Modem Type = Analog Modem ; Phone = ; Username = ; Password =
Теперь можно раскомментировать последние 3 строки, вписать в них необходимые данные и добавить непосредственно перед телефонным номером префикс P, т.к. настройки по-умолчанию предполагают тональный набор. Но т.к. нам нужен импульсный набор, то добавим соответствующую команду.
В отредактированном конфигурационном файле wvdial.conf строка Dial Command = ATDP указывает модему импульсный набор, но дозваниваться сможет лишь root.
$ cat /etc/wvdial.conf [Dialer Defaults] Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem Dial Command = ATDP Phone = xxxxxxx ISDN = 0 Username = xxxxxxxxxx Init1 = ATZ Password = xxxxxxxx Modem = /dev/modem Baud = 115200
Изменение пользовательских настроек
Создание группы dialout
Создаем группу dialout (можете обозвать и иначе) и добавляем в нее пользователей:
# groupadd dialout # gpasswd -a user dialout
Не забываем заменить user на необходимое имя.
Устанавливаем группу и даем разрешение на использование wvdial:
# chgrp dialout /usr/bin/wvdial # chmod u+s,o= /usr/bin/wvdial
Не забываем и о том, что кто-либо из членов группы пожелает отредактировать файл wvdial.conf на предмет смены Password и Username:
# chgrp dialout /etc/wvdial.conf
$ ls -l /usr/bin/wvdial -rwsr-x--- 1 root dialout 97688 Feb 11 2004 /usr/bin/wvdial $ ls -l /etc/wvdial.conf -rw-r--r-- 1 root root 233 May 10 11:04 /etc/wvdial.conf
Использование sudo
sudo может использоваться для того, чтобы дать права как пользователю:
# mcedit /etc/sudoers . # Dial privilege user localhost /usr/bin/wvdial
Не забываем заменить user на необходимое имя.
так и определённой группе пользователей:
# mcedit /etc/sudoers . # Dial privilege %dialout localhost /usr/bin/wvdial
Результат всех манипуляций — быстрый дозвон и очень устойчивое модемное соединение.
Группы пользователей в Linux
В статье о системе распределения прав доступа в операционных системах Linux мы рассматривали не только пользователей ОС, но и объединения этих пользователей — группы. Разберем подробнее, какие функции выполняют группы пользователей в Linux, и как можно ими управлять.
Смысл объединения пользователей в группы проистекает как раз из необходимости предоставлять права доступа к файлам и папкам разным пользователям системы. Так как пользователей может быть не два и не три, а больше, было принято решения создать группы пользователей и предоставлять права им.
Перечень существующих в операционной системе групп находится в файле /etc/group. Открыть его можно любым текстовым редактором как из терминала, так и из графической среды. А вот для редактирования нужны права администратора.
В Linux есть довольно значительное количество системных групп. Их предназначение заключается в распределении доступа к системным ресурсам. Различное ПО также может создавать группы для распределения доступа. Для начала рассмотрим основные группы, которые встретятся вам при работе с Linux.
Группа | Описание |
adm | Предоставляет доступ к директории /var/log/ |
audio | Управление аудиодрайвером |
cdrom | Предоставляет доступ к CD-ROM |
daemon | От имени данной группы и пользователя daemon запускаются процессы, которым необходима возможность записи на диск |
dialout | Предоставляет доступ к серийному порту |
disk | Предоставляет доступ к дискам (/dev/hd*, /dev/sd*) |
games | Предоставляет играм доступ к папкам для записи (настроек, сохранений и пр.) |
list | Просмотр сообщений в /var/mail/ |
lp | Использование устройств, подключаемых к параллельным портам |
Запись в /var/mail/ | |
man | Добавление страниц в /var/cache/man/ |
nogroup | Применяется для процессов, имеющих прав только на чтение, но не на запись |
plugdev | Возможность монтировать внешние устройства |
proxy | Группа для прокси-серверов, не предоставляет возможности записи на диск |
shadow | Доступ на чтение файла /etc/shadow |
src | Полный доступ к /usr/src/ |
staff | Запись в каталог /usr/local/ |
sync | Выполнение команд из /bin/sync/ |
sys | Доступ к исходникам ядра системы |
tty | Предоставляет доступ на чтение и запись для устройств /dev/vca |
utmp | Запись в файлы /var/log/utmp и /var/log/wtmp |
video | Доступ к работе с видеодрайвером |
wheel | Запуск утилиты sudo |
www-data | Группа веб-сервера, которая открывает доступ на запись в /var/www/ |
Управление группами в Linux осуществляется как через уже известный нам файл /etc/group, так и через графический интерфейс. В разных средах рабочего стола есть разные инструменты для управления группами. Кому интересно, может поискать в сети такие названия, как YaST и Kuser. Мы же рассмотрим управление группами через терминал Linux.
Для создания группы используется команда groupadd . Синтаксис команды очень простой:
groupadd [-g идентификатор [-o]] [-r] [-f] [-p пароль] [-R директория] [-h] [-K ключ=значение] имя_группы
-g — идентификатор создаваемой группы. Представляет из себя целое неотрицательное число. Диапазон, откуда присваиваются числа, задаётся ключами GID_MIN и GID_MAX в файле /etc/login.defs ;
-o — опциональный ключ, который указывает на то, что задаваемый идентификатор не является уникальным (дублирует идентификатор другой группы);
-r — создаваемая группа будет системной. Если не указан идентификатор (-g), будет выбран первый из доступных системных идентификаторов;
-f — данная опция приводит к завершению команды с успешным статусом, если указанная группа уже существует и отменяет -g, если такой идентификатор уже используется (будет выбран другой свободный идентификатор);
-p — пароль для группы;
-R — директория измененного корневого каталога;
-h — вывод справки о команде и выход из команды;
-K — позволяет менять значение ключей в файле /etc/login.defs прямо из команды groupadd. Нужно указать ключ, которым хотим изменить, и его новое значение;
имя_группы — может содержать только строчные буквы, символы подчеркивания, тире и символ доллара. Имя группы может начинаться либо со строчной буквы, либо с символа подчеркивания. Максимальная длина имени — 16 символов.
Конечно, для создания группы нужно обладать правами администратора. Большинство из вышеприведенных опций используются нечасто. Обычно команда для создания новой группы выглядит примерно так:
Таким образом мы создали группу primer. После просмотра файла /etc/group мы увидим, что ей присвоен ближайший свободный GID — 1002.
Итак, состав группы можно определять путём простого редактирования файла /etc/group. Но есть и другой способ, предоставляющий свои возможности. Например, мы можем пойти от обратного — не редактировать свойства группы, а редактировать свойства пользователя. Команда usermod в числе прочего обладает рядом нужных нам параметров:
-G — список дополнительных групп, членом которых является пользователь;
-a — добавление пользователя в дополнительную группу, используется только с параметром -G;
-g — изменение основной группы пользователя.
Для того, чтобы добавить пользователя test в только что созданную группу primer, мы можем использовать команду
sudo usermod -a -G primer test
Можно ли удалить пользователя из группы при помощи команды usermod ? Да, но происходит это не при помощи отдельного параметра, а просто при переопределении дополнительных групп, в которые входит пользователь. В общем виде такая команда будет выглядеть так:
usermod -G имя_группы_1,имя_группы_2,…,имя_группы_n имя_пользователя
Посмотреть, в какие группы входит пользователь, можно командой
Посмотрим на скриншот ниже, а дальше прокомментируем его.
Показывает информацию о пользователе test, его uid, gid, в какие группы он входит (основную и дополнительные). Основная группа для него это группа test с идентификатором 1000. Остальные группы являются дополнительными. Следующей командой
sudo usermod -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare test
мы меняем перечень дополнительных групп для пользователя test. Опять повторив команду
мы увидим, что перечень групп у пользователя test изменился. Так как мы не упомянули группу primer, фактически мы пользователя из этой группы удалили.
Что касается удаления групп, то здесь также можно воспользоваться редактированием файла /etc/group или отдельной командой. Команда в данном случае называется groupdel .
Команда groupdel имеет всего два параметра, в общем виде она выглядит так:
groupdel [-R директория] [-h] имя_группы
Выше мы разобрали команду groupadd , поэтому смысл параметров -R и -h должен быть понятен.
На этом можно остановиться с основами управления группами в Linux. Помимо этого, можно было упомянуть в целом похожие инструменты, такие как addgroup и delgroup , но, по сути, они всё равно обращаются к groupadd и groupdel , и изучить их можно самостоятельно.