Отдельные пользователи системы и пользователи сервиса

Мы все знаем, что у нас есть пользователи системы и пользователи услуг. Я ищу способ разделить их на пользователей системы и список пользователей услуг.

Есть ли способ?

8
задан 17.05.2020, 03:45

2 ответа

На основе gid пользователи системы и пользователи услуг могут быть разделены следующим образом:

/etc/passwd содержит список для всех пользователей вместе с некоторой другой информацией. Пользователи службы или реальные пользователи имеют gid больше или равно 1000. Таким образом, список реальных пользователей может быть получен как

awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Также список пользователей системы (gid < 1000) может быть извлечен как,

awk -F: '($3<1000){print $1}' /etc/passwd

Как это работает

Содержимое /etc/passwd похоже на

    root:x:0:0:root:/root:/bin/bash
    ...
    souravc:x:1001:1001:Souravc:/home/souravc:/bin/bash

При использовании awk с помощью -F: разделяет содержимое строки на несколько полей, рассматривая : как разделитель полей. Первое поле содержит имя пользователя, а третье поле имеет gid.

Следовательно, для извлечения реальных пользователей awk просто проверьте, что значение третьего поля больше, чем равно 1000, и оно не , ни один пользователь , и выводит первое поле, то есть имя пользователя.

Для просмотра списка всех пользователей системы просто проверяется, что gid меньше 1000, и печатается имя пользователя.

Редактировать

Как вы хотите перечислить root (gid = 0) в реальном списке пользователей. Получить реальных пользователей как,

awk -F: '($3==0)||($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Получить системных пользователей как,

awk -F: '($3<1000)&&($1!="root"){print $1}' /etc/passwd

Примечание Я всегда игнорирую nobody пользователя.

7
ответ дан 17.05.2020, 03:46
  • 1
    Я хотел бы иметь пользователя root в @S списка реального пользователя – Bizmarck 17.05.2020, 03:47
  • 2
    Как это может заботиться о пользователе root? – Pwner 17.05.2020, 03:47
  • 3
    да, потому что он - также пользователь. – fujianjin6471 17.05.2020, 03:48
  • 4
    не понял Вашу точку? Вы получите корень как пользователь системы. Вы хотите включать корень в список реального пользователя? – fujianjin6471 17.05.2020, 03:48
  • 5
    @rajagenupula он в порядке теперь? – Elnur Abdurrakhimov 17.05.2020, 03:48

Для перечисления локальных (системных пользователей), которые могут войти в систему и иметь homedir и GID менее 1000

 cat /etc/passwd | cut -d: -f 1,3,6 | grep "[1-9][0-9][0-9][0-9]" | grep "/home" | cut -d: -f1

Для перечисления всех остальных пользователей: (в основном системные пользователи и GID менее 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1
2
ответ дан 17.05.2020, 03:46
  • 1
    @rajagenupula да наверняка. только корень является исключением. и в человечности обычно, корень не может войти в систему по умолчанию. – OneWorld 17.05.2020, 03:46
  • 2
    Корень user' идентификатор S Group и user' идентификатор s является меньше чем 1 000 right.thank Вы для ответа – Kyle 17.05.2020, 03:47

Теги

Похожие вопросы