Как я могу перечислить все учетные записи пользователей в терминале?

Как я могу перечислить все локальные учетные записи пользователей (независимо от того, вошли ли они в систему или нет, «пользователи» или «кто» не подходит) в терминале на Mac? Версия OS X - 10.6.8.

Я видел это предложение - dscacheutil -q group

Но в нем перечислены группы пользователей домена и нелокальные учетные записи.

69 голосов | спросил codecowboy 1 22011vEurope/Moscow11bEurope/MoscowTue, 01 Nov 2011 16:57:05 +0400 2011, 16:57:05

7 ответов


64

Как насчет

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'
ответил Kevin 1 22011vEurope/Moscow11bEurope/MoscowTue, 01 Nov 2011 17:32:20 +0400 2011, 17:32:20
36

Попробуйте это. Я использовал его, чтобы найти потерянную скрытую учетную запись.

dscl . list /Users | grep -v '^_'
ответил user41486 9 FebruaryEurope/MoscowbSat, 09 Feb 2013 16:29:48 +0400000000pmSat, 09 Feb 2013 16:29:48 +040013 2013, 16:29:48
9

Учетные записи пользователей с 10.6 управляются OpenDirectory. Бэкэнд-файлы, связанные с пользователями для OpenDirectory, находятся здесь:

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

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

Это довольно недокументировано, поэтому я принимаю downvotes. Однако этот метод можно использовать для проверки системы, которая не работает, и для которой пользователь имеет только автономный образ диска.

ответил antonone 26 Jpm1000000pmMon, 26 Jan 2015 12:41:01 +030015 2015, 12:41:01
4

dscacheutil возвращает больше, чем только локальные пользователи, например, для всех пользователей, которых я также запросил Службы каталогов.

Я нашел это более полезным:

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

Хотя он также возвращает имена daemon, nobody и root.

ответил chymb 19 J0000006Europe/Moscow 2013, 15:36:13
3

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

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

Или, если вы предпочитаете выделение пространства (но разбор поля GECOS будет немного сложнее:

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -
ответил don 5 FebruaryEurope/MoscowbSun, 05 Feb 2017 15:13:53 +0300000000pmSun, 05 Feb 2017 15:13:53 +030017 2017, 15:13:53
0

Если домашние каталоги пользователей не были перемещены, тогда будет выполняться ls /users. Кроме того, в нем также будут перечислены каталоги, например «Shared».

ответил iskra 1 22011vEurope/Moscow11bEurope/MoscowTue, 01 Nov 2011 17:36:20 +0400 2011, 17:36:20
-3

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

who, который сообщает вам, кто вошел в систему, и откуда они пришли. Полезно, если вы ищете человека, который физически находится в том же здании, что и вы, или в каком-то другом месте.

w, который сообщает вам, кто вошел в систему, и что они делают. Особенно полезно: «холостая» часть. Это позволяет вам увидеть, действительно ли они сидят там, набрав клавиатуру прямо сейчас.

ответил Jordan 24 AM00000070000001731 2016, 07:26:17

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132