คำแนะนำเกี่ยวกับคำสั่งและเทคนิคต่างๆ ใน Linux เพื่อแสดงรายการกลุ่ม
ในระบบนิเวศของลินุกซ์ กลุ่มผู้ใช้เรียกว่า 'กลุ่ม' เมื่อมีการเพิ่มผู้ใช้ในกลุ่ม เรากำลังกำหนดสิทธิ์ของผู้ใช้ Linux กลุ่มยังกำหนดไฟล์ การตั้งค่า และโฟลเดอร์ที่ผู้ใช้ควรเข้าถึง
ในแง่ที่ง่ายที่สุด กลุ่มช่วยให้คุณค้นหาและกำหนดสิทธิ์เช่นอ่าน (r
), เขียน (w
) และดำเนินการ (x
) บนทรัพยากรที่ใช้ร่วมกันระหว่างผู้ใช้ คุณยังสามารถแก้ไขการอนุญาตเหล่านี้ได้ตามต้องการ
การค้นหากลุ่มที่เป็นเจ้าของบัญชีผู้ใช้จะช่วยให้คุณเรียนรู้เกี่ยวกับการอนุญาตที่ผู้ใช้แต่ละคนมี และยังเปลี่ยนการอนุญาตเมื่อจำเป็น
บทแนะนำสั้นๆ นี้จะช่วยคุณค้นหากลุ่มที่ผู้ใช้เป็นสมาชิกโดยใช้คำสั่งและเทคนิคง่ายๆ
ข้อกำหนดเบื้องต้นที่สำคัญ
ก่อนที่จะลงลึกในบทช่วยสอน คุณควรมีภาพรวมพื้นฐานของแนวคิดบางอย่างก่อนจะเป็นประโยชน์ ฉันขอแนะนำให้ผู้เริ่มต้นอ่านแนวคิดเหล่านี้ก่อน
กลุ่ม: กลุ่มผู้ใช้บนระบบลินุกซ์ ผู้ใช้คนเดียวสามารถเป็นสมาชิกของกลุ่มได้มากกว่าหนึ่งกลุ่ม กลุ่มกำหนดสิทธิ์ที่ผู้ใช้มี
กลุ่มหลัก: กลุ่มหลักคือกลุ่มหลักที่เชื่อมโยงกับบัญชีผู้ใช้ ผู้ใช้แต่ละคนจะต้องเป็นสมาชิกของกลุ่มหลักกลุ่มเดียว มันถูกสร้างขึ้นพร้อมกับสร้างบัญชีผู้ใช้และผู้ใช้จะถูกเพิ่มในกลุ่มนี้โดยอัตโนมัติ โดยปกติชื่อของกลุ่มหลักจะเหมือนกับชื่อของผู้ใช้
กลุ่มรอง:กลุ่มรองเป็นทางเลือก และผู้ใช้อาจมีหรือไม่มีกลุ่มรอง ใช้เพื่อมอบสิทธิ์เพิ่มเติมบางอย่างแก่ผู้ใช้ ผู้ใช้สามารถเป็นสมาชิกของกลุ่มรองได้หลายกลุ่ม
/etc/group
ไฟล์: ใน Linux การเป็นสมาชิกกลุ่มจะถูกควบคุมโดย /etc/group
ไฟล์. เป็นไฟล์ข้อความธรรมดาที่มีรายชื่อกลุ่มและผู้ใช้ที่เป็นของแต่ละกลุ่ม
/etc/passwd
ไฟล์: ไฟล์นี้มีข้อมูลสำหรับบัญชีผู้ใช้ทั้งหมดในระบบ มีรายการของบัญชีผู้ใช้หนึ่งรายการต่อบรรทัดที่แสดงในไฟล์นี้
ใช้ กลุ่ม
สั่งการ
ใช้ กลุ่ม
คำสั่งเป็นกระบวนการที่ง่ายมากในการแสดงรายการกลุ่มที่ผู้ใช้ปัจจุบันเป็นสมาชิก คุณยังสามารถใช้คำสั่งนี้เพื่อแสดงรายการกลุ่มของผู้ใช้เฉพาะที่ลงทะเบียนกับระบบ
ไวยากรณ์:
กลุ่ม
เอาท์พุท:
gaurav@ubuntu:~$ กลุ่ม gaurav adm cdrom sudo dip plugdev lpadmin sambashare gaurav@ubuntu:~$
การค้นหากลุ่มผู้ใช้เฉพาะ
ไวยากรณ์:
กลุ่ม [ชื่อผู้ใช้]
ตัวอย่าง:
gaurav@ubuntu:~$ กลุ่ม tomcat tomcat : tomcat lpadmin sambashare gaurav@ubuntu:~$
ในตัวอย่างนี้ ฉันได้ระบุกลุ่มที่ผู้ใช้ตั้งชื่อว่า แมวตัวผู้ เป็นของ
ใช้ id
สั่งการ
ใช้ id
คำสั่งแสดงข้อมูลกลุ่มของผู้ใช้ มันแสดงพารามิเตอร์เช่น uid
(รหัสผู้ใช้), gid
(รหัสกลุ่ม) และรายชื่อกลุ่มที่ผู้ใช้เป็นสมาชิก
ไวยากรณ์:
ไอดี [ชื่อผู้ใช้]
ตัวอย่าง:
gaurav@ubuntu:~$ id tomcat uid=1002(tomcat) gid=1002(tomcat) groups=1002(tomcat),113(lpadmin),128(sambashare) gaurav@ubuntu:~$
id
คำสั่งเมื่อใช้โดยไม่มีอาร์กิวเมนต์ส่งคืนข้อมูลกลุ่มเกี่ยวกับผู้ใช้ปัจจุบัน
ตัวอย่าง:
gaurav@ubuntu:~$ id uid=1000(gaurav) gid=1000(gaurav) groups=1000(gaurav),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev) ,113(lpadmin),128(sambashare) gaurav@ubuntu:~$
ที่นี่ข้อมูลกลุ่มของผู้ใช้ปัจจุบันจะปรากฏขึ้น
การใช้ไฟล์ /etc/group
ตามที่กล่าวไว้ในบล็อกข้อกำหนดเบื้องต้น เรารู้ว่า /etc/group
ไฟล์มีข้อมูลทั้งหมดของกลุ่มที่มีอยู่ในระบบ เราสามารถใช้ไฟล์นี้เพื่อดูรายชื่อกลุ่มโดยใช้คำสั่งง่ายๆ ดังนี้
คุณสามารถใช้ได้ แมว
, น้อย
หรือ grep
คำสั่งแสดงรายการเปิดเนื้อหาของไฟล์นี้
น้อยกว่า /etc/group
เอาท์พุท:
root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,gaurav tty:x:5: ดิสก์:x:6: lp:x:7 : mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20: fax:x:21: voice :x:22: cdrom:x:24:gaurav floppy:x:25: เทป:x:26: sudo:x:27:gaurav เสียง:x:29:pulse dip:x:30:gaurav,batman www-data :x:33:
ซึ่งจะแสดงรายการกลุ่มทั้งหมดบนระบบ Linux
รายชื่อกลุ่มทั้งหมดโดยใช้ getent
สั่งการ
getent
คำสั่งสามารถใช้เพื่อแสดงรายการกลุ่มที่มีอยู่ทั้งหมดบนระบบ Linux ของคุณ ผลลัพธ์จะคล้ายกับเนื้อหาของ /etc/group
ไฟล์.
โดยใช้ รับกลุ่ม
คำสั่งแสดงรายการจากฐานข้อมูลที่กำหนดค่าใน /etc/nsswitch.conf
ไฟล์.
ไวยากรณ์:
รับกลุ่ม
ตัวอย่าง:
gaurav@ubuntu:~$ getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,gaurav tty:x:5: disk:x :6: lp:x:7: mse dip:x:30:gaurav,batman :x:39: stmp:x:43: video:x:44: sasl:x:45: plugdev:x:46:gaurav staff :x:50: เกม:x:60: ผู้ใช้:x:100: 106: crontab:x:107: vahi:x:120: bluetooth:x:121: scanner:x:122:saned colourd:x:123: ชีพจร:x:124: การเข้าถึงชีพจร:x:125: rtkit:x:126: ปกติ:x:127: ทรินิตี้:x:1000: sambashare:x:128:gaurav mongodb:x:130:mongodb guest-tqrhc7: x:999: guest-piinii:x:998: scala:x:997: sbt:x:996: guest-oi9xaf:x:995: tomcat:x:1001: tomcat7:x:132: tomcat8:x:133: geoclue:x:105: gdm:x:134: mysql:x:129: couchdb:x:131: ชั่วคราว:x:1002:
สำหรับการค้นหากลุ่มของผู้ใช้เฉพาะ ให้ใช้คำสั่งต่อไปนี้
getent group | grep [ชื่อผู้ใช้]
ตัวอย่าง:
gaurav@ubuntu:~$ getent group | grep gaurav adm:x:4:syslog,gaurav cdrom:x:24:gaurav sudo:x:27:gaurav dip:x:30:gaurav,batman plugdev:x:46:gaurav lpadmin:x:113:gaurav gaurav: x:1000: sambashare:x:128:gaurav gaurav@ubuntu:~$
ขณะนี้กลุ่มทั้งหมดที่เกี่ยวข้องกับ gaurav ผู้ใช้แสดงอยู่บนเทอร์มินัลแล้ว
โดยใช้ libuser-ฝา
สั่งการ
libuser-ฝา
คำสั่งแสดงข้อมูลเกี่ยวกับกลุ่มที่มีชื่อผู้ใช้หรือผู้ใช้ที่อยู่ในชื่อกลุ่ม
บันทึก:คำสั่งนี้ต้องการ sudo
สิทธิพิเศษ มิฉะนั้นคุณจะพบข้อผิดพลาดดังต่อไปนี้ -
เกิดข้อผิดพลาดในการเริ่มต้น libuser: ไม่ดำเนินการด้วยสิทธิ์ superuserไม่ได้ระบุชื่อผู้ใช้
ในกรณีถ้า libuser-ฝา
ยูทิลิตี้ไม่พร้อมใช้งานบน distros ของคุณ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อติดตั้ง
สำหรับ อูบุนตู และ เดเบียน ผู้ใช้:
sudo apt-get update
sudo apt-get ติดตั้ง libuser
สำหรับ CentOS, Fedora และ distros อื่น ๆ :
sudo yum ติดตั้ง libuser
ไวยากรณ์:
sudo libuser-lid [ชื่อผู้ใช้]
ตัวอย่าง:
gaurav@ubuntu:~$ sudo libuser-lid gaurav
เอาท์พุท:
adm(gid=4) cdrom(gid=24) sudo(gid=27) dip(gid=30) plugdev(gid=46) lpadmin(gid=113) trinity(gid=1000) sambashare(gid=128)
ที่นี่ กลุ่มทั้งหมดจะแสดงรายการที่เกี่ยวข้องกับชื่อผู้ใช้ที่ป้อน
บทสรุป
ในบทช่วยสอนแสนง่ายนี้ ตอนนี้เราได้เรียนรู้การแสดงกลุ่มต่างๆ ที่พร้อมใช้งานบนระบบ Linux แล้ว คำสั่งที่อธิบายในบทช่วยสอนนี้สามารถใช้ได้กับลีนุกซ์ทุกรุ่นในลักษณะเดียวกัน