ฉันจะแสดงรายการผู้ใช้ทั้งหมดพร้อมกับ UID ของพวกเขาได้อย่างไร ฉันต้องการทำสิ่งนี้จากสถานี
ฉันจะแสดงรายการผู้ใช้ทั้งหมดพร้อมกับ UID ของพวกเขาได้อย่างไร ฉันต้องการทำสิ่งนี้จากสถานี
คำตอบ:
รายการผู้ใช้ทั้งหมดที่มี/homeโฟลเดอร์:
awk -F: '/\/home/ {printf "%s:%s\n",$1,$3}' /etc/passwd
หรือผู้ใช้ทั้งหมดที่มีUID >= 1000:
awk -F: '($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd
การรวมกัน
awk -F: '/\/home/ && ($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd
หรือสำหรับรายการทั้งหมด
awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd
ข้อมูลเพิ่มเติมที่นี่
คุณสามารถค้นหาได้ง่ายเพียงแค่ใช้cut:
cut -d: -f1,3 /etc/passwd
-d:กำหนดตัวคั่นเป็น:สำหรับcut
-f1,3แยกฟิลด์ 1 และ 3 ที่คั่นด้วย:จาก/etc/passwdไฟล์เท่านั้น
ตรวจสอบman cutเพื่อรับแนวคิดเพิ่มเติม
ตัวอย่าง:
$ cut -d: -f1,3 /etc/passwd
root:0
daemon:1
bin:2
sys:3
sync:4
games:5
......
หากคุณได้ldapกำหนดค่าเพื่อรวมldapผู้ใช้ในผลลัพธ์:
getent passwd | cut -d: -f1,3
getent passwdแทน / etc / passwd เนื่องจากตัวหลังจะไม่รวมผู้ใช้ ldap
ldap) ฉันได้ย้ายไปหนึ่งปัจจุบัน te.. หนึ่งแก้ไขไป :)
อีกทางเลือกหนึ่งในการแสดงรายการผู้ใช้ทั้งหมดรวมถึงข้อมูล UID และ GID
for user in $(cat /etc/passwd | cut -f1 -d":"); do id $users; done
ไชโย
เนื่องจากคุณพยายามที่จะแสดงรายการ UID และชื่อผู้ใช้คำสั่งด้านล่างจะทำงานได้ดีที่สุดบน Solaris พวกเขามีสอง awk
awk -F: '($ 3> = 1,000) {printf "% s:% s", $ 1, $ 3}' / etc / passwd
ฉันพบวิธีที่ง่ายที่สุดคือการมี webmin บนเซิร์ฟเวอร์ของคุณและไปที่ระบบ> ผู้ใช้และกลุ่มและที่นั่นคุณมีรายการที่จัดรูปแบบอย่างสวยงามพร้อมชื่อผู้ใช้และกลุ่มทั้งหมดที่มี uid's โฮมไดเร็กตอรี่เป็นต้น