powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Список пользователей группы X
17 сообщений из 17, страница 1 из 1
Список пользователей группы X
    #35843726
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как узнать список пользователей, входящих в определенную группу (например, audio) средствами командного интерпритатора?
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35843738
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как то так
Код: plaintext
grep ^audio /etc/group | awk -F : '{print $4}'

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844224
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle
Как то так
Код: plaintext
grep ^audio /etc/group | awk -F : '{print $4}'


в общем случае неверно....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
[21:51 1.38]
[web 14] ~ > id borisych
uid=1218(borisych) gid=1218(borisych) groups=1218(borisych)
[21:51 1.35]
[web 15] ~ > grep borisych /etc/group
[21:51 1.27]
[web 16] ~ > getent group borisych
borisych:!:1218:borisych
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844337
Sleeping Daemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VxS_Как узнать список пользователей, входящих в определенную группу (например, audio) средствами командного интерпритатора?
Сделать просто grep groupname /etc/group
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844589
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> в общем случае неверно....

Гм... Пример убедителен. Поясните пожалуйста ситуацию. Это были _не локальные_ пользователь/группа? Или от ОС зависит?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844716
Gerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если борисычу звезду сзади поставить?...
я всегда делаю так
Код: plaintext
more /etc/passwd | grep borysich
(это для freebsd)
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844722
Gerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это для пользователя, для группы соответсвенно:

Код: plaintext
more /etc/group | grep borysich

вот только не факт, что так всех выведет... как в линухе не знаю, а вот у меня во фряке там только рут выводится, а остальных нужно из того же passwd по gid-у вытаскивать - а это уже имхо менее тривиально... - надо маленький шелл писать, которыс сначала сопостовляет названию группы гид, а потом уже passwd на вопрос этого гида изучает(ну или просто посмотреть и искать сразу по гиду)...
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844807
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle
Гм... Пример убедителен. Поясните пожалуйста ситуацию. Это были _не локальные_ пользователь/группа? Или от ОС зависит?


в /etc/passwd, /etc/group, /etc/hosts конечно хранится некоторая информация о пользователях, группах, хостах, но далеко не факт что вся. За порядок поиска информации по разным ресурсам отвечает файл /etc/nsswitch.conf. В моем случае группы и пользователи берутся из БД postgresql (хотя так же могут храниться в ldap, nis, mysql либо передаваться по самбе) - последнее время это не такая уж и экзотика, но все равно встречается редко, хотя например порядок поиска хостов files dns встречается повсеместно, так что лучше пользоваться командой getent.
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844947
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sleeping DaemonVxS_Как узнать список пользователей, входящих в определенную группу (например, audio) средствами командного интерпритатора?
Сделать просто grep groupname /etc/group
Если бы все так просто.
Вот несколько строк из /etc/group
Код: plaintext
1.
2.
3.
4.
plugdev:x: 46 :vxs
lpadmin:x: 109 :vxs
admin:x: 114 :vxs
vxs:x: 1000 :newuser
Если воспользоваться вашим советом и прописать
Код: plaintext
>grep vxs /etc/group
то выберутся все записи в которых есть vxs. Если воспользоваться советом vkle и добавить ^:
vkle
Как то так
Код: plaintext
grep ^audio /etc/group | awk -F : '{print $4}'

Код: plaintext
>grep ^vxs /etc/group
То выберется только запись
Код: plaintext
vxs:x: 1000 :newuser

Почти то, что надо (во всяком случае со стандартными группами работает отменно) - Но! Пользователь vxs входит в группу vxs также как и newuser, но он не прописан в этой строке.
Если прописать так:
Код: plaintext
grep ^vxs /etc/group | awk -F : '{print $1,$4}'
То получаю необходимый результат для своих групп (т.к. каждому пользователю создается одноименная группа), но для стандартных групп получаю глупость (думаю это очевидно).

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

Gerrr
Код: plaintext
more /etc/group | grep borysich

эти команды выдают тот же результат, что и:
Код: plaintext
1.
>grep ^vxs /etc/group
во всяком случае на Desktop BSD, Linux Kubuntu, Linux Mandriva
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35844948
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VxS_
Gerrr
Код: plaintext
more /etc/group | grep borysich

эти команды выдают тот же результат, что и:
Код: plaintext
1.
>grep ^vxs /etc/group

Ошибся:
Код: plaintext
1.
>grep borysich /etc/group
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35845033
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Но! Пользователь vxs входит в группу vxs также как и newuser, но он
> не прописан в этой строке.

Другими словами, в список нужно включить так же тех пользователей, для которых указанная группа является дефолтной (та, что указана в /etc/passwd). Так?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35845084
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Абсолютно верно
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35845591
Gerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловvkle
Гм... Пример убедителен. Поясните пожалуйста ситуацию. Это были _не локальные_ пользователь/группа? Или от ОС зависит?


в /etc/passwd, /etc/group, /etc/hosts конечно хранится некоторая информация о пользователях, группах, хостах, но далеко не факт что вся. За порядок поиска информации по разным ресурсам отвечает файл /etc/nsswitch.conf. В моем случае группы и пользователи берутся из БД postgresql (хотя так же могут храниться в ldap, nis, mysql либо передаваться по самбе) - последнее время это не такая уж и экзотика, но все равно встречается редко, хотя например порядок поиска хостов files dns встречается повсеместно, так что лучше пользоваться командой getent.

Да уж не подумал - хотя ведь у меня у самого на серваке с самбой пользователи в ldap-e... Но тут уже совсем нетривиальное решение наверное...
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35846043
fy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fy
Гость
vkle
Другими словами, в список нужно включить так же тех пользователей, для которых указанная группа является дефолтной (та, что указана в /etc/passwd). Так?


Вариант конечно не очень, но первое что пришло в голову:

авторgrep '^install' /etc/group | sed 's/^.*:.*:\([0-9].*\):\(.*\)$/\2/g' && grep "^.*:\(`grep '^install' /etc/group | sed 's/^.*:.*:\([0-9].*\):.*$/\1/g'`\):.*$" /etc/passwd | sed 's/^\([a-z].*\):x:\([0-9]\).*:.*$/\1/g'

поправьте если что не так
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35848243
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fyvkle
Другими словами, в список нужно включить так же тех пользователей, для которых указанная группа является дефолтной (та, что указана в /etc/passwd). Так?


Вариант конечно не очень, но первое что пришло в голову:

авторgrep '^install' /etc/group | sed 's/^.*:.*:\([0-9].*\):\(.*\)$/\2/g' && grep "^.*:\(`grep '^install' /etc/group | sed 's/^.*:.*:\([0-9].*\):.*$/\1/g'`\):.*$" /etc/passwd | sed 's/^\([a-z].*\):x:\([0-9]\).*:.*$/\1/g'

поправьте если что не так
Благодарю за пример. На его основе сделал такой
Код: plaintext
1.
grep '^vxs:' /etc/group|awk -F : '{print $4}' && grep '^vxs:' /etc/passwd|awk -F : '{print $1}'
Двоеточие в конце username пришлось поставить, т.к. он выводил неверный результат для группы lp (Выводил также пользователей, входящих в группу lpadmin). Информацию вроде выводит корректную (во всяком случае на наборах данных, которые я использовал), к сожалению выводит пустую строку, если группа является дефолтной для пользователя и при этом в эту группу больше пользователей не входит.
Вопросы следующие:
1. Можно ли как-нибудь запретить вывод пустой строки?
2. Есть ли наборы данных, на которых результат будет некорректен (я пока что такой не нашел)
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35848474
fy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fy
Гость
VxS_ 1. Можно ли как-нибудь запретить вывод пустой строки?


Добавить в grep проверку что строка в /etc/group не заканчивается двоеточием
...
Рейтинг: 0 / 0
Список пользователей группы X
    #35848491
fy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fy
Гость
VxS_,

Код: plaintext
grep '^vxs:' /etc/passwd|awk -F : '{print $1}'

Вот тут я не понял, вы ищете пользователся vxs в /etc/passwd и его же и выводите. В чем смысл?
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Список пользователей группы X
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]