Users and groups (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: пожалуйста, используйте первый аргумент шаблона для указания дополнительной информации. (обсуждение: Talk:Users and groups (Русский)#)

Пользователи и группы пользователей используются на GNU/Linux для управления доступом — то есть, для управления доступом к системным файлам, каталогам и переферии. Linux предлагает относительно простые и грубые механизмы контроля доступа по умолчанию. Для более продвинутых вариантов, см. ACL и LDAP authentication

Обзор

Пользователь это любой кто использует компьютер. Имена пользователей могут быть любыми, например Mary или Bill, или псевдонимы вместо реальных имен, например Dragonlady или Pirate. Единственное что важно — это то что у компьютера есть имя для каждого созданного аккаунта, и то, что это имя, с помощью которого человек получает доступ к компьютеру. Некоторые службы и программы также запускаются с ограниченными или полными правами.

Управление аккаунтами пользователей используется в целях безопасности, ограничивая доступ несколькими способами.

Любой человек может иметь один и более аккаунт, поэтому каждому аккаунту должно соответствовать уникальное имя. Также есть несколько зарезервированных имен, которые нельзя использовать, например "root", "hal", и "adm".

Пользователи могут быть объединены в группы, и в зависимости от того в каких группах состоят пользователи их привилегии будут различаться.

Примечание: Новичкам стоит использовать эти инструменты аккуратно и воздержаться от изменения уже созданных аккаунтов, кроме своего.

Права и собственность

From In UNIX Everything is a File:

ОС семейства UNIX созданы следуя нескольким единым идеям и концептам, которые отразились в их дизайне, интерфейсе, культуре и эволюции. Одна из важнейших таких идей: "все - это файл"
Этот ключевой принцип состоит в предоставлении единой парадигмы для доступа к широкому кругу устройств ввода/вывода: документы, директории, жесткие диски, CD-диски, модемы, клавиатуры, принтеры, мониторы, терминалы и даже некоторые межпроцессовые взаимодействия и сетевые соединения. Фокус в том, чтобы предоставить простые абстракции для всех этих ресурсов, каждую из которых отцы UNIX назвали "файлом". Так как доступ к любому "файлу" можно получить через один и тот же интерфейс(API, не путать с GUI), вы можете использовать один и тот же набор базовых команд для чтения/записи диска, клавиатуры, документа или сетевого устройства.
Extending UNIX File Abstraction for General-Purpose Networking:
A fundamental and very powerful, consistent abstraction provided in UNIX and compatible operating systems is the file abstraction. Many OS services and device interfaces are implemented to provide a file or file system metaphor to applications. This enables new uses for, and greatly increases the power of, existing applications — simple tools designed with specific uses in mind can, with UNIX file abstractions, be used in novel ways. A simple tool, such as cat, designed to read one or more files and output the contents to standard output, can be used to read from I/O devices through special device files, typically found under the /dev directory. On many systems, audio recording and playback can be done simply with the commands, "cat /dev/audio > myfile" and "cat myfile > /dev/audio," respectively.

Каждый файл в системе GNU/Linux принадлежит определённому пользователю и группе. Также следует отметить, что существует три типа доступа к файлу: чтение, запись, и выполнение. Различные типы доступа могут быть применены к пользователю и группе, владеющими файлом, а так же всем остальным (не являющимся владельцами файла). Владельцев файлов, а также права доступа можно определить с помощью команды ls:

$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux

Первая колонка отображает права доступа к файлу (например, файл initramfs-linux.img имеет права доступа -rw-r--r--). Третья и четвёртая колонки отображают пользователя и группу, владеющих файлом, соответственно. В этом примере, всеми файлами владеет пользователь root, а так же одноимённая группа: root.

$ ls /media/ -l
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

В этом примере, каталог sf_Shared принадлежит пользователю root и группе vboxsf. Также можно определить владельцев и права доступа используя команду stat:

Пользователь:

$ stat -c %U /media/sf_Shared/
root

Группа:

$ stat -c %G /media/sf_Shared/
vboxsf

Права доступа:

$ stat -c %A /media/sf_Shared/
drwxrwx---

Права доступа отображаются в виде трёх групп символов, представляющих права доступа пользователя, владеющего файлом, владеющей группы, и всех остальных соответственно. Например, символы -rw-r--r-- означают, что владелец файла имеет право на чтение и запись, но не выполнение (rw-), в то время как пользователи, относящиеся к владеющей группе, и все остальные пользователи имеют лишь право на чтение (r-- и r--). Между тем, символы drwxrwx--- указывают на то, что владелец файла и прочие пользователи, относящиеся к владеющей группе, все имеют право на чтение, запись, и выполнение (rwx и rwx), тогда как остальные пользователи вообще не имеют никаких прав доступа к файлу (---). Первый символ означает тип файла: «d» — каталог, «-» — файл, «l» — ссылка.

Узнать список файлов, которыми владеет тот или иной пользователь и группа, можно с помощью команды find:

# find / -group [group]
# find / -user [user]

Пользователь и группа могут быть изменены с помощью команды chown (change owner). Права доступа к файлу могут быть изменены с помощью команды chmod (change mode).

See chown(1), chmod(1), and Linux file permissions for additional detail.

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Users and groups (Русский)#)

Управление пользователями

Информация о пользователях находится в файле /etc/passwd. Чтобы узнать список всех пользователей в системе:

$ cat /etc/passwd

На каждый аккаунт приходится по одной строке, имеющей следующий формат:

account:password:UID:GID:GECOS:directory:shell

где:

  • account — имя пользователя
  • password — пароль пользователя
  • UID — идентификационный номер пользователя
  • GID — идентификационный номер основной группы пользователя
  • GECOS — необязательное поле, используемое для указания дополнительной информации о пользователе (напирмер, полное имя пользователя)
  • directory — домашний каталог ($HOME) пользователя
  • shell — командный интерпретатор пользователя (обычно /bin/sh)
Примечание: Arch Linux использует затенённые пароли. Файл passwd доступен для чтения всем, поэтому хранить в нём пароли небезопасно. С целью сохранить секретность, в поле password находится символ x, указываюший на то, что пароль сохранён в файле с ограниченным доступом /etc/shadow.

Посмотреть список пользователей, вошедших в систему, можно с помощью команды who.

Чтобы добавить нового пользователя, следует использовать команды useradd:

# useradd -m -g [основная группа] -G [дополнительные группы] -s [командный интерпретатор] [имя пользователя]
  • -m — создаёт домашний каталог пользователя, вида /home/[имя пользователя]; в пределах которого, пользователь, не имеющий прав доступа root, может создавать и удалять файлы, устанавливать программы, и т. д.
  • -g — определяет имя или номер основной группы пользователя; группа должна существовать; номер группы должен относится к уже существующей группе; если параметр не указан, пользователю будет присвоена группа в соответствии с переменной USERGROUPS_ENAB, находящейся в /etc/login.defs.
  • -G — определяет список дополнительных групп, в которые входит пользователь; каждая группа отделяется от другой запятой без пробелов; по умолчанию пользователь принадлежит только основной группе.
  • -s — определяет командную оболочку пользователя; сценарии запуска Arch Linux используют Bash; после завершения запуска системы, командная оболочка будет той, что указана в данном параметре; при выборе отличного от Bash интерпретатора, убедитесь, что он установлен в систему.


Стандартный пример - добавление нового пользователя archie, с выбором баша в качестве оболочки и включением его в группы wheel и audio:

# useradd -m -g users -G wheel,audio -s /bin/bash archie

Для более продвинутых примеров, наберите:

$ man useradd

Для того, чтобы ввести полную информацию о пользователе (ФИО, и пр.), наберите:

# chfn [имя пользователя] option specifies that the user's home directory and mail spool should also be deleted

(при таком использовании chfn запускается в интерактивном режиме).

Для указания пароля пользователя, наберите:

# passwd [имя пользователя]

Также доступна интерактивная утилита для добавления пользователей:

# adduser

adduser запрашивает различную информацию о пользователе, и составляет команду для useradd. Также включает в себя действия, выполняемые chfn и passwd.

Удаление пользователей выполняется командой userdel.

# userdel -r [имя пользователя]

Опция -r также удаляет домашнюю директорию и почту пользователя.

Управление группами

/etc/group - файл, хранящий информацию о группах пользователей.

Чтобы отобразить группы, в которые включен пользователь, можно использовать команду groups:

$ groups [имя пользователя]

Если имя пользователя не указано, команда отобразит группы текущего пользователя.

Используя команду id можно получить дополнительную информацию, такую как ID пользователя и его групп (UID и GID):

$ id [имя пользователя]

Отобразить список всех групп:

$ cat /etc/group

Добавить новую группу командой groupadd:

# groupadd [имя группы]

Добавить пользователя в группу, команда gpasswd:

# gpasswd -a [имя пользователя] [имя группы]

Удалить группу:

# groupdel [имя группы]

Убрать пользователя из группы:

# gpasswd -d [имя пользователя] [имя группы]

Пользователю необходимо перезайти в систему, чтобы изменения вступили в силу.

Группы

Пользовательские группы

Некоторые пользователи должны состоять в некоторых из следующих групп, чтобы получить доступ к периферийным устройствам и упростить администрирование системы:

Группа Затронутые файлы Цель
adm Группа администрирования, аналогичная wheel.
ftp /srv/ftp/ Доступ к файлам, обслуживаемым FTP серверами.
games /var/games Доступ к некоторым игровым программам.
http /srv/http/ Доступ к файлам, обслуживаемым HTTP серверами.
log Доступ к лог-файлам в /var/log/, созданным syslog-ng.
rfkill /dev/rfkill Право управления состоянием питания беспроводных устройств (используется rfkill).
sys Право администрирования принтеров в CUPS.
systemd-journal /var/log/journal/* Может использоваться для обеспечения доступа (только для чтения) к журналам systemd, в качестве альтернативы adm and wheel [1]. В противном случае отображаются только сообщения, созданные пользователем.
users Стандартная группа пользователей.
uucp /dev/ttyS[0-9]+, /dev/tts/[0-9]+, /dev/ttyUSB[0-9]+, /dev/ttyACM[0-9]+, /dev/rfcomm[0-9]+ RS-232 последовательные порты и подключенные к ним устройства.
wheel Группа администрирования, обычно используемая для предоставления доступа к sudo и su (Не использует его по умолчанию, настраивается в /etc/pam.d/su и /etc/pam.d/su-l). Он также может использоваться для получения полного доступа на чтение к journal файлам.

Системные группы

Следующие группы используются для системных целей, назначение пользователям требуется только для специальных целей:

Группа Затронутые файлы Цель
dbus Используется внутри dbus
kmem /dev/port, /dev/mem, /dev/kmem
locate /usr/bin/locate, /var/lib/locate, /var/lib/mlocate, /var/lib/slocate Смотрите Core utilities#locate.
lp /dev/lp[0-9]*, /dev/parport[0-9]*, /etc/cups, /var/log/cups, /var/cache/cups, /var/spool/cups Доступ к устройствам параллельного порта (принтеры и другие) и доступ (только для чтения) к файлам CUPS. Если вы запустите устройство параллельного порта без принтера, см. FS#50009 возможные.
mail /usr/bin/mail
nobody Непривилегированная группа.
proc /proc/pid/ Группа, уполномоченная изучать информацию о процессах, в противном случае запрещена опцией монтирования proc filesystem. Группа должна быть явно задана с помощью опции монтирования.
smmsp sendmail группа.
tty /dev/tty, /dev/vcc, /dev/vc, /dev/ptmx
utmp /run/utmp, /var/log/btmp, /var/log/wtmp

Pre-systemd groups

Перед переходом arch на systemd, gользователи должны были быть добавлены вручную в эти группы, чтобы иметь возможность доступа к соответствующим устройствам. This way has been deprecated in favour of udev marking the devices with a uaccess tag and logind assigning the permissions to users dynamically via ACLs according to which session is currently active. Обратите внимание: сеанс не должен быть разбит, чтобы это сработало (см. General troubleshooting#Session permissions).

Есть некоторые исключения, которые требуют добавления пользователя в некоторые из этих групп: например, если вы хотите разрешить пользователям доступ к устройству, даже когда они не вошли в систему. Однако обратите внимание, что добавление пользователей в группы может добавить некоторые функциональные возможности(например, группа audio нарушит быстрое переключение пользователей и позволяет приложениям блокировать смешение программного обеспечения).

Группы Затронутые файлы Цель
audio /dev/audio, /dev/snd/*, /dev/rtc0 Прямой доступ к звуковому оборудованию для всех сеансов. По-прежнему требуется, чтобы ALSA и OSS работали в удаленных сеансах, см.ALSA#User privileges.
disk /dev/sd[a-z][1-9] Доступ к блочным устройствам, не затронутым другими группами, такими как optical, floppy, и storage.
floppy /dev/fd[0-9] Доступ к флоппи-дискам.
input /dev/input/event[0-9]*, /dev/input/mouse[0-9]* Доступ к устройствам ввода. Введено в systemd 215 [2].
kvm /dev/kvm Доступ к виртуальным машинам с использованием KVM.
optical /dev/sr[0-9], /dev/sg[0-9] Доступ к оптическим устройствам, таким как CD- и DVD-приводы.
scanner /var/lock/sane Доступ к оборудованию сканера.
storage Доступ к съемным дискам, таким как жесткие диски USB, флеш-накопители, MP3-плееры; Позволяет пользователю монтировать запоминающие устройства.
video /dev/fb/0, /dev/misc/agpgart Доступ к устройствам захвата видео, аппаратное ускорение 2D / 3D, framebuffer (X можно использовать без поддержки этой группы).