Я разработчик программного обеспечения, внезапно обнаруживающий, что мне нужно играть в системного администратора.
Недавно мне подарили ящик, которым ранее управлял кто-то другой, и этот системный администратор сделал то, что хотел. Мой супервизор получает ящик для системного администратора, и кажется, что домашние каталоги для пользователей скрыты повсюду в поле.
Излишне говорить, что ответ на его проблему - "эй, стажер!"
Итак, мне было интересно, есть ли способ найти все домашние каталоги для всех пользователей коробки? Коробка, над которой я работаю, - RHEL 5.
Предполагая, что все пользователи являются локальными пользователями (то есть нет службы сетевых каталогов, такой как LDAP, Active Directory, NIS и т. Д.), Тогда все локальные пользователи, вероятно, перечислены в /etc/passwd
, который представляет собой файл с разделителями-двоеточиями со следующими полями:
username:password:uid:gid:name:home directory:shell
Вы можете получить только имена пользователей и домашние каталоги, если это проще, например:
awk -F: '{print $1,$6}' /etc/passwd
Используя предложение Урголла об использовании getent
команда, это:
getent passwd | awk -F: '{print $1,$6}'
Тебе повезло! Все, что вы хотите /etc/passwd
:-)
Например:
jay:x:1000:1000:Jay Shah,,,:/home/jay:/bin/bash
куда jay
это мое имя пользователя, 1000
это мой uid / gid, /home/jay
это мой домашний каталог, и /bin/bash
моя оболочка.