मैं टर्मिनल में सभी उपयोगकर्ता खातों को कैसे सूचीबद्ध कर सकता हूं?


74

मैं टर्मिनल में सभी स्थानीय उपयोगकर्ता खातों को कैसे सूचीबद्ध कर सकता हूं (क्या लॉग इन है या नहीं?) कमांड यह जानकारी प्रदान नहीं करता है usersया whoनहीं करता है। OS X वर्जन 10.6.8 है।

मैंने यह सुझाया आदेश देखा है - dscacheutil -q group

लेकिन यह केवल डोमेन उपयोगकर्ता समूहों और गैर-स्थानीय खातों को सूचीबद्ध करता है।


1
एक लंबे समय के AIX उपयोगकर्ता के रूप में, मुझे यकीन है कि सिस्टम प्रबंधन कमांड्स को वे अपने यूनिक्स में बेक करते हैं। lsuser इस उद्देश्य के लिए अच्छा होगा।
bmike

जवाबों:


68

कैसा रहेगा

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

मुझे यह विकल्प पसंद है। यह एक अंडरस्कोर के साथ शुरू होने वाले खातों का एक गुच्छा देता है, हालांकि। इसे फ़िल्टर करने का कोई तरीका? जैसे _softwareupdate, _mysql
codecowboy

9
परिणाम grep के माध्यम सेdscl . list /Users | grep -v ^_.*
user151019

बहुत ही शांत! मुझे यह याद रखना पड़ेगा।
daviesgeek

5
यह स्मृति के लिए प्रतिबद्ध एक ऐसा आसान तरीका है।
केली

41

इसको आजमाओ। मैंने इसका इस्तेमाल खोए हुए छिपे हुए खाते को खोजने के लिए किया।

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

3
ठीक यही @ मर्क ने यहां कहा ।
एमिल

छिपे हुए खातों का क्या मतलब है?
SuperUberDuper

साथ ही uid को देखने के लिए, उपयोग करेंdscl . list /Users UniqueID | grep -v '^_'
मारीना Augerný

यदि उपयोगकर्ता नहीं है तो क्या होगा?
कैमरूनरो

10

10.6 के बाद से उपयोगकर्ता खाते OpenDirectory द्वारा प्रबंधित किए जा रहे हैं। OpenDirectory के लिए उपयोगकर्ताओं से संबंधित बैकएंड फाइलें यहाँ हैं:

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

ls *इस निर्देशिका में निष्पादन सिस्टम पर पंजीकृत सभी स्थानीय उपयोगकर्ताओं को शामिल करेगा। निष्पादन plutil -p <file>.plistआपको निर्दिष्ट उपयोगकर्ता खाते (यानी वर्तमान घर निर्देशिका पथ) के लिए कुछ गुण पढ़ने की अनुमति देगा।

यह बल्कि अनिर्दिष्ट है इसलिए मैं चढ़ाव को स्वीकार करता हूं। हालांकि, इस पद्धति का उपयोग उस सिस्टम का निरीक्षण करने के लिए किया जा सकता है जो चल नहीं रहा है, और जिसके लिए उपयोगकर्ता के पास केवल एक ऑफ़लाइन डिस्क छवि है।


मुझे यह पसंद है, लेकिन इसे काम करने के लिए sudo / root की आवश्यकता है, std admin उपयोगकर्ता को अनुमति त्रुटि मिली। dsclstd व्यवस्थापक के लिए काम करता है।
जेएल पेरेट

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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.