เหตุใดผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบจึงไม่สามารถติดตั้งซอฟต์แวร์ได้


11

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

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

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

ฉันยินดีที่จะรู้ว่าฉันมีความเข้าใจผิดที่นี่ทำให้บางสิ่งที่นี่ไม่ถูกต้อง

คำตอบ:


16

ทำไมคุณถึงขอรหัสผ่าน

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

Ubuntu มอบวิธีการติดตั้งซอฟต์แวร์ที่สะดวกสบาย นักพัฒนาซอฟต์แวร์สามารถพึ่งพาความสะดวกสบายนั้นและตั้งสมมติฐานว่าศูนย์ / synaptic / apt / synaptic ช่วยให้พวกเขาสามารถเข้าถึงไฟล์ที่ละเอียดอ่อนเหล่านี้ Canonical จะตรวจสอบที่เก็บซอฟต์แวร์เพื่อหาข้อบกพร่องและรหัสที่เป็นอันตราย แต่ความรับผิดชอบสูงสุดคือของคุณ

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

นั่นเป็นเหตุผลที่ Synaptic aaks ใช้รหัสผ่านและทำไมมันถึงดี


sudoers

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

วิธีทำให้อูบุนตูจำรหัสผ่านถาวรได้เป็นครั้งแรกหลังจากครั้งแรก

อ่านอย่างละเอียด คุณสามารถล็อคตัวเองออกจากระบบ

ความหวาดกลัวจบลงแล้ว

ดังนั้นตอนนี้คุณมีความหวาดกลัวอยู่ข้างหลังคุณและจริงจังกับเรื่องนี้ฉันสามารถบอกคุณได้ว่าไม่ใช่เรื่องเลวร้าย หากคุณเชื่อถือคนที่ทำงานกับคอมพิวเตอร์ของคุณและคุณไม่ได้ติดตั้งโปรแกรมที่อนุญาตให้เข้าถึงระบบของคุณจากระยะไกล (เช่นเซิร์ฟเวอร์ ssh- หรือ ftp-server) แสดงว่าไม่อันตรายเลยที่จะปิดการใช้งานรหัสผ่าน อย่าทำโดยไม่คำนึงถึงกรณีที่เลวร้ายที่สุดและคิดถึงข้อมูลส่วนตัวของคุณ


มองข้ามการพิจารณาคดี ( อย่าทำสิ่งนี้เบา ๆ - ดูข้อความและลิงก์ด้านบน ):

# in shell type these commands
sudo su       # in case you do something stupid, you'll have a root shell open
select-editor # (optional) will allow you to select text editor
visudo        # secure way to open sudoers list

บรรณาธิการจะเปิดเพิ่มบรรทัดเช่นนี้:

confus confusion=(root) NOPASSWD:/usr/sbin/synaptic,/usr/bin/software-center

username machine=(usernameToRunCommandAs) command1,command2,...คำอธิบายไวยากรณ์: ดังนั้นบรรทัดข้างต้นทำให้ Confus สามารถเรียกใช้ synaptic และ softwarecenter เป็น root โดยไม่ต้องมีการสืบค้นรหัสผ่าน คุณจะต้องเริ่มต้นด้วยsudo synapticหรือgksudo synapticใส่ alias `alias synaptic = 'sudo synaptic' ในโปรไฟล์เชลล์ของคุณ


คุณทำให้ฉันเข้าใจจริงๆ
ดีใจที่ได้

2
ไม่เป็นไร เนื่องจาก linux เป็นโครงการโอเพ่นซอร์สอาศัยผู้คนทำงานของพวกเขาโดยไม่มีค่าตอบแทนคุณจะพบคนที่มีประโยชน์มากมายในชุมชน
con-f-use

4

พวกเขาไม่สามารถ. นี่คือข้อตกลง

  1. ผู้ใช้คนที่ 1 ที่สร้างใน Ubuntu ถือว่าเป็นผู้ใช้พิเศษ: นี่คือผู้ใช้ที่มีสิทธิ์การดูแลระบบ ซึ่งหมายความว่าเมื่อผู้ใช้รายนี้ต้องการทำงานผู้ดูแลระบบเขาจะได้รับพร้อมท์สำหรับรหัสผ่านผู้ดูแลระบบของเขา ภารกิจเหล่านั้นถูกออกโดยการวางsudoต่อหน้าคำสั่ง

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

วิธีนี้ 1 คนรับผิดชอบต่อระบบ

คุณสามารถทำให้ผู้ใช้มากกว่า 1 รายเป็นผู้ดูแลระบบ (สามารถติดตั้งซอฟต์แวร์ได้) โดยเพิ่มผู้ใช้เหล่านั้นลงในไฟล์ sudoers

นอกจากนี้พวกเขาสามารถติดตั้งซอฟต์แวร์ในบ้านของพวกเขา แต่สิ่งนี้ขึ้นอยู่กับซอฟต์แวร์: บางครั้งโปรแกรมติดตั้งต้องการเพิ่มลงในระบบและไม่ได้รับอนุญาต การติดตั้งเหล่านี้มักมาจากแหล่งที่มาดังนั้นจึงไม่ใช่วิธีที่ง่ายที่สุด;)


2

ใน Ubuntu ผู้ดูแลระบบมีสิทธิ์ใช้งานรูท (มักเรียกว่า "รูท" เช่นเดียวกับใน "คุณต้องเป็นรูท")

การเข้าถึงไฟล์สามารถแบ่งออกเป็นสามประเภท:

  • อ่าน (ค่าตัวเลข 4)
  • เขียน (ค่าตัวเลข 2)
  • ดำเนินการ (ค่าตัวเลข 1)

คุณสมบัติเหล่านี้สามารถตั้งค่าในทุกไฟล์หรือไดเรกทอรี นอกจากนี้ข้อ จำกัด เหล่านี้สามารถตั้งบน:

  • เจ้าของไฟล์
  • กลุ่มของไฟล์ (ผู้ใช้สามารถเป็นสมาชิกของกลุ่มนี้)
  • ผู้ใช้รายอื่นทั้งหมดซึ่งไม่ใช่เจ้าของหรือในกลุ่ม

หลักการเหล่านี้เป็นพื้นฐานของการอนุญาตไฟล์ Linux ใน windows สามารถดำเนินการทุกอย่างได้ ให้มัน.cmdหรือ.exeส่วนขยายตัวอย่างเช่น ใน Ubuntu คุณต้องเพิ่มบิตการเรียกใช้งานอย่างชัดเจนมิฉะนั้นจะเกิดข้อผิดพลาดในการขออนุญาต

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

Ubuntu มีโปรแกรมพิเศษที่เรียกว่าsudo(SuperUser DO ... ) เพื่อเรียกใช้โปรแกรมด้วยสิทธิ์พิเศษของรูท สามารถใช้สำหรับการติดตั้งซอฟต์แวร์ เมื่อเรียกใช้sudoโปรแกรมจะขอรหัสผ่านผู้ใช้ของคุณ โปรดทราบว่าเฉพาะสมาชิกของadminกลุ่มเท่านั้นที่สามารถเรียกใช้โปรแกรมเป็นรูทsudoได้

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


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

พวกเขาสามารถติดตั้งซอฟต์แวร์ในไดเรกทอรีบ้านมี พวกเขาเพียงแค่ต้องรวบรวมมันและวางไบนารีที่นั่น แน่นอนว่าซอฟต์แวร์ที่ติดตั้งในรูปแบบดังกล่าวจะไม่สามารถเข้าถึงไฟล์ที่ได้รับการป้องกันอื่น ๆ ได้ แม้ว่าซอฟต์แวร์ส่วนใหญ่จะสร้างในลักษณะที่ต้องการเข้าถึงไฟล์ดังกล่าว
con-f-use

ฉันได้อัปเดตคำตอบด้วย "วิธี Ubuntu" สำหรับการติดตั้งซอฟต์แวร์ เป็นไปได้ที่จะติดตั้งซอฟต์แวร์ในโฮมไดเร็กตอรี่ของคุณ, แต่มันขึ้นอยู่กับสิ่งที่คุณดาวน์โหลดมาจริงๆ บางครั้งก็เป็นที่เก็บที่มีนามสกุลหรือ.tar.gz .tar.bz2สิ่งเหล่านี้สามารถแตกออกได้ในโฮมไดเร็กตอรี่โดยตรง, แต่บางครั้งคุณจำเป็นต้องคอมไพล์โปรแกรมก่อนการใช้งาน. หากไฟล์นั้นมี.binหรือเป็น.shส่วนขยายมักจะเป็นตัวติดตั้งที่ปฏิบัติการได้ซึ่งจะแตกต่างกันไปในการใช้งาน จำไว้ว่า Ubuntu ไม่ได้ใช้นามสกุลไฟล์เพื่อกำหนดประเภท แต่จะใช้เนื้อหาของมัน
Lekensteyn

2

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

ขณะนี้ยังไม่มีวิธีที่จะบอกระบบ "ติดตั้ง firefox จาก. deb นี้ แต่อยู่ในโฮมไดเร็กตอรี่ของผู้ใช้เพื่อให้แยกได้จากส่วนที่เหลือของระบบ"; ซึ่งเป็นสาเหตุที่ปัจจุบันส่วนใหญ่เป็นเรื่องทั้งหมดหรือไม่มีอะไร (นี่เป็นสาเหตุที่ทำให้การรัน. deb ของบุคคลที่สามไม่ดีแพคเกจและรวมสคริปต์ไว้แล้วมีการเข้าถึงรูทไปยังระบบของคุณ)


1

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


ด้วย "admin" คุณหมายถึงผู้ใช้ที่มีสิทธิ์ sudo ใช่ไหม ผู้ดูแลระบบที่แท้จริงจะเป็นรูท

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

และแม้แต่บัญชี Windows "Admin" ก็ไม่ได้เป็นเจ้าของระบบไฟล์จริงๆคือ SYSTEM ซึ่งในกรณีนี้จะเป็นเช่นนี้ "Admin" ซึ่งเป็นบัญชีที่คุณสร้างขึ้นเมื่อทำการติดตั้งและ ROOT ซึ่งเป็นไฟล์ระบบจริง เจ้าของ
Uri Herrera

0

คุณสามารถติดตั้งซอฟต์แวร์ในฐานะผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบปกติ ซอฟต์แวร์ที่ติดตั้งโดยผู้ใช้ปกติจะเป็น "เป็นเจ้าของ" โดยผู้ใช้นั้นซึ่งหมายความว่าเป็นส่วนขยายของผู้ใช้ - ไม่มีสิทธิ์มากกว่าผู้ใช้ที่เป็นเจ้าของแม้ว่าจะอาจมีสิทธิ์น้อยลง ตัวเลือกของผู้ใช้

วิธีปฏิบัติทั่วไปสำหรับผู้ใช้ในการสร้างไดเรกทอรี 'bin' ภายในโฮมไดเรกทอรีของพวกเขา หาก / home / [user] / bin มีอยู่มันจะถูกเพิ่มไปยังจุดเริ่มต้นของเส้นทางของผู้ใช้นั้น คุณสามารถวางไฟล์ที่เรียกใช้งานได้ใน / home / [user] / bin หรือในโฟลเดอร์อื่น ๆ ที่คุณมีการเขียนและดำเนินการเข้าถึงและรันโปรแกรมจากที่นั่น

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

เท่าที่ฉันรู้คุณไม่สามารถใช้ซอฟต์แวร์การจัดการแพคเกจเพื่อติดตั้งแพคเกจซอฟต์แวร์เว้นแต่คุณจะมีสิทธิ์ผู้ดูแลระบบเนื่องจากการจัดการแพ็คเกจเสร็จสิ้นทั้งระบบ

อย่างไรก็ตามหากไม่มีสิทธิ์ผู้ดูแลระบบคุณสามารถสร้างเชลล์สคริปต์เขียนและคอมไพล์ซอร์สโค้ดดาวน์โหลดและคอมไพล์ "tarballs" ซึ่งเป็นแพ็คเกจของซอร์สโค้ดสำหรับแอปพลิเคชันที่ซับซ้อนหรือดาวน์โหลดไฟล์ปฏิบัติการตราบใดที่ไฟล์เหล่านี้สามารถใช้ได้กับ สิทธิ์ของผู้ใช้ปกติ เกมอินดี้บางเกมเช่น World of Goo หรือ X-Plane 9 สามารถติดตั้งและใช้งานได้ในลักษณะนี้


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

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