เหตุใดฉันสามารถสร้างผู้ใช้ที่มีโพสต์เดียวกัน


37

ความเข้าใจของฉันเกี่ยวกับ UID นั้นเป็นจำนวนเต็มบวกเฉพาะที่กำหนดโดยระบบปฏิบัติการแบบ Unix ให้กับผู้ใช้แต่ละคน ผู้ใช้แต่ละคนจะถูกระบุต่อระบบโดย UID ของมันและโดยทั่วไปชื่อผู้ใช้จะใช้เป็นอินเทอร์เฟซสำหรับมนุษย์เท่านั้น

ผู้ใช้สองคนมี UID เดียวกันได้อย่างไรนี่เป็นข้อขัดแย้งสำหรับระบบและแพ็คเกจของฉันหรือไม่

root@kdc:~# id test12
uid=1005(test10) gid=1000(server) groups=1005(test10)
root@kdc:~# id test13
uid=1005(test10) gid=1000(server) groups=1005(test10)
root@kdc:~#

ฉันได้เพิ่มผู้ใช้สองคนที่มี UID และ GID เดียวกัน: test12และ test13

ผลลัพธ์ของ/etc/passwd:

client@kdc:~$ cat /etc/passwd | grep test12
test12:x:1005:1000::/home/test12:/bin/sh
client@kdc:~$ cat /etc/passwd | grep test13
test13:x:1005:1000::/home/test13:/bin/sh

ฉันเพิ่มผู้ใช้โดย useradd -ou 1005 -g1000 username.

ฉันสับสนว่าอะไรคือจุดประสงค์นี้และจะมีผลกับสิทธิ์และบันทึกของผู้ใช้เป็นต้นดังนั้นตอนนี้หากผู้ใช้เพิ่มด้วยuid=0และgid=0จะมีสิทธิ์เช่นบัญชีรูทหรือไม่


ไม่แน่ใจเกี่ยวกับมัน แต่ฉันคิดว่าผลลัพธ์กำลังพิมพ์ UID ของผู้ใช้ "test10" ในทั้งสองคำสั่ง เหตุใดฉันจึงไม่มีความคิด แต่ต้องเป็นผู้ใช้บางคนที่คุณสร้างไว้ก่อนหน้านี้
animaletdesequia

ราวกับว่ามันบอกว่ามีผู้ใช้ที่มี ID นี้
nux

ตกลงฉันเข้าใจผิดคำถาม ฉันคิดว่าคุณสร้างผู้ใช้ตามปกติและระบบกำหนด UID เดียวกันให้กับพวกเขา
animaletdesequia

ไม่มีใครไม่ปกติคำถามที่นี่ระบบจะยอมรับ uids ที่ไม่ซ้ำกันได้อย่างไร
nux

เข้าใจแล้ว. เป็นคำถามที่ดีแล้วขอบคุณสำหรับคำอธิบาย :)
animaletdesequia

คำตอบ:


40

คำตอบคือ Linux ไม่ได้ปกป้องคุณจากตัวคุณเอง

หากคุณต้องการsu rootและไปที่ไฟล์ / etc และให้ UID เดียวกันกับผู้ใช้ทุกคนคุณสามารถทำได้ มันเป็นเพียงไฟล์ข้อความ

แต่คุณไม่ควรและมันจะมีผลที่ไม่ตั้งใจ


4
คำถามของฉันคือทำไมระบบยอมรับสิ่งนี้
nux

46
คุณหมายถึง "ยอมรับ" มันหมายความว่าอะไร? มันจะไม่ยอมรับได้อย่างไร นี่เป็นเหมือนพ่อครัวและถามว่าทำไมซุปอนุญาตให้คุณใส่เกลือมากเกินไป ในแง่ของการคำนวณที่ทันสมัยคุณอาจเคยชินกับความคิดของ RDBMS ที่มีข้อห้ามในเรื่องสำคัญ ๆ เช่นรหัสที่จะป้องกันไม่ให้คุณยิงตัวเองด้วยการเดินเท้า ID ผู้ใช้ Linux มีความดั้งเดิมมากกว่ามากและไม่มีการตรวจสอบหรือแก้ไขภายใน
คริสดิจิตอล

5
ขวาและโดยการใช้ที่คุณรู้ว่าคุณกำลังนอกของบรรทัดฐานuseradd -o adduserดังที่ @psusi กล่าวไว้มันสร้างการเข้าสู่ระบบสองครั้งซึ่งชี้ไปที่ ID เดียวกันกับการอนุญาตของไฟล์ ฯลฯ มันอาจสร้างปัญหาได้เนื่องจากไม่ใช่กรณีการใช้งานปกติ
คริสดิจิตอล

2
คำตอบ: การมี 2 ล็อกอินชี้ไปที่สิทธิ์ระบบไฟล์ที่เหมือนกัน
คริสดิจิตอล

5
@ แน่นอนว่ามีเหตุผลที่ถูกต้องที่จะมีผู้ใช้หลายคนที่มีโพสต์เดียวกันดูคำตอบของฉันสำหรับตัวอย่าง
terdon

38

มีเหตุผลที่ถูกต้องสำหรับสิ่งนี้ ตัวอย่างเช่นฉันเคยทำงานในแล็บที่เราแต่ละคนมีคอมพิวเตอร์เป็นของตัวเอง แต่เรา$HOMEอยู่ในไดรฟ์ที่ใช้ร่วมกันซึ่งส่งออกโดยเซิร์ฟเวอร์ ดังนั้นฉัน$HOMEเป็น

/users/terdon

เนื่องจาก/usersโฟลเดอร์นั้นไม่ได้อยู่ในเครื่องของฉัน แต่ส่งออกผ่าน NFS สำหรับการวิเคราะห์ใด ๆ ที่หนักบน I / O ฉันจะใช้ข้อมูลที่เก็บไว้ในฮาร์ดไดรฟ์ในเครื่องเพื่อไม่ให้เป็นภาระกับเครือข่ายของแล็บ ด้วยเหตุนี้ฉันและคนอื่น ๆ มีผู้ใช้สองคน: ผู้ใช้ทั้งระบบและอีกคนหนึ่งที่อยู่ภายในเครื่องที่สงสัย บ้านของผู้ใช้ในท้องถิ่นคือ

/home/localuser

แต่ผมจำเป็นต้องมีการเข้าถึงแบบเต็มไปยังไฟล์ของฉันว่าฉันได้รับการเข้าสู่ระบบเป็นterdonหรือเป็นlocaluserและวิธีการดูแลระบบของเราได้ดำเนินการที่เป็นโดยให้ทั้งสองlocaluserและterdonโพสต์ที่เดียวกัน ด้วยวิธีนี้ฉันสามารถจัดการไฟล์ในเครื่องของฉันได้อย่างอิสระโดยไม่ จำกัด ว่าผู้ใช้รายใดที่ฉันลงชื่อเข้าใช้ด้วย


6
ในการสนับสนุนคำตอบนี้เป็นเรื่องน่าสังเกตว่าการตั้งค่าบางอย่างเช่นการโฮสต์อีเมลเสมือนใช้สิ่งนี้เพื่อผลที่ดีมากนั่นคือบัญชีอีเมลเสมือนจริงจำนวนมากที่ใช้ UID เดียว - เอกสารสำหรับเซิร์ฟเวอร์อีเมล Dovecot แสดงให้เห็นว่านี่เป็นแนวทางเพิ่มเติม ที่wiki2.dovecot.org/UserIds#mailusers
Matt Thomason

จะไม่chmod 666ส่งผลเช่นเดียวกันหรือ
Brian

3
@GIJoe ที่จะอนุญาตให้ผู้ใช้ทั้งสองอ่าน / เขียน แต่จะไม่รักษาความเป็นเจ้าของซึ่งอาจเป็นปัญหา นอกจากนี้ไฟล์บางไฟล์ไม่สามารถตั้งค่าเป็นสิทธิ์เหล่านั้นได้ (เช่นคีย์ ssh) และไม่จำเป็นต้องเล่นด้วยสิทธิ์ตลอดเวลา
terdon

12

ผู้ใช้สองคนสามารถมี UID เดียวกันได้เพราะมันเป็นเพียงตัวเลขในไฟล์ข้อความเพื่อให้คุณสามารถตั้งค่าเป็นอะไรก็ได้ที่คุณต้องการรวมถึงค่าที่ใช้ไปแล้ว อย่างที่คุณเห็นการทำเช่นนั้นไม่ใช่ความคิดที่ดี


ระบบจะจัดการกับผู้ใช้อย่างไร สิทธิ์การแชร์
nux

12
@nux เป็นผู้ใช้เดียวกัน พวกเขาสามารถมีชื่อผู้ใช้ / รหัสผ่านที่แตกต่างกันเพื่อจุดประสงค์ในการเข้าสู่ระบบ
psusi

4
@ bigbadonk420 คำว่า "สนับสนุน" นั้นค่อนข้างคลุมเครือ แน่นอนว่ามันเป็นสิ่งที่คุณสามารถทำได้บนระบบยูนิกซ์และมันเคยเป็นแบ็คดอร์ที่พบได้บ่อยในการตั้งค่าผู้ใช้รายอื่นที่มี uid 0 เพื่อให้คุณสามารถล็อกอินและรูทได้อย่างมีประสิทธิภาพโดยไม่จำเป็นต้องรู้หรือเปลี่ยนรหัสผ่าน บนผู้ใช้รูทปกติ
psusi

1
@ bigbadonk420 ได้รับการสนับสนุนมีหลายกรณีที่มีประโยชน์นี้ดูคำตอบของฉันสำหรับตัวอย่าง
terdon

11

เป็นเรื่องธรรมดาที่จะมีผู้ใช้สองคนที่มี ID เดียวกัน บน FreeBSD มักจะมีผู้ใช้สองคนที่มี UID 0: root และ toor รูทใช้เชลล์ในตัว / bin / sh และ toor ใช้เชลล์ที่แตกต่างกัน


11

โดยทั่วไประบบ Unix และ Linux จะไม่ทำอะไรเลยเพื่อห้ามการซ้ำซ้อนใน/etc/passwdไฟล์ จุดประสงค์ของไฟล์นี้คือการเชื่อมโยง UID กับชื่อฟิสิคัลที่สามารถแสดงโดยเครื่องมือบรรทัดคำสั่งเช่นlsเมื่อผู้ใช้กำลังแสดงรายการไฟล์

$ ls -n | head -5
total 986000
drwxrwxr-x.   3 1000 1000      4096 Feb 13 19:51 1_archive_sansa
-rw-rw-r--.   1 1000 1000    760868 Dec 16 08:21 2.18.x Database Scheme.jpg
-rw-rw-r--.   1 1000 1000       972 Oct  6 20:26 abcdefg
drwxrwxr-x.   2 1000 1000      4096 Feb 11 03:34 advanced_linux_programming

วัตถุประสงค์อื่น ๆ ของไฟล์นี้คือการระบุว่าผู้ใช้จะได้รับเชลล์อะไรเมื่อเข้าสู่ระบบ

$ getent passwd saml
saml:x:1000:1000:saml:/home/saml:/bin/bash

เวกเตอร์การโจมตีทั่วไปในระบบประเภท Unix คือการเพิ่มบรรทัดเช่นนี้ไปยัง/etc/passwdไฟล์ของระบบ:

$ getent passwd r00t
r00t:x:0:0:root:/root:/bin/bash

$ getent passwd toor
toor:x:0:0:root:/root:/bin/bash

บทบาทของ/etc/passwdไฟล์ไม่ได้มีไว้สำหรับติดตามบัญชีผู้ใช้เท่านั้น บทบาทของการติดตามชื่อผู้ใช้และรหัสผ่านเป็นความรับผิดชอบของ/etc/shadowไฟล์ ไฟล์เช่น/etc/passwdและ/etc/groupมีขึ้นเพื่อให้เป็นชื่อที่มนุษย์สามารถอ่านได้เมื่อระบบของคุณแสดงรายการไฟล์จากดิสก์

จำไว้ว่าไฟล์ของคุณถูกเขียนลงดิสก์โดยใช้ UID / GID ไม่ใช่ชื่อจริง

$ stat afile 
  File: ‘afile’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd02h/64770d    Inode: 6560621     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    saml)   Gid: ( 1000/    saml)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2014-02-27 15:54:21.852697029 -0500
Modify: 2014-02-27 15:54:21.852697029 -0500
Change: 2014-02-27 15:54:21.852697029 -0500
 Birth: -

สังเกตUid:และGid:ตัวเลขคือสิ่งที่เขียนลงดิสก์จริง!


9

ใน Linux ผู้ใช้และกลุ่มทั้งหมดเป็นเพียงตัวเลขเท่านั้น นั่นคือสิ่งที่เอาต์พุตของidคำสั่งที่คุณโพสต์แสดงไว้

/etc/passwdไฟล์แผนที่ใช้ชื่อให้กับผู้ใช้รหัส (ตัวเลข) และในตัวอย่างที่คุณได้ให้คุณได้เพียงแค่สองแมปชื่อผู้ใช้กับผู้ใช้ ID เดียวกัน

ได้อย่างมีประสิทธิภาพที่คุณได้สร้างผู้ใช้หนึ่งtest12รหัส 1005 test13ที่ยังมีชื่อผู้ใช้ที่สอง อย่างไรก็ตามระบบจะแมป UID 1005 กับชื่อผู้ใช้แรกที่พบซึ่งจะเป็นtest12

Linux "ให้" คุณทำสิ่งนี้เพราะไม่มีระบบที่จะป้องกันไม่ให้คุณทำเช่นนี้ /etc/passwdเป็นเพียงไฟล์ข้อความชื่อผู้ใช้จะถูกแมปกับ UID ที่พบสำหรับการเข้าใช้ไฟล์นั้น UID นั้นจะถูกแมปกับชื่อผู้ใช้แรกที่พบในไฟล์นั้น

แต่สิ่งที่คุณสร้างขึ้นนั้นเป็นสถานการณ์ที่สับสนสำหรับผู้ดูแลระบบ systams คนอื่น ๆ หลีกเลี่ยงโดยเปลี่ยน UID ของtest13


นี่คือคนทดสอบเครื่องเสมือนของฉันคำถามของฉันคือมีจุดประสงค์ในการจับคู่ผู้ใช้สองคนสำหรับ uid เดียวกัน
nux

1
จุดประสงค์เดียวที่ฉันคิดได้ก็คือให้ UID หนึ่งวินาทีชื่อแทน แต่นี่เป็นพฤติกรรมที่ไม่ได้กำหนดและไม่แนะนำ จริง ๆ แล้วนี่เป็นสถานการณ์ที่ไม่พึงประสงค์: คุณจะดีกว่าด้วยความสัมพันธ์แบบ 1: 1 ระหว่างชื่อผู้ใช้และ UID
Josh

นั่นเป็นเหตุผลที่ฉันถามคำถามนี้ฉันจำเป็นต้องรู้ฉันรู้สึกว่ามันเป็นวิธีที่สับสน
nux

มันกำลังสับสน นั่นเป็นเหตุผลที่คุณไม่ควรทำ มันไม่มี "จุดประสงค์" มันเป็นการนำ/etc/passwdไฟล์ไปใช้ในทางที่ผิด แต่ไม่มีวิธีการใดที่จะป้องกันไม่ให้คุณทำเช่นนี้ มันสมเหตุสมผลไหม
จอช

1
ผู้ใช้กล่าวว่าเป้าหมายคือการมี 2 ล็อกอินชี้ไปที่สิทธิ์ระบบไฟล์ที่เหมือนกัน
nux

5

เหตุผลที่ทำให้สิ่งนี้ได้รับอนุญาตในวันนี้เป็นเพียงเพราะระบบไม่ได้ป้องกัน

หากสิ่งนี้เปลี่ยนไปมันจะทำลายระบบเหล่านั้นซึ่งผู้ดูแลระบบได้ใช้ประโยชน์จากคุณสมบัตินี้ (ดูตัวอย่างของ Terdon) ดังนั้นมันจึงไม่เคยเปลี่ยนและฉันก็ไม่คิดว่ามันจะเป็นไปได้

แต่เดิมมีเพียงไฟล์รหัสผ่านและกลุ่มและพวกเขาทำหน้าที่ตามวัตถุประสงค์ ไม่มีคำสั่งadduserไม่มีaddgroupไฟล์ถูกแก้ไขโดย root โดยใช้ vi หรือ ed

มีนิสัยใจคอน้อย!

เพื่อให้จำรหัสผู้ใช้ถัดไปที่จะใช้มันเป็นเรื่องธรรมดาสำหรับผู้ดูแลระบบที่จะมีผู้ใช้พิเศษเป็นบรรทัดสุดท้ายที่มีชื่อผู้ใช้!(เพราะ!เป็นชื่อผู้ใช้ที่ไม่ถูกต้อง) และรายการนั้นถูกใช้เพื่อจัดเก็บรายการถัดไป รหัสผู้ใช้ หยาบคายฉันยอมรับ แต่มันได้ผล! เหตุใดจึงต้องทำให้ลำไส้มีความซับซ้อนมากขึ้นคล้ายกับการพัฒนาที่คล่องตัว

มีข้อบกพร่องที่รู้จักกัน สิ่งสำคัญคือต้องอ่านให้ทั่วโลกเพื่อที่ระบบสาธารณูปโภคlsจะสามารถทำแผนที่user-id => nameได้ นี่หมายความว่าทุกคนสามารถเห็นรหัสผ่านที่เข้ารหัสของทุกคนและผู้ใช้และรหัสทั้งหมดในระบบ

ระบบ Unix บางระบบเริ่มแนะนำเชลล์สคริปต์สองสามตัวadduser addgroupซึ่งมักถูกละเว้นเพราะมันไม่สอดคล้องกันระหว่าง Unixes ดังนั้นผู้คนส่วนใหญ่จึงดำเนินการแก้ไขด้วยตนเอง

ใช้เวลาไม่กี่ปีก่อนที่จะมีการสร้างshadowไฟล์รหัสผ่านซึ่งทำให้มีความปลอดภัยเพิ่มขึ้นเล็กน้อยโดยซ่อนรหัสผ่านที่เข้ารหัสไว้ มีการเพิ่มความซับซ้อนมากพอ แต่ก็ยังค่อนข้างหยาบและเรียบง่าย ค่าสาธารณูปโภคuseraddและgroupaddถูกนำมาใช้ซึ่งเก็บshadowและshadow-อัปเดต ในการเริ่มต้นสิ่งเหล่านี้มักเป็นสคริปต์เชลล์แบบง่าย ๆ ที่ล้อมรอบยูทิลิตีadduser / addgroup ที่เป็นกรรมสิทธิ์ของผู้ขาย มันก็เพียงพอแล้วที่จะดำเนินต่อไป

เครือข่ายคอมพิวเตอร์กำลังเติบโตผู้คนทำงานกันหลายครั้งเพื่อทำงานให้เสร็จดังนั้นผู้ดูแลระบบของpasswd/groupไฟล์จึงกลายเป็นฝันร้ายโดยเฉพาะกับ NFS ดังนั้นสมุดหน้าเหลืองจึงเป็นที่รู้จักในนาม NIS เพื่อช่วยแบ่งเบาภาระ

ตอนนี้เห็นได้ชัดว่ามีบางสิ่งที่ต้องการความยืดหยุ่นมากกว่าเล็กน้อยและ PAM ถูกประดิษฐ์ขึ้น ดังนั้นหากคุณมีความซับซ้อนมากและต้องการรวมศูนย์ความปลอดภัยเอกลักษณ์ที่ไม่ซ้ำใครระบบตรวจสอบความถูกต้องของ bells และ whistles ทั้งหมดคุณจะโทรออกไปยังเซิร์ฟเวอร์กลางเพื่อตรวจสอบสิทธิ์อาจเป็นเซิร์ฟเวอร์ Radius, เซิร์ฟเวอร์ LDAP หรือ Active Directory

โลกได้เติบโตขึ้น แต่ไฟล์ passwd / group / shadow ยังคงมีอยู่สำหรับเราผู้ใช้ / นักพัฒนา / ห้องปฏิบัติการขนาดเล็ก เรายังไม่ต้องการเสียงระฆังและเสียงนกหวีดทั้งหมด ฉันเดาว่าปรัชญาได้เปลี่ยนไปเล็กน้อยแล้วในตอนนี้ว่า"ถ้าคุณจะทำให้ดีขึ้นคุณจะไม่ใช้มันเลย"ดังนั้นอย่ากังวลไปเลย

นี่คือเหตุผลที่ฉันไม่คิดว่าไฟล์ passwd อย่างง่าย ๆ จะเปลี่ยนไป ไม่มีประเด็นใด ๆ อีกแล้วและมันก็ยอดเยี่ยมสำหรับผู้ใช้£ 30 Raspberry Pi ที่มีอุณหภูมิในการตรวจสอบ 2 ถึง 3 ผู้ใช้และฟีด Twitter ตกลงคุณจะต้องระมัดระวังนิดหน่อยกับ user-id ของคุณถ้าคุณต้องการให้มันไม่ซ้ำกันและไม่มีอะไรที่จะป้องกันไม่ให้ผู้ที่สนใจห่อuseraddในสคริปต์ซึ่งเลือก id ที่ไม่ซ้ำกันถัดไปจากฐานข้อมูล (ไฟล์) เพื่อตั้งค่า รหัสที่ไม่ซ้ำกันถ้านั่นคือสิ่งที่คุณต้องการ มันเป็นโอเพ่นซอร์สหลังจากทั้งหมด


2

/etc/passwdไฟล์เพียงแค่แมปชื่อผู้ใช้สัญลักษณ์กับหมายเลขผู้ใช้จริง หากคุณจงใจสร้างชื่อสัญลักษณ์สองชื่อที่แมปกับ userID เดียวมันจะทำให้คุณ

ไม่ได้หมายความว่าเป็นความคิดที่ดีที่จะทำ บางคนอาจพบกรณีการใช้งานที่เฉพาะเจาะจงมากซึ่งพวกเขาสามารถใช้ประโยชน์จากคุณลักษณะนี้ได้ แต่โดยทั่วไปคุณไม่ควรทำ

Linux (และ UNIX อื่น ๆ ) เห็นว่าผู้ดูแลระบบรู้ว่ากำลังทำอะไรอยู่ ถ้าคุณบอกให้ทำอะไรโง่ ๆ นั่นเป็นความผิดของคุณเองในแบบเดียวกับที่คุณบอกให้รถขับไปบนหน้าผาคุณไม่สามารถไปที่ผู้ผลิตและถามว่าทำไมรถถึงอนุญาตให้คุณทำเช่นนี้


ทำไมมันถึงถูกกล่าวว่าเป็นข้อบกพร่อง?
nux

1

มีตัวระบุว่าระบบปฏิบัติการคาดว่าจะไม่ซ้ำกัน แต่จะใช้สำหรับการติดตามฮาร์ดแวร์ ความรู้ที่เฉพาะเจาะจง Universent Unique IDentifier นั้นสอดคล้องกับฮาร์ดไดรฟ์ที่มีไฟล์ระบบอาจช่วยให้มันทำงานต่อไปได้หากการเปลี่ยนแปลงการกำหนดค่าฮาร์ดแวร์ Microsoft เรียกใช้ตัวระบุที่ไม่ซ้ำกันทั่วโลกเหล่านี้และใช้เพื่อติดตามซอฟต์แวร์ Windows ทั้งหมด แดกดันตัวย่อเหล่านี้ได้รับเลือกไม่ดี

จากมุมมองของระบบปฏิบัติการตัวระบุผู้ใช้และกลุ่มส่วนใหญ่จะเปลี่ยนจำนวนเป็นการเปลี่ยนอินเทอร์เฟซภายนอก มันสามารถทำงานได้ตามปกติแม้จะมีการชน สิ่งที่จำเป็นสำหรับผู้ใช้ระบบและกลุ่มคือสิ่งที่พวกเขามีอยู่ ไม่สามารถรู้ได้ว่าผู้ใช้ต้องการอะไร ในสถานการณ์เช่นนี้ปรัชญา Unix ก็คือระบบปฏิบัติการควรถือว่าผู้ดูแลระบบรู้ว่าพวกเขากำลังทำอะไรและจะช่วยให้พวกเขาทำมันได้อย่างรวดเร็ว


0

ฉันพบหลักฐานบางอย่างที่สนับสนุนคำตอบของ @ andybalholm

จากAPUE , §8.15:

กระบวนการใด ๆ สามารถค้นหา ID ผู้ใช้และ ID กลุ่มที่แท้จริงและมีประสิทธิภาพ อย่างไรก็ตามบางครั้งเราต้องการค้นหาชื่อเข้าสู่ระบบของผู้ใช้ที่กำลังเรียกใช้โปรแกรม เราสามารถโทรgetpwuid( getuid()) แต่จะเกิดอะไรขึ้นหากผู้ใช้คนเดียวมีชื่อเข้าสู่ระบบหลายชื่อแต่ละคนมี ID ผู้ใช้เดียวกัน ( บุคคลอาจมีหลายรายการในไฟล์รหัสผ่านที่มี ID ผู้ใช้เดียวกันเพื่อให้มีเชลล์การเข้าสู่ระบบที่แตกต่างกันสำหรับแต่ละรายการ ) โดยปกติระบบจะติดตามชื่อที่เราเข้าสู่ระบบภายใต้ (มาตรา 6.8) และgetloginฟังก์ชันมีวิธี เพื่อดึงชื่อล็อกอิน

....

ชื่อเข้าสู่ระบบแล้วเราก็สามารถใช้มันเพื่อค้นหาผู้ใช้ในแฟ้มรหัสผ่าน - getpwnamการกำหนดเปลือกเข้าสู่ระบบเช่นที่ใช้

Btw ฉันต้องการทราบว่าสามารถเปลี่ยนเป็นเชลล์อื่นได้หรือไม่ในขณะที่ล็อกอิน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.