Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Куклы и игрушки [60]
Личное [114]
Музыка [19]
Общее [300]
Японский язык [12]
ZX Spectrum [69]
Субмарины [98]
Настольные игры [34]
Го (碁) [11]
Книги [16]
Япония [26]
Таро [4]
Запертый шкаф [17]
CSA (КША) [15]
GNU/Linux [124]
Ubuntu [103]
Manjaro Linux [36]
Python [3]
Магнитольное [43]
Commodore64 [6]
Игровые приставки [2]


 
Дневник (2021 » Октябрь » 26 в 13:22)
GNU/Linux Linux users and groups

passwd
group

Небольшая справка о том, как работать с пользователями и группами в Linux. 



ФАЙЛЫ

Информация о пользователях и группах хранится в /etc/. Рассмотрим эти файлы:
less /etc/group        # хранится информация о группах.
less /etc/passwd       # вся информация о пользователях кроме пароля

или так:
getent group
getent passwd

Хэши паролей и номеров юзеров
sudo less /etc/shadow  
sudo less /etc/gshadow

Формат текстовой, по строке на запись, разделитель - двоеточие:
имя пользователя:пароль:UID:GID:комментарий:домашняя директория:командная оболочка
<name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

ПОЛЬЗОВАТЕЛИ

Я не буду вдаваться в подробности в этом конспекте, ключи можно посмотреть в man, или в подробных статьях в ссылках в  конце.

NOTE: У каждого пользователя есть числовой идентификатор пользователя, называемый UID. Если не указан при создании нового пользователя с помощью команды useradd, UID будет автоматически выбран из файла /etc/login.defs в зависимости от значений UID_MIN и UID_MIN. Посмотреть эти параметры:
cat /etc/login.defs | grep UID_M
или так:
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

Создать пользователя в группе sambauser:
sudo useradd -M -N -r -s /bin/false -g sambauser username

Удалить пользователя username
sudo userdel username

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

Добавить комментарий к пользователю username
sudo usermod -c "Text of commentary..." username

Задать пароль пользователю
sudo passwd username

Вывести список всех пользователей (только имена)
cut -d: -f1 /etc/passwd
или так
awk -F: '{ print $1}' /etc/passwd

Вывести список только тех пользователей, у кого хомяк в /home
cat /etc/passwd | grep '/home' | cut -d: -f1
или так:
getent passwd | grep '/home'

Вывести список обычных пользователей (без затычки nologin, имеющих вход в shell )
cat /etc/passwd | grep -E -v 'nologin' | cut -d: -f1

Попытаться залогиниться под другим пользователем, например как bin:
sudo su bin

Залогиниться под пользователем без оболочки можно так:
sudo -u username /bin/bash

Подсчитать общее количество пользователей:
getent passwd | wc -l

ГРУППЫ

NOTE: Хотя учетная запись пользователя может входить в нескольких групп, одна из групп всегда является «основной группой», а остальные являются «вторичными группами». Процесс входа пользователя, файлы и папки, созданные пользователем, будут назначены первичной группе.

Это может вызывать некоторое непонимание, и на примере я опишу это в конце в примере.

Добавить группу
sudo groupadd groupname

Удалить группу
sudo groupdel groupname

Переименовать группу
sudo groupmod -n new-group-name old-group-name

Вывести список всех групп
cut -d: -f1 /etc/group

Для компактности можно обернуть в переменную:
echo $(cut -d: -f1 /etc/group)

Подсчитать общее количество групп:
getent group | wc -l

ПОЛЬЗОВАТЕЛИ В ГРУППАХ

Группы существуют для управления правами пользователей через отдельный объект.

Добавление пользователя в группу
sudo usermod -a -G groupname username

Добавление пользователя в несколько вторичных групп
sudo usermod -a -G groupname1,groupname2 username

Удаление пользователя из группы
sudo gpasswd -d username groupname 

Изменение первичной группы пользователя (если выше не помогло)
sudo usermod -g groupname username

Показать к каким группам, uid/gid принадлежит юзер
id username

Вывести к каким группам принадлежит каждый пользователь из списка:
for x in user1 user2 user3 user4 ;do printf $x:; groups $x;done

Вывести к каким группам принадлежит каждый имеющий домашний каталог, пользователь:
for x in $(cat /etc/passwd | grep '/home' | cut -d: -f1);do printf $x:; groups $x;done

Пример

А теперь обещанный пример.

Создадим двух пользователей и назначим их в три группы каждого:
sudo useradd -M -N -r -s /bin/false -g group01 -G group02,group03  testuser01
sudo useradd -M -N -r -s /bin/false -g group01 -G group02,group03  testuser02

Увидим, что в списке пользователей фигурирует только одна с Group ID=1002

cat /etc/passwd | grep testuser
Вывод:
testuser01:x:953:1002::/home/testuser01:/bin/false
testuser02:x:952:1002::/home/testuser02:/bin/false

Узнать имя группы по её GID:
less /etc/group |grep 1002

Как же так, а где наши остальные членства в группах, разве пользователь не был в них включён? Спокойствие! Все группы назначены, Просматривая /etc/passwd мы видим только основную группу пользователя, указанную кодом GID. Дополнительные группы хранятся не тут.

Наоборот, это пользователи хранятся в описании группы в файле /etc/group. И только в том случае, если эта группа им не основная.

Посмотреть по именованному списку дополнительных групп, в каких из них состоит пользователь username:
grep -E '^groupname1|^groupname2|^groupname3' /etc/group | grep username

Такие дела.

Использованные ссылки:

  1. https://help.ubuntu.ru/wiki/пользователи_и_группы
  2. https://zalinux.ru/?p=1407
  3. https://zalinux.ru/?p=5578
  4. https://interface31.ru/tech_it/2019/12/linux-nachinayushhim-chast-6-upravlenie-pol-zovatelyami-i-gruppami.html

Категория: GNU/Linux | Просмотров: 120 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 0.
В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous
Логин:
Пароль:

Календарь
«  Октябрь 2021  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2023
Лучший браузер!
Блокировка рекламы