ฉันต้องการคำสั่งเพื่อแสดงรายการผู้ใช้ทั้งหมดในเทอร์มินัล และวิธีเพิ่มลบแก้ไขผู้ใช้จากเทอร์มินัล
ที่สามารถช่วยในการจัดการบัญชีของคุณได้อย่างง่ายดายโดยเทอร์มินัล
awk -F: '{ print $1 }' /etc/passwd
ฉันต้องการคำสั่งเพื่อแสดงรายการผู้ใช้ทั้งหมดในเทอร์มินัล และวิธีเพิ่มลบแก้ไขผู้ใช้จากเทอร์มินัล
ที่สามารถช่วยในการจัดการบัญชีของคุณได้อย่างง่ายดายโดยเทอร์มินัล
awk -F: '{ print $1 }' /etc/passwd
คำตอบ:
ในการแสดงรายชื่อผู้ใช้ในพื้นที่คุณสามารถใช้:
cut -d: -f1 /etc/passwd
ในการแสดงรายการผู้ใช้ทุกคนที่สามารถตรวจสอบความถูกต้อง (ในบางวิธี) รวมถึงที่ไม่ใช่ในท้องถิ่นให้ดูคำตอบนี้
คำสั่งการจัดการผู้ใช้ที่มีประโยชน์บางคำสั่ง (จำกัด เฉพาะผู้ใช้ท้องถิ่น ):
ในการเพิ่มผู้ใช้ใหม่คุณสามารถใช้:
sudo adduser new_username
หรือ:
sudo useradd new_username
ดูเพิ่มเติม: ความแตกต่างระหว่างผู้ใช้และผู้ใช้เพิ่มคืออะไร?
หากต้องการลบ / ลบผู้ใช้อันดับแรกคุณสามารถใช้:
sudo userdel username
จากนั้นคุณอาจต้องการลบไดเรกทอรีบ้านสำหรับบัญชีผู้ใช้ที่ถูกลบ:
sudo rm -r / home / ชื่อผู้ใช้
กรุณาใช้ด้วยความระมัดระวังคำสั่งดังกล่าว!
ในการแก้ไขชื่อผู้ใช้ของผู้ใช้:
usermod -l new_username old_username
ในการเปลี่ยนรหัสผ่านสำหรับผู้ใช้:
sudo passwd username
ในการเปลี่ยนเชลล์สำหรับผู้ใช้:
sudo chsh username
วิธีเปลี่ยนรายละเอียดสำหรับผู้ใช้ (ตัวอย่างเช่นชื่อจริง):
sudo chfn username
วิธีเพิ่มผู้ใช้ในsudo
กลุ่ม:
adduser username sudo
หรือ
usermod -aG sudo username
และแน่นอนดูเพิ่มเติมที่: man adduser
, man useradd
, man userdel
... และอื่น ๆ
sudo chfn <username>
ว่าการเปลี่ยนแปลงรายละเอียดของผู้ใช้ (ตัวอย่างเช่นชื่อจริง) ฉันพยายามที่จะเพิ่มสิ่งนี้เป็นความคิดเห็น แต่ฉันได้รับข้อผิดพลาดที่บอกฉันว่าฉันต้องมีชื่อเสียงถึง 50 คน
เพียงกดCtrl+ Alt+ Tบนแป้นพิมพ์เพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง:
cat /etc/passwd
หรือ
less /etc/passwd
more /etc/passwd
คุณยังสามารถใช้ awk: awk
awk -F':' '{ print $1}' /etc/passwd
adduser
แทนuseradd
ควร จำกัด ให้สคริปต์ที่ผู้เขียนรู้จริง ๆ ว่าเขากำลังทำอะไรอยู่
วิธีที่ง่ายที่สุดที่จะได้รับข้อมูลประเภทนี้คือgetent
- ดูmanpage สำหรับgetent
คำสั่ง ในขณะที่คำสั่งนั้นให้ผลลัพธ์เดียวกันกับที่cat /etc/passwd
เป็นประโยชน์ในการจำเพราะมันจะให้รายชื่อขององค์ประกอบหลายอย่างในระบบปฏิบัติการ
ในการรับรายชื่อผู้ใช้ทั้งหมดที่คุณพิมพ์ (ตามที่ผู้ใช้อยู่ในรายการ/etc/passwd
)
getent passwd
เพิ่มผู้ใช้newuserกับระบบคุณจะพิมพ์
sudo adduser newuser
เพื่อสร้างผู้ใช้ที่ใช้การตั้งค่าเริ่มต้นทั้งหมด
โบนัส: เพื่อเพิ่มผู้ใช้ใด ๆ (เช่นanyuser ) ให้กับกลุ่ม (เช่นcdrom ) ประเภท
sudo adduser anyuser cdrom
คุณลบผู้ใช้ (เช่นล้าสมัย ) ด้วย
sudo deluser obsolete
หากคุณต้องการที่จะลบไดเรกทอรีบ้าน / อีเมลของเขาเช่นกันคุณพิมพ์
sudo deluser --remove-home obsolete
และ
sudo deluser --remove-all-files obsolete
จะลบผู้ใช้และไฟล์ทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของในทั้งระบบ
getent passwd
เป็นคำสั่งที่ถูกต้อง
สิ่งนี้ควรได้รับภายใต้สถานการณ์ปกติส่วนใหญ่ผู้ใช้ปกติ (ที่ไม่ใช่ระบบไม่ใช่คนแปลก ฯลฯ ):
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
สิ่งนี้ทำงานโดย:
/etc/passwd
:
เป็นตัวคั่นนี่เป็นเพราะในหลายระบบลินุกซ์ชื่อผู้ใช้ที่มากกว่า 1,000 จะถูกสงวนไว้สำหรับผู้ใช้ที่ไม่มีสิทธิ์ ข้อมูลบางส่วนเกี่ยวกับเรื่องนี้ที่นี่ :
ID ผู้ใช้ (UID) เป็นจำนวนเต็มบวกเฉพาะที่กำหนดโดยระบบปฏิบัติการแบบ Unix ให้กับผู้ใช้แต่ละคน ผู้ใช้แต่ละคนจะถูกระบุไปยังระบบโดย UID ของมันและโดยทั่วไปชื่อผู้ใช้จะใช้เป็นอินเตอร์เฟสสำหรับมนุษย์เท่านั้น
UID จะถูกเก็บไว้พร้อมกับชื่อผู้ใช้ที่เกี่ยวข้องและข้อมูลเฉพาะของผู้ใช้อื่น ๆ ในไฟล์ / etc / passwd ...
ฟิลด์ที่สามประกอบด้วย UID และฟิลด์ที่สี่มี ID กลุ่ม (GID) ซึ่งโดยค่าเริ่มต้นจะเท่ากับ UID สำหรับผู้ใช้สามัญทั้งหมด
ในเคอร์เนล Linux 2.4 ขึ้นไป UID นั้นเป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงนามซึ่งสามารถแสดงค่าจากศูนย์ถึง 4,294,967,296 อย่างไรก็ตามขอแนะนำให้ใช้ค่าสูงสุด 65,534 เท่านั้นเพื่อรักษาความเข้ากันได้กับระบบที่ใช้เคอร์เนลหรือระบบไฟล์เก่าที่สามารถรองรับ UID แบบ 16 บิตได้เท่านั้น
UID เป็น 0 มีบทบาทพิเศษ: เป็นบัญชีรูทเสมอ (เช่นผู้ใช้การดูแลระบบมีอำนาจทุกอย่าง) แม้ว่าชื่อผู้ใช้สามารถเปลี่ยนแปลงได้ในบัญชีนี้และสามารถสร้างบัญชีเพิ่มเติมด้วย UID เดียวกันได้ แต่ไม่ควรดำเนินการใด ๆ กับมุมมองความปลอดภัย
UID 65534 นั้นสงวนไว้สำหรับไม่มีใครเป็นผู้ใช้ที่ไม่มีสิทธิ์ระบบซึ่งต่างจากผู้ใช้ทั่วไป (เช่นไม่มีสิทธิ์) UID นี้มักใช้สำหรับบุคคลที่เข้าถึงระบบจากระยะไกลผ่าน FTP (โปรโตคอลการถ่ายโอนไฟล์) หรือ HTTP (โปรโตคอลการถ่ายโอนไฮเปอร์เท็กซ์)
UIDs 1 ถึง 99 ถูกสงวนไว้สำหรับผู้ใช้ระบบแบบพิเศษ (บางครั้งเรียกว่าผู้ใช้แบบหลอก) เช่น wheel, daemon, lp, โอเปอเรเตอร์, ข่าวสาร, อีเมล ฯลฯ ผู้ใช้เหล่านี้เป็นผู้ดูแลระบบที่ไม่ต้องการพลังรากทั้งหมด ภารกิจการดูแลระบบบางอย่างและต้องการสิทธิ์พิเศษมากกว่างานที่มอบให้แก่ผู้ใช้ทั่วไป
Linux ดิสทริบิวชันบางตัว (เช่นเวอร์ชัน) เริ่มต้น UID สำหรับผู้ใช้ที่ไม่มีสิทธิพิเศษที่ 100 คนอื่น ๆ เช่น Red Hat เริ่มต้นที่ 500 และอื่น ๆ เช่น Debian เริ่มที่ 1000 เนื่องจากความแตกต่างระหว่างการแจกแจงด้วยตนเอง การแทรกแซงอาจมีความจำเป็นหากมีการใช้การกระจายหลายอย่างในเครือข่ายในองค์กร
นอกจากนี้ยังสามารถสำรองบล็อก UID สำหรับผู้ใช้ภายในเช่น 1,000 ถึง 9999 และบล็อกอื่นสำหรับผู้ใช้ระยะไกล (เช่นผู้ใช้ที่อื่นในเครือข่าย) เช่น 10,000 ถึง 65534 สิ่งสำคัญคือการตัดสินใจ ในโครงการและเป็นไปตามนั้น
ข้อดีของการฝึกการสำรองบล็อกตัวเลขสำหรับผู้ใช้บางประเภทคือการทำให้สะดวกในการค้นหาผ่านบันทึกของระบบสำหรับกิจกรรมของผู้ใช้ที่น่าสงสัย
ตรงกันข้ามกับความเชื่อที่ได้รับความนิยมไม่จำเป็นที่แต่ละรายการในฟิลด์ UID จะไม่ซ้ำกัน อย่างไรก็ตาม UID ที่ไม่ซ้ำกันสามารถก่อให้เกิดปัญหาด้านความปลอดภัยและทำให้ UID นั้นควรจะมีลักษณะเฉพาะตัวทั่วทั้งองค์กร ควรหลีกเลี่ยงการรีไซเคิล UID จากผู้ใช้เก่าให้นานที่สุดเท่าที่จะทำได้
getent
แทนที่จะอ่านโดยตรงจาก/etc/passwd
และค้นหาUID_MIN
/ UID_MAX
แทนค่าที่เข้ารหัสยาก:getent passwd | awk -F: "{if (\$3 >= $(awk '/^UID_MIN/ {print $2}' /etc/login.defs) && \$3 <= $(awk '/^UID_MAX/ {print $2}' /etc/login.defs)) print \$1}"
รายการผู้ใช้ทั้งหมดที่สามารถเข้าสู่ระบบ (ไม่มีผู้ใช้ระบบที่ชอบ: bin, deamon, mail, sys, ฯลฯ )
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
เพิ่มผู้ใช้ใหม่
sudo adduser new_username
หรือ
sudo useradd new_username
ลบ / ลบชื่อผู้ใช้
sudo userdel username
ถ้าคุณต้องการที่จะลบไดเรกทอรีบ้าน (เริ่มต้นไดเรกทอรี / home / ชื่อผู้ใช้)
sudo deluser --remove-home username
หรือ
sudo rm -r /path/to/user_home_dir
หากคุณต้องการลบไฟล์ทั้งหมดออกจากระบบจากผู้ใช้รายนี้ (ไม่เพียง แต่เป็นไดเร็คทอรี่บ้านเท่านั้น)
sudo deluser --remove-all-files
adduser
useradd
นอกจากนี้ยังเพิ่มsudo
-prefix ไปยังคำสั่งแรก ไฟล์ shadow password สามารถอ่านได้ในฐานะ root เท่านั้น
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
แสดงให้ฉันเห็นผู้ใช้ทั้งหมดรวมถึง bin, daemon, และแสดงคำเตือนนี้: escape sequence \$' treated as plain
$ 'ฉันพบโพสต์นี้stackoverflow.com/a/25867768/847954 และเพิ่มแบ็กสแลชอีกหนึ่งอันและทำงานได้ดี:awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow
ตกลงนี่คือเคล็ดลับที่จะช่วยคุณเรียงลำดับ เทอร์มินัลมีการทำให้สมบูรณ์อัตโนมัติหากคุณพิมพ์ผู้ใช้และกดปุ่ม Tab สองครั้งมันจะแสดงรายการคำสั่งทั้งหมดที่มีอยู่กับผู้ใช้เป็น 4 ตัวอักษรแรก
user (tab tab)
ให้ฉันเป็นตัวเลือกที่เป็นไปได้ useradd userdel ผู้ใช้ usodod ผู้ใช้ผู้ดูแลระบบ
ถ้าคุณต้องการทราบเพิ่มเติมเกี่ยวกับคำสั่ง google มันหรือพิมพ์ man manaddadd useradd ให้ผู้ใช้ - สร้างผู้ใช้ใหม่หรืออัปเดตข้อมูลผู้ใช้ใหม่เริ่มต้น ... ...
เพื่อแสดงรายการผู้ใช้คุณควรไปกับสิ่งที่ Mitch พูด
หวังว่าจะช่วยให้ฉันรักความสมบูรณ์ของแท็บในการทุบตีช่วยให้ฉันจำสิ่งต่าง ๆ ไม่ได้
หากต้องการค้นหาผู้ใช้ที่มีโฮมไดเร็กทอรีใน / home-folder บนเครื่องให้รันคำสั่งต่อไปนี้
cd /home
ls
จากนั้นคุณสามารถดูผู้ใช้ที่มีสิทธิ์ในการเข้าสู่เซิร์ฟเวอร์ หากเราต้องการค้นหาไฟล์ของผู้ใช้ใด ๆ คุณต้องเป็นผู้ใช้รูท
/home
นี้จะแสดงเฉพาะเนื้อหาของ แม้ว่าอูบุนตูจะวางไดเรกทอรีผู้ใช้ไว้ที่นั่นเป็นค่าเริ่มต้น
ls /home
อาจมีไดเรกทอรีผู้ใช้ของผู้ใช้ที่ถูกลบ
sed 's/:.*//' /etc/passwd