คำตอบนี้ควรจะช่วยคุณได้แม้จะคำนึงถึงการแก้ไขคำถามด้วย โดยเฉพาะอย่างยิ่งบัญชีที่สร้างโดย
--disabled-login
ไม่มีการตั้งรหัสผ่านและไม่มีวิธีการอื่นในการเข้าสู่ระบบแต่ควรจะสามารถใช้sudo
(อธิบายด้านล่าง) เพื่อเรียกใช้คำสั่งหรือเชลล์ในฐานะผู้ใช้ ในความเป็นจริงนี่คือวิธีการ
root
ตั้งค่าบัญชีใน Ubuntu
มีปัญหาหลาย ๆ su - irssi
ที่มีคำสั่งที่มี
คำสั่งนี้จะพยายามที่จะเริ่มต้นเปลือกเป็นเจ้าของโดยผู้ใช้ที่ชื่อirssi
มันจะล้มเหลวถ้า:
- ไม่มี
irssi
ผู้ใช้
irssi
บัญชีของผู้ใช้ถูกปิดใช้งาน
irssi
บัญชีของผู้ใช้ถูกปิดใช้งานสำหรับการเข้าสู่ระบบแบบโต้ตอบ บางครั้งบัญชีได้รับอนุญาตให้ใช้บริการเช่น FTP /bin/false
แต่ห้ามไม่ให้เข้าสู่ระบบตามปกติโดยการตั้งค่าเปลือกของพวกเขากับสิ่งที่ลาออกทันทีเช่น จากนั้นเข้าสู่ระบบจะสิ้นสุดลงทันทีโดยไม่มีข้อความ
- รหัสผ่านที่คุณป้อนไม่ถูกต้องสำหรับ
irssi
ผู้ใช้
การ-
ตั้งค่าสถานะทำให้เชลล์ทำการจำลองเชลล์ล็อกอินเริ่มต้นนั่นคือดังนั้นจึงเหมือนกับการเข้าสู่ระบบเป็นirssi
อย่างมาก หากไม่มี-
แฟล็กหากsu
คำสั่งประสบความสำเร็จคุณจะยังคงได้รับเชลล์เป็นเจ้าของirssi
แต่ตัวแปรสภาพแวดล้อมเช่นHOME
นั้นจะไม่เปลี่ยนแปลง
หากคุณต้องการเรียกใช้โปรแกรมที่เรียกว่า irssi
คุณต้องเรียกใช้su
แตกต่างกัน:
su username - -c irssi
หากคุณออกไปมันก็เหมือนกับ - มันพยายามที่จะเรียกใช้คำสั่งเป็นรูต-c username
-c root
หรือคุณสามารถเริ่มเชลล์แล้วเรียกใช้คำสั่ง :
- เริ่มต้นเปลือกด้วย
su username -
- ในเชลล์ให้รันคำสั่ง (
irssi
)
exit
ถ้าคุณทำเสร็จแล้วออกจากเปลือกโดยการเรียกใช้
กำลังเรียกใช้คำสั่งเป็น root
หากคุณต้องการที่จะทำงานirssi
เป็นroot
, su
ไม่ได้เป็นวิธีที่จะทำมัน เข้าสู่ระบบรากจะถูกยกเลิกโดยปริยายบน Ubuntu และมีเพียงไม่ค่อยเหตุผลใด ๆ อีกครั้งช่วยให้พวกเขา หากคุณได้เปิดใช้งานroot
การเข้าสู่ระบบแล้วคุณควรจะสามารถที่จะใช้จะกลายเป็นsu
root
เหตุผลก็ไม่จำเป็นที่จะช่วยให้การroot
บัญชีคือว่าไม่ว่าจะเป็นหรือไม่ที่คุณทำคุณยังสามารถเรียกใช้คำสั่งเป็นกับroot
sudo
เมื่อคุณเรียกใช้คำสั่งกับsudo
คุณใส่ในของคุณรหัสผ่านไม่ได้รหัสผ่านของผู้ใช้ภายใต้ตัวตนของคุณต้องการคำสั่งในการวิ่ง ผู้ดูแลระบบเท่านั้นที่สามารถเรียกใช้คำสั่งโดยพลการเช่นเดียวroot
กับsudo
(เว้นแต่คุณsudo
จะกำหนดค่าใหม่เพื่อให้ผู้อื่นทำเช่นนั้นแน่นอน) ดังนั้นผู้ใช้ที่ไม่ได้รับอนุญาตให้จัดการระบบจึงไม่ได้รับอนุญาตให้เรียกใช้คำสั่งเหมือนกับroot
รหัสผ่านของตนเอง
เมื่อต้องการเรียกใช้irssi
เป็นroot
กับsudo
:
sudo irssi
และคุณจะป้อนของคุณรหัสผ่านเมื่อได้รับแจ้งไม่ได้root
's
ยกเว้นรหัสผ่านที่คุณป้อนสิ่งนี้จะเหมือนกับ:
su -c irssi
ยกเว้นsudo
เวอร์ชันสามารถประสบความสำเร็จได้เนื่องจากไม่จำเป็นต้องroot
เปิดใช้งานบัญชี
เช่นเดียวกับsu
ที่คุณสามารถใช้sudo
เพื่อเรียกใช้คำสั่งเป็นอื่นที่ไม่ใช่root
ผู้ใช้ เมื่อต้องการเรียกใช้irssi
เป็นusername
กับsudo
:
sudo -u username irssi
หากคุณต้องการsudo
ทำตัวเหมือนsu -
เคารพ -HOME
นั่นคือคุณต้องการใช้HOME
ตัวแปรสภาพแวดล้อมของผู้ใช้เป้าหมายคุณสามารถรันsudo
ด้วยการ-H
ตั้งค่าสถานะ:
sudo -H irssi
sudo -H -u username irssi
คุณสามารถเริ่มต้นเปลือกทั้งหมดด้วยเช่นคุณสามารถมีsudo
su
ยกเว้นรหัสผ่านที่คุณใส่คำสั่งนี้มีผลเหมือนกับsu
:
sudo -s
และคำสั่งนี้มีผลเช่นเดียวกับsu -
:
sudo -i
( i
ย่อมาจากเชลล์ล็อกอินเริ่มต้น )
คุณสามารถเริ่มเชลล์ในฐานะผู้ใช้อื่นได้เช่นกัน:
sudo -u username -s
sudo -u username -i
อ่านเพิ่มเติมเกี่ยวกับ sudo
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับsudo
ลองดูที่:
ทำไมถึงgksu
ทำงานเมื่อsu
ไม่ได้?
gksu
อาจจะทำงานโดยการทำงานsudo
gksu
เป็นส่วนหน้าสำหรับทั้งสอง และsu
sudo
ใน Ubuntu มันเป็นค่าเริ่มต้นที่จะใช้sudo
(เนื่องจากใน Ubuntu su
มักจะไม่ได้ใช้สำหรับการเป็นroot
และเป็นเพียงวิธีรองในการกลายเป็นอื่น ๆ ไม่ใช่root
ผู้ใช้)
คุณสามารถทำให้gksu
การใช้งานเป็นส่วนหน้าโดยใช้su
gksu --su-mode
คุณสามารถหาว่าgksu
อยู่ในsu
โหมดหรือsudo
โหมด (ถ้าคุณต้องการ) gksu-properties
เปลี่ยนการตั้งค่านี้โดยการทำงาน นี่คือการตั้งค่าต่อผู้ใช้
เมื่อgksu
อยู่ในโหมดมันจะทำงานเช่นเดียวกับsudo
gksudo
อ่านเพิ่มเติมเกี่ยวกับ gksu
การวิเคราะห์หลังการแก้ปัญหา
ในที่สุดคุณก็พบว่าคุณสามารถรันคำสั่งที่จำเป็นด้วย:
sudo -u username irssi
(ซึ่งเป็นเทคนิคที่ระบุไว้ข้างต้น)
ในที่สุดคุณรายงานข้อมูลสองชิ้นซึ่งเพียงพอที่จะอธิบายว่าทำไมมันถึงเป็นเพราะเทคนิคอื่นล้มเหลว แต่ก็ประสบความสำเร็จ:
username
บัญชีถูกสร้างขึ้นด้วย--disabled-login
ธงซึ่งทำให้มันมีรหัสผ่านไม่ (และไม่มีวิธีการอื่นในการเข้าสู่ระบบ) มีรหัสผ่านไม่ไม่ได้หมายความว่ามันเป็นไปได้ที่จะเข้าสู่ระบบด้วยรหัสผ่านว่างเปล่า มันหมายความว่าไม่มีรหัสผ่านเพียงพอที่จะรับรองความถูกต้อง เมื่อใช้ร่วมกับการกำจัดวิธีการรับรองความถูกต้องแบบอื่นวิธีนี้username
ไม่สามารถรับรองความถูกต้องได้เลย
ดังนั้นsu
โซลูชันที่มีพื้นฐานทั้งหมดจึงออกมา sudo
สามารถทำงานได้เนื่องจากsudo
คุณไม่ได้ตรวจสอบสิทธิ์ในฐานะผู้ใช้ที่คุณกำลังจะแอบอ้างบุคคลอื่น แต่คุณจะต้องได้รับอนุญาตให้ปลอมตัวและรับรองความถูกต้องด้วยตัวคุณเอง (เช่นป้อนรหัสผ่านของคุณเองไม่ใช่ของพวกเขา)
เป็นไปได้ที่จะตั้งรหัสผ่านในบัญชีซึ่งจะลบสิ่งกีดขวางนี้เพื่อเข้าสู่ระบบ:
sudo passwd username
อย่างไรก็ตามอาจมีเหตุผลที่ดีที่ผู้ใช้ไม่ได้รับอนุญาตให้เข้าสู่ระบบตัวอย่างเช่นหากผู้ใช้นี้ได้รับอนุญาตให้เข้าสู่ระบบและเข้าสู่ระบบแบบกราฟิกปัญหาที่ไม่ดีจะเกิดขึ้นจากสภาพแวดล้อมของผู้ใช้ ? หากผู้ใช้รายนี้สามารถเข้าสู่ระบบได้จะทำให้สามารถเข้าสู่ระบบจากระยะไกลในฐานะผู้ใช้รายนั้น (สำหรับเครื่องที่คุณใช้บริการเครือข่าย)
หากคุณต้องการปิดการใช้งานอีกครั้ง:
sudo passwd -dl username
ที่เกี่ยวข้อง: ปิดใช้งานroot
บัญชีอีกครั้งหลังจากเปิดใช้งานชั่วคราว
username
บัญชีมี/bin/false
เป็นเปลือกเข้าสู่ระบบของมัน
เมื่อเชลล์ชอบbash
รันเป็นเชลล์ล็อกอินของคุณเชลล์จะตั้งค่าสภาวะแวดล้อมของคุณและให้พร้อมต์แบบโต้ตอบเพื่อควบคุมเครื่อง
เมื่อ/bin/false
วิ่งบนมืออื่น ๆ มันไม่ทำอะไรเลยและรายงานความล้มเหลว ( /bin/true
ไม่ทำอะไรเลยและรายงานความสำเร็จ)
false
และtrue
คำสั่งที่มีประโยชน์ในการเขียนสคริปต์และวัตถุประสงค์ในการทดสอบต่างๆ แต่ยังสำหรับการปิดการใช้งานบัญชีเพื่อที่ว่าเมื่อบันทึกคนที่อยู่ในเซสชั่นการเข้าสู่ระบบของพวกเขาสิ้นสุดลงทันที วิธีการที่ใช้รหัสผ่าน (หรือวิธีการอื่นในการตรวจสอบ) สามารถเปิดใช้งานและผู้คนสามารถเข้าสู่ระบบเพียงแค่ไม่ได้สำหรับการเข้าถึงเปลือก ตัวอย่างเช่นหากมีเซิร์ฟเวอร์ FTP พวกเขายังสามารถเข้าถึงบัญชีของตนผ่านทาง FTP หากมีเซิร์ฟเวอร์ SSH พวกเขาจะไม่สามารถรับเชลล์ผ่าน SSH แต่พวกเขายังคงสามารถใช้sftp
และscp
ถ่ายโอนไฟล์ได้
ตั้งแต่username
's เปลือกเข้าสู่ระบบเป็น nonfunctional คำสั่งชอบ, , และอาจจะไม่ได้ทำงานsu username
su - username
sudo -u username -s
sudo -u username -i
แต่คำสั่งที่ไม่ให้เชลล์เหมือนหรือยังใช้งานได้sudo -u username command
su username -c 'command'
เนื่องจากสามารถรันคำสั่งได้คุณสามารถเปลี่ยนเชลล์ล็อกอินของผู้ใช้เป็นฟังก์ชันได้:
sudo chsh -s /bin/bash username
อย่างไรก็ตามสิ่งนี้ควรทำด้วยความระมัดระวังเนื่องจากอาจมีเหตุผลที่ดีในการปิดใช้งานการเข้าสู่ระบบแบบโต้ตอบสำหรับผู้ใช้
ที่นี่username
ทั้งคู่มีรหัสผ่านที่ปิดใช้งานและเชลล์ "พิการ" การไม่มีรหัสผ่านการทำงานใด ๆ จะช่วยป้องกันไม่ให้su
โซลูชั่นที่ทำงานอยู่ทั้งหมดในขณะที่การไม่มีล็อกอินเชลล์แบบโต้ตอบที่ใช้งานได้ทำให้เชลล์ที่วางไข่แบบเชลล์ทำงานทั้งหมดยกเว้นการเรียกใช้เชลล์ด้วยตนเองเช่น)sudo -u username bash
sudo -u username command
คือสิ่งที่เหลืออยู่