Как мне узнать, какие пользователи входят в группу в Linux?

Это значение по умолчанию, если я правильно понял ваш вопрос. Первый сокет открывается и блокируется в режиме прослушивания. Только после установления соединения будет предпринята попытка соединения со вторым сокетом. Вы можете проверить это. Например, прослушать порт 60127 и подключиться к порту 60128 в одной оболочке:

$ socat tcp-l:60127,reuseaddr tcp:localhost:60128

Он заблокируется в ожидании. В другой оболочке попробуйте подключиться:

$ telnet localhost 60127
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

Не удается, и исходная команда тоже не работает:

socat[30293] E connect(3, AF=2 127.0.0.1:60128, 16): Connection refused

Если, однако, вы повторите первый socat, а затем добавите еще один на порт 60128 с помощью:

$ socat tcp-l:60128,reuseaddr -

то telnet будет работать. Итак, очевидно, что первый socat не пробует соединение со вторым именем до тех пор, пока это не потребуется.

72
09.11.2015, 12:36
4 ответа

Работает как шарм:

cut -d: -f1,4 /etc/passwd | grep $(getent group <groupname> | cut -d: -f3) | cut -d: -f1
3
27.01.2020, 19:31

Эта модификация подхода user3717722 выводит список участников группы в базе данных NIS:

ypcat passwd | cut -d: -f1,4 | grep $(getent group <groupname> | cut -d: -f3) | cut -d: -f1
0
27.01.2020, 19:31

Некоторые скажут вам установить libuser (для 'крышки' )или Members (для 'members' ). Но, основываясь на ответе https://unix.stackexchange.com/a/349648/77959, который обрабатывал эту проблему с членством в группе входа , я обнаружил другую группу, не охваченную этим сценарием. Итак, -здесь собрано лучшее из обоих подходов:

#!/bin/bash
if [ $# -eq 1 ]; then
        gid=`getent group "$1"|cut -d: -f3`
        list_a=`cut -d: -f1,4 /etc/passwd | grep ":$gid$" | cut -d: -f1`
        list_b=`getent group "$1"|cut -d: -f4|sed 's/,/\n/g'`
        echo -e "$list_a\n$list_b"|grep -v "^$"|sort|uniq
else
        echo "pass me a group to find the members of"
fi
3
27.01.2020, 19:31
function members {

echo "$(getent group $1 | cut -d: -f1,2,3):$(getent passwd | cut -d: -f1,4 | grep $(getent group $1 | cut -d: -f3) | cut -d: -f1 | paste -sd ','):$(getent group $1 | cut -d: -f4)"

}

Список первичных и вторичных членов, разделенных " :"

0
05.02.2020, 19:23

Теги

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