спискок пользоаателей из primary group (id, getent, ...)

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Ответить
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

спискок пользоаателей из primary group

Сообщение Stauffenberg »

Всем привет.

Подскажите как лучше всего (вывод стандартной комадны, не открывание и парсинг файлов) получить список пользователей из primary group.
Через id -gn я могу получить имя группы. Мне нужно наоборот - по названию этой группы получить список пользователей.

id указывает gid, но getent group <NAME> возвращает пустой список, т.е. получается что пользователь относится к пустой группе (с количеством пользователей 0). Я хочу узнать кто еще относится к этой группе.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: спискок пользоаателей из primary group

Сообщение Bizdelnick »

getent passwd | grep "^[^:]*:[^:]*:[^:]*:$gid:" | cut -d: -f1
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: спискок пользоаателей из primary group

Сообщение Stauffenberg »

Bizdelnick писал(а):
09.02.2018 16:34
getent passwd | grep "^[^:]*:[^:]*:[^:]*:$gid:" | cut -d: -f1

Не показывает никого.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: спискок пользоаателей из primary group

Сообщение Bizdelnick »

Stauffenberg писал(а):
09.02.2018 17:34
Не показывает никого.

В $gid должен быть GID (числовой).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: спискок пользоаателей из primary group

Сообщение Stauffenberg »

Bizdelnick писал(а):
09.02.2018 18:07
Stauffenberg писал(а):
09.02.2018 17:34
Не показывает никого.

В $gid должен быть GID (числовой).

У меня ничего не возвращает. Ни в Kubuntu, ни в openSUSE.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: спискок пользоаателей из primary group

Сообщение Bizdelnick »

Shell

% getent passwd | grep "^[^:]*:[^:]*:[^:]*:65534:" | cut -d: -f1 sync nobody statd sshd gitlog gitdaemon miredo dnsmasq _apt debianfdm %

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: спискок пользоаателей из primary group

Сообщение SLEDopit »

Bizdelnick писал(а):
09.02.2018 16:34
getent passwd | grep "^[^:]*:[^:]*:[^:]*:$gid:" | cut -d: -f1
Как страшно (:
Проще же через awk: getent passwd | awk -F: '{if($4=='$gid')print $1}'
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: спискок пользоаателей из primary group

Сообщение Bizdelnick »

Не люблю awk. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: спискок пользоаателей из primary group

Сообщение Stauffenberg »

SLEDopit писал(а):
10.02.2018 00:07
Проще же через awk: getent passwd | awk -F: '{if($4=='$gid')print $1}'

Апостроф 4 раза используется :blush:

Bizdelnick писал(а):
09.02.2018 22:52

Shell

% getent passwd | grep "^[^:]*:[^:]*:[^:]*:65534:" | cut -d: -f1 sync nobody statd sshd gitlog gitdaemon miredo dnsmasq _apt debianfdm %


Спасибо. Да, если подставлять вручную, то работает. Теперь осталось только придумать как подставлять динамически этот числовой gid...
Я вот что понять не могу. Почему нет стандарного метода получить этот список и обязательно надо самому парсить?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: спискок пользоаателей из primary group

Сообщение SLEDopit »

Stauffenberg писал(а):
10.02.2018 03:12
Теперь осталось только придумать как подставлять динамически этот числовой gid
gid=$(id -g "имя_группы")
getent passwd | grep "^[^:]*:[^:]*:[^:]*:$gid:" | cut -d: -f1

должно работать.
Stauffenberg писал(а):
10.02.2018 03:12
Почему нет стандарного метода получить этот список и обязательно надо самому парсить?
Видимо это не такая популярная операция. Но никто не мешает отправить pull request ;)
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: спискок пользоаателей из primary group

Сообщение Bizdelnick »

Stauffenberg писал(а):
10.02.2018 03:12
Апостроф 4 раза используется

Апострофофобия?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: спискок пользоаателей из primary group

Сообщение Stauffenberg »

SLEDopit писал(а):
10.02.2018 10:27
Stauffenberg писал(а):
10.02.2018 03:12
Теперь осталось только придумать как подставлять динамически этот числовой gid
gid=$(id -g "имя_группы")
getent passwd | grep "^[^:]*:[^:]*:[^:]*:$gid:" | cut -d: -f1

должно работать.

Нет, не должно... т.к. id ожидает имя_пользователя как аргумент, а не имя_группы
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: спискок пользоаателей из primary group

Сообщение Stauffenberg »

SLEDopit писал(а):
10.02.2018 00:07
Bizdelnick писал(а):
09.02.2018 16:34
getent passwd | grep "^[^:]*:[^:]*:[^:]*:$gid:" | cut -d: -f1
Как страшно (:
Проще же через awk

Да и так и так не работает если данные идут из LDAP, к примеру :blush:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Ответить