Làm cách nào để liệt kê tất cả tài khoản người dùng trong thiết bị đầu cuối?


74

Làm cách nào tôi có thể liệt kê tất cả các tài khoản người dùng cục bộ trong Terminal (có đăng nhập hay không?) Các lệnh usershoặc whokhông cung cấp thông tin này. Phiên bản OS X là 10.6.8.

Tôi đã thấy lệnh được đề xuất này - dscacheutil -q group

Nhưng nó chỉ liệt kê các nhóm người dùng tên miền và các tài khoản không phải địa phương.


1
Là một người dùng AIX lâu năm, tôi chắc chắn bỏ lỡ các lệnh quản lý hệ thống mà họ đã đưa vào unix của họ. lsuser sẽ được tốt đẹp cho mục đích này.
bmike

Câu trả lời:


68

Làm thế nào về

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

Tôi thích tùy chọn này. Mặc dù vậy, nó trả về một loạt các tài khoản bắt đầu bằng dấu gạch dưới. Có cách nào để lọc cái này không? ví dụ: _softwareupdate, _mysql
codecowboy

9
dscl . list /Users | grep -v ^_.*
Đưa

Rất tuyệt! Tôi sẽ phải nhớ điều này.
daviesgeek

5
Đây cũng là một thứ dễ dàng để ghi nhớ vào bộ nhớ.
Kelly

41

Hãy thử cái này Tôi đã sử dụng nó để tìm tài khoản ẩn bị mất.

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

3
Đó chính xác là những gì @Mark đã nói ở đây .
Emil

điểm của các tài khoản ẩn là gì?
SuperUberDuper

Để xem uid là tốt, sử dụngdscl . list /Users UniqueID | grep -v '^_'
Marián erný

Nếu người dùng không ở đó thì sao?
quay phim

10

Tài khoản người dùng kể từ 10.6 đang được OpenDirectory quản lý. Các tệp phụ trợ liên quan đến người dùng cho OpenDirectory có tại đây:

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

Thực thi ls *trong thư mục này sẽ liệt kê tất cả người dùng cục bộ đã đăng ký trên hệ thống. Thực thi plutil -p <file>.plistsẽ cho phép bạn đọc một số thuộc tính cho tài khoản người dùng được chỉ định (tức là đường dẫn thư mục chính hiện tại).

Điều này là khá không có giấy tờ vì vậy tôi chấp nhận downvote. Tuy nhiên, phương pháp này có thể được sử dụng để kiểm tra một hệ thống không chạy và người dùng chỉ có hình ảnh đĩa ngoại tuyến.


Tôi thích nó, nhưng nó yêu cầu sudo / root để hoạt động, người dùng quản trị std có lỗi quyền. dscllàm việc cho quản trị viên std.
JL Peyret

6

dscacheutil trả về nhiều hơn chỉ người dùng cục bộ, ví dụ như bất kỳ người dùng nào tôi đã truy vấn Dịch vụ thư mục cũng hiển thị.

Tôi đã tìm thấy điều này hữu ích hơn:

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

Mặc dù nó cũng trả về những cầu thủ như daemon, nobodyroot.


4

JMTCW để tạo lại một dòng lệnh /etc/passwdtương đương thân thiện (mặc dù không hoàn toàn theo thứ tự):

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

Hoặc nếu bạn thích đầu ra được phân tách bằng dấu cách (nhưng phân tích trường GECOS sẽ phức tạp hơn một chút:

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

2

Nếu không có thư mục nhà người dùng đã được di chuyển thì ls /userssẽ làm. Ngoại trừ nó cũng sẽ liệt kê các thư mục như 'Được chia sẻ'.


2
Không bao giờ làm điều này. Có nhiều hơn chỉ Sharedcó thể có ở đó.
hamstergene

-3

Bạn cũng có thể gõ:

whocho bạn biết ai đã đăng nhập và họ đến từ đâu. Hữu ích nếu bạn đang tìm kiếm một người thực sự ở cùng tòa nhà với bạn hoặc ở một số địa điểm cụ thể khác.

wcho bạn biết ai đã đăng nhập và họ đang làm gì. Đặc biệt hữu ích: phần 'nhàn rỗi'. Điều này cho phép bạn xem liệu họ có thực sự ngồi đó gõ bàn phím của họ ngay lúc này hay không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.