Как получить идентификатор группы GID, дающий название группы.
Вывод был бы, например:
Group adm with GID=4
Взлом для необходимого: (все еще, возможно, существует намного лучший ответ)
awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep "group-name"
Более простая версия (Благодаря @A.B):
awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
Пример:
$ awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep sudo
Group sudo with GID=27
Используйте getent
команда для обработки групп и информации о пользователе, вместо того, чтобы вручную читать /etc/passwd
, /etc/groups
и т.д. Сама система использует /etc/nsswitch.conf
для решения, откуда она получает свою информацию, и настройки в файлах могут быть переопределены другими источниками. getent
повинуется этой конфигурации. getent
данные печати, неважно, источник, в том же формате как файлы, таким образом, можно тогда проанализировать вывод тем же путем, Вы проанализировали бы /etc/passwd
:
getent group sudo | awk -F: '{printf "Group %s with GID=%d\n", $1, $3}'
<час> Примечание, что, для имени пользователя, это намного более легче. Используйте id
:
$ id -u lightdm
105
Это может быть просто сделано с cut
:
$ cut -d: -f3 < <(getent group sudo)
27
getent group sudo
получит строку относительно sudo
группа от /etc/group
файл:
$ getent group sudo
sudo:x:27:foobar
Тогда мы можем просто взять третье поле, разграниченное :
.
, Если Вы хотите выходную строку соответственно, используйте замену команды в echo
:
$ echo "Group sudo with GID="$(cut -d: -f3 < <(getent group sudo))""
Group sudo with GID=27
Используя perl
острота:
% perl -ne '@elements=(split /:/); printf "Group %s with GID=%s\n",$elements[0],$elements[2]' <<< $(getent group sudo)
Group sudo with GID=27
или короче (и лучше)
% perl -F/:/ -ane 'printf "Group %s with GID=%s\n",$F[0],$F[2]' <<< $(getent group sudo)
Group sudo with GID=27
более сложные ответы всегда ценятся - я узнаю о так много из чтения их вполне честно.
я натолкнулся на эту страницу, потому что я искал идентификатор группы своей почтовой группы и не знал, где та информация хранилась.
Ваши ответы являются большими - вот простой, который я придумал
кошка def@fourof4:/home$/etc/group | grep почта mail:x:8:
я знаю, что это не улаживает идентификатор, но это служило моей цели.
Попытка Блока цитирования это: awk-F: '/sudo/{печатают "Группу "1$ "с GID =" 3$}'/etc/group †“A.B. 23 июня '15 в 15:51 Блок цитирования
я вижу это также упомянутое помимо того, которое я заключил в кавычки...., все получают мою любовь - извините, если я скучал по Вам
, это - то, что вело меня в тот файл.
Спасибо и продолжает подавать меня превосходное в любой форме, которой Вы желаете! определение