Як я можу перерахувати всі облікові записи користувачів у терміналі?


74

Як я можу перерахувати всі локальні облікові записи користувачів у Терміналі (ввійшли чи ні?) Команди usersчи whoне надають цю інформацію. Версія OS X - 10.6.8.

Я бачив цю запропоновану команду - dscacheutil -q group

Але в ньому перераховані лише групи користувачів домену та не локальні облікові записи.


1
Як давно користувач AIX, я впевнено пропускаю команди управління системою, які вони випустили у свій Unix. lsuser було б непогано мати для цієї мети.
bmike

Відповіді:


68

Як щодо

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'

Мені подобається цей варіант. Однак він повертає купу рахунків, починаючи з підкреслення. Будь-який спосіб відфільтрувати це? наприклад, _softwareupdate, _mysql
codecowboy

9
dscl . list /Users | grep -v ^_.*
Отримайте

Дуже круто! Мені доведеться запам'ятати цю.
daviesgeek

5
Це і такий простий для заповнення пам'ять.
Келлі

41

Спробуйте це. Я використовував це, щоб знайти втрачений прихований рахунок.

dscl . list /Users | grep -v '^_'

3
Саме це і сказав @Mark тут .
Еміль

який сенс прихованих рахунків?
SuperUberDuper

Щоб побачити і uid, використовуйтеdscl . list /Users UniqueID | grep -v '^_'
Marián Černý

Що робити, якщо користувача немає?
cameronroe

10

Обліковими записами користувачів з 10.6 керує OpenDirectory. Зворотні файли, пов’язані з користувачами для OpenDirectory, тут:

/var/db/dslocal/nodes/Default/users

Виконання ls *в цьому каталозі перераховує всіх локальних користувачів, зареєстрованих у системі. Виконання plutil -p <file>.plistдозволить прочитати деякі властивості для вказаного облікового запису користувача (тобто поточний шлях до домашнього каталогу).

Це досить недокументовано, тому я приймаю голоси. Однак цей метод може бути використаний для перевірки системи, яка не працює, і для якої користувач має лише офлайн-зображення диска.


Мені це подобається, але для цього потрібен sudo / root, користувач std-адміністратора отримав помилку дозволу. dsclпрацює для std admin.
Дж. Л. Пейрет

6

dscacheutil повертає більше, ніж просто місцеві користувачі, наприклад, показують також будь-які користувачі, за якими я запитував Служби каталогів.

Я вважаю це кориснішим:

dscl . list /Users | grep -v "^_"

Хоча він також повертає любить daemon, nobodyі root.


4

JMTCW відтворить дружній /etc/passwdеквівалент командного рядка (хоча і не зовсім в тому ж порядку):

dscacheutil -q user |
    paste -d " "  - - - - - - - - |
    sed 's/^name: //;s/ [^[:space:]]*: /:/g'

Або якщо ви віддаєте перевагу розділеному пробілом висновку (але аналіз поля GECOS буде дещо складнішим:

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -

2

Якщо жодні домашні каталоги користувачів не переміщені, тоді це ls /usersбуде зроблено. За винятком того, що він також перелічить каталоги типу "Спільний".


2
Ніколи цього не робіть. Є набагато більше, ніж просто Sharedте, що може бути там.
хом'як

-3

Ви також можете ввести:

whoяка говорить вам, хто ввійшов у систему та звідки вони беруться. Корисно, якщо ви шукаєте когось, хто фактично фізично знаходиться в тій же будівлі, що і ви, або в якомусь іншому місці.

wякий говорить вам, хто ввійшов у систему та що вони роблять. Особливо корисна: "простоюча" частина. Це дозволяє вам побачити, чи вони насправді сидять там, набираючи свої клавіатури прямо зараз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.