Операционная система Linux является многозадачной и многопользовательской, что означает возможность одновременной работы нескольких пользователей, а каждый пользователь может запустить несколько приложений. В систему можно зайти локально, либо удаленно, при помощи протоколов удаленного доступа (telnet/ssh) или FTP. Это позволяет также при необходимости подключиться к компьютеру удаленно и получить доступ к нужным файлам. Суперпользователь (root) имеет максимальные полномочия в системе и может выполнять любые команды вплоть до удаления корневой ФС (либо выполнения вредоносного скрипта). Из чего стоит сделать следующие выводы:

  • работать как можно реже под пользователем root;
  • всегда обдумывать действия;
  • программа требующая root полномочий и полученная из неизвестного источника должна насторожить;
  • лучше использовать спец. утилиту sudo/su для выполнения команд с root из терминала/консоли.
sudo <команда>
sudo nano /etc/apt/sources.list
sudo -i    # запустить оболочку root

Использовать команду sudo имеют право пользователи, которые были внесены в /etc/sudoers. Этот файл может быть отредактирован администратором при помощи команды visudo, либо пользователь может быть внесен при помощи команды adduser username sudo. Может быть использована команда su, для чего понадобиться ввести пароль пользователя root (любым пользователем). Чтобы закрыть сессию su необходимо ввести команду exit. Каждая команда введенная при помощи sudo записывается в журнал /var/log/auth.log. Если полностью отключить учетную запись root, то взломать систему станет сложнее. Для отключения учетной записи root стоит использовать команду

sudo passwd -l root

Работа с пользователями (adduser/passwd...):

adduser <username>    # добавление нового пользователя
passwd <username>    # изменение пароля пользователя
# в некоторых дистрибутивах используется команда useradd
# команду passwd может использовать сам пользователь для смены своего пароля
usermod [параметры] LOGIN    # модифицирование учетной записи
    -a, --append    # добавить в доп. группу (используется с -G group)
    -c, --comment COMMENT    # изменяет комментарий пользователя
    -d, --home CATALOG    # изменить домашний каталог пользователя
    -e, --expiedate DATA    # устанавливает дату отключения учетки (ГГГГ-ММ-ДД)
    -f, --inactive DAY    # устанавливает число дней после даты отключения для изменения пароля
    -g, --gid group    # задает идентификатор (GID) начальной группы пользователя
    -G, --groups G1,G2,G3    # задать группы для пользователя (-a для доп. групп)
    -l, --login newname    # изменить имя пользователя
    -L, --lock    # заблокировать пользователя (-e полностью заблокировать)
    -o, --non-unique    # с параметром -u задает не уникальный UID
    -p, password <password>    # задает новый пароль пользователя через хеш
    -s, shell <оболочка>    # задать новую оболочку пользователя
    -u, uid UID    # задать идентификатор пользователя (число от 999 и больше)
    -U, --unlock    # разблокировать пароль пользователя
userdel <username>    # удалить пользователя

При создании нового пользователя создается запись в файле /etc/passwd по следующему шаблону:

имя_пользователя:пароль:UID:GID:полное_имя:домашний_каталог:оболочка
# например
root:x:0:0:root:/root:/bin/bash
den:x:500:500:Denis:/home/den:/bin/bash

Первое поле - логин пользователя (пароль не указывается, он храниться в /etc/shadow), второе поле указано только для совместимости со старыми системами, третье и четвертое поля - идентификаторы пользователя и группы (список групп представлен в файле /etc/groups), пятое поле является настоящим именем пользователя (может быть не заполнено), шестое поле содержит имя домашнего каталога, а последнее поле - название командного интерпретаторы для обработки веденных пользователем команд.

Пароли были перенесены в /etc/shadow и хранятся там в зашифрованном виде (алгоритмы DES, MD5, Blowfish или SHA), причем сам файл доступен для чтения и записи только администратору. При создании пользователя создается каталог /home/<username>, в который копируется содержимое каталога /etc/skel (файлы конфигурации по умолчанию, которые должны быть в любом пользовательском каталоге: скелет домашнего каталога). В случае изменения файла /etc/passwd нужно выполнить определенную команду для предотвращения проблем с правами доступа.

chown -R <userbame> <directory>

Группы пользователей позволяют более эффективно управлять правами (например, в случае распределения по проектам). Пользователи в одной группе имеют доступ к домашним каталогам друг друга. Доступные в системе группы указываются в файле /etc/group (для добавления группы можно добавить новую запись в файл, либо выполнить команду groupadd). Для изменения группы пользователя достаточно отредактировать файл /etc/passwd.

usermod -l new_user_name old_user_name    # переименование пользователя при этом все параметры остаются неизменными (uid, gid, пароль, домашняя директория), пользователь не должен быть залогинен в системе.
passwd test    # задать пароль для пользователя test
who    # просмотреть список залогиненых пользователей
addgroup newgroup    # добавить новую группу
groupdel newgroup    # удалить группу group_name
groupmod -n new_group old_group    # переименовать группу
/etc/group    # информация о группах
adduser newuser newgroup    # добавить пользователя newuser в группу newgroup, один пользователь может находиться во множестве групп, в одной группе может быть множество пользоваетелей. Для работы этой команды должны существовать группа newgroup и пользователь newuser
deluser someuser somegroup    # удаляет пользователя someuser из группы somegroup

Sudo по умолчанию не знает о пользователе ничего, если разрешён вход пользователя root. Для добавления пользователя в группу sudo (root) можно воспользоваться одним из вариантов ниже:

  • 1-й вариант:

Открываем терминал набираем "su -l" и вводим пароль root. Появится приглашение командной строки "#". Дальше набираем "visudo" и жмём enter, откроется редактор и увидим что вроде этого:

/etc/sudoers

#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification
# User alias specification
# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

После строки (ниже) root ALL=(ALL:ALL) ALL пишем:

имя_пользователя ALL=(ALL:ALL) ALL

Сохранить, перелогиниться и все.

  • 2-й вариант:

Всё тоже, только ищем (если нет - добавляем) строку %sudo ALL=(ALL:ALL) ALL, и раскомментируем её, т.е уберем "#" вначале. Дальше вводим команду:

adduser имя_пользователя sudo    # добавить пользователя в группу sudo

Сохранить, перелогиниться и все.

  • ВНИМАНИЕ: разрешение выполнения всех команд из-под sudo могут привести к проблемам безопасности вашей системы
  • 3-й вариант:

Открываем /etc/group, ищем сроку sudo: ... :user, в конце строки вписываем имя пользователя. Сохранить, перелогиниться и все.

Квотирование - механизм ограничения дискового пространства пользователей. Как правило, на сервере под каталог /home отводится отдельный раздел жесткого диска, который затем монтируется в данный каталог и делиться на пользователей. Для настройки квот необходимо установить пакет quota. Далее необходимо перезагрузиться в однопользовательский режим (параметр ядра single) и можно приступить к редактированию квот.

nano /etc/fstab    # разрешим устанавливать квоты
# добавить параметр usrquota к списку параметров раздела:
/dev/sda5    /home    ext4    defaults,usrquota    0    2
# затем необходимо перемонтировать каталог /home
mount -o remount /home
# создать файлы aquota.user и aquota.group (возможен вывод предупреждения)
touch /home/aquota.user
chmod 600 /home/aquota.user
quotacheck -vagum
# далее редактируем квоту, например, для пользователя user
equota -u user

Будет запущен редактор по умолчанию (для изменения установить переменную окружения EDITOR, например, EDITOR=nano):

Disk quotas for user user (uid 1001):
   Filesystem   blocks    soft      hard     inodes    soft   hard
   /dev/sda5    16         0         0          5        0      0
  • soft - максимальное дисковое пространство (в блоках), которое может занимать пользователь (если включить период отсрочки (grace period), то пользователь получит только сообщение о превышении квоты).
  • hard - жесткое ограничение (данную квоту пользователь превысить не может). Для ограничения стоит установить, например, soft на 495 Мбайт (495000 блоков), а hard на 500 Мбайт (500000 блоков), чтобы пользователь вначале получил предупреждение (до того, как он превысит hard и больше не сможет сохранять файлы в своем домашнем каталоге.
  • inodes - число используемых пользователем файлов
# выйти из файла и сохранить изменения, затем выполнить команду
edquota -t    # установка периода отсрочки
# примерный вывод
Grace period before enforcing soft limits for users:
  Time units may be: days, hours, minutes, or seconds
  Filesystem     Block grace period     Inode grace period
  /dev/sda8           7days                  7days
# вписать свой период отсрочки вместо 7days используя измерения времени на английском
    seconds, minutes, hours, days, weeks, months
# для пересмотра квот ввести команду
repquota /home

results matching ""

    No results matching ""