คำถามติดแท็ก su

su คือยูทิลิตีเพื่อเรียกใช้เชลล์หรือคำสั่งอื่น ๆ ในฐานะผู้ใช้รายอื่น (รูทตามค่าเริ่มต้น)

1
ความแตกต่างระหว่าง sudo su - และ sudo su -
เมื่อฉันทำงานกับเครื่อง RHEL ของฉันฉันใช้sudo su -เพื่อเปลี่ยนเป็น root วันหนึ่ง typo หมายความว่าฉันพิมพ์sudo su --แทน - มันดูเหมือนว่าฉันทุกอย่างที่เป็นเช่นเดียวกับยัติภังค์เดียวยกเว้นว่าผมอยู่ในโฟลเดอร์เดียวกันเป็นก่อนที่ผมจะออกคำสั่ง (มียัติภังค์เดียวที่ฉันพบตัวเองใน/root) มีความแตกต่างอื่น ๆ อีกไหม? จะปลอดภัยไหมที่จะใช้สิ่งนี้ในสถานการณ์ที่ฉันรู้ว่าฉันต้องการทำงานในไดเรกทอรีเดียวกัน
22 sudo  su 

4
ผู้ใช้นี้ไม่สามารถใช้งานได้ - แต่อนุญาตให้เรียกใช้สคริปต์โดยผู้ใช้รายนี้
ฉันสร้างผู้ใช้พิเศษใน / etc / passwd ด้วย: secure:x:2000:2000:secure:/bin:/usr/sbin/nologin ฉันไม่ต้องการอนุญาตการเข้าสู่ระบบของผู้ใช้รายนี้ (ผ่านทางคอนโซล, ssh, ftp, ไม่ว่าทางใด) เขาเป็นเพียงการเรียกใช้สคริปต์หนึ่งผ่าน: sudo su secure -c '/home/someuser/secure.script' This user is currently not available.แต่มันก็ทำให้ผม วิธีการตั้งค่าเพื่อให้สามารถเรียกใช้สคริปต์ด้วยวิธีนี้ แต่ป้องกันการเข้าสู่ระบบใด ๆ (console, ssh, ftp, ... ) ของผู้ใช้รายนี้เข้าสู่ระบบ? ฉันได้พบว่าเมื่อฉันพิมพ์ในบรรทัดคำสั่งตอบสนองคอมพิวเตอร์ด้วย/usr/sbin/nologinThis account is currently not available.
22 sudo  users  su 

1
'script / dev / null' ทำอะไร
ทุกครั้งที่ฉันล็อกอินเข้าสู่ VM ด้วยรูทsuเข้าสู่บัญชีผู้ใช้และลองใช้screenมันจะมีข้อผิดพลาดเกิดขึ้น: Cannot open your terminal '/dev/pts/0' - please check. กองล้นโพสต์บอกว่าผมจำเป็นต้องใช้script /dev/nullในการแก้ไขปัญหาและมันทำงาน script /dev/nullแต่ก็ยังไม่ได้อธิบายว่าทำไมฉันต้องพิมพ์ ฉันต้องการที่จะเข้าใจว่ามันทำอะไรและทำไมฉันต้องพิมพ์มัน
21 terminal  gnu-screen  su  pty 

6
ทำไมโลก su ถึงสามารถปฏิบัติการได้?
ฉันมีเซิร์ฟเวอร์หัวขาดที่ลงชื่อเข้าใช้จากระยะไกลโดยผู้ใช้หลายคน ไม่มีผู้ใช้อื่น ๆ ที่อยู่ใน sudoers sudoไฟล์เพื่อให้พวกเขาไม่สามารถรับรากผ่าน อย่างไรก็ตามเนื่องจากสิทธิ์บนsuมี-rwsr-xr-xไม่มีอะไรหยุดพวกเขาจากการพยายามบังคับเดรัจฉานรหัสผ่านราก หนึ่งอาจโต้แย้งว่าถ้าผู้ใช้รู้รหัสผ่านรูทพวกเขาสามารถประนีประนอมระบบ แต่ฉันไม่คิดว่าเป็นกรณีนี้ OpenSSH ได้รับการกำหนดค่าด้วยPermitRootLogin noและPasswordAuthentication noและไม่มีผู้ใช้รายอื่นใดที่สามารถเข้าถึงเซิร์ฟเวอร์ได้ เท่าที่ฉันสามารถบอกได้โลกดำเนินการอนุญาต/usr/bin/suเป็นเพียงทางเดียวสำหรับผู้ใช้ที่พยายามรับรูทบนเซิร์ฟเวอร์ของฉัน มีอะไรทำให้ฉันสับสนอีกต่อไปเพราะมันไม่ได้มีประโยชน์แม้แต่น้อย มันช่วยให้ฉันทำงานsuได้โดยตรงแทนที่จะต้องทำsudo suแต่มันก็ไม่สะดวก ฉันมองอะไรบางอย่าง โลกนี้ได้รับอนุญาตจากที่suนั่นเพียงเพราะเหตุผลทางประวัติศาสตร์หรือไม่? มีข้อเสียในการลบการอนุญาตที่ฉันยังไม่เคยพบหรือไม่
20 sudo  su  headless 

2
ฉันจะเรียกใช้ในฐานะผู้ใช้รายอื่นได้อย่างไร
นี่คือรหัสทุบตีที่ควรถูกเรียกใช้ ดังนั้นก่อนอื่นทดแทนผู้ใช้เพื่อ openproject และกว่ารันโค้ดทั้งหมด: su openproject -c "bash -l" cd ~/openproject git checkout Gemfile.lock git pull bundle install RAILS_ENV="production" bundle exec rake db:migrate RAILS_ENV="production" bundle exec rake db:seed RAILS_ENV="production" bundle exec rake assets:precompile ฉันได้ลอง chnaging สคริปต์ด้านบนนี้: su - openproject -c "cd ~openproject/openproject" su - openproject -c "git checkout stable" su …
20 bash  debian  sudo  su 

3
ฉันไม่สามารถเข้าสู่ระบบด้วยรูทด้วยคำสั่ง su แต่ใช้กับ SSH
เป็นไปได้อย่างไรที่ฉันไม่สามารถเข้าสู่ระบบในฐานะ root โดยsu rootหรือsu(ฉันได้รับข้อผิดพลาดรหัสผ่านไม่ถูกต้อง) แต่ฉันสามารถเข้าสู่ระบบด้วยssh root@localhostหรือssh root@my_local_IPด้วยรหัสผ่านเดียวกันได้หรือไม่ ฉันใช้ CentOS 6.4 อัปเดต 1 : cat /etc/pam.d/su ให้: #%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in …

2
ใช้“ su -” เพื่อเปลี่ยนผู้ใช้ที่ได้รับ“ ไม่มีรายการรหัสผ่านสำหรับผู้ใช้”
โดยเฉพาะฉันกำลังลองทดสอบบางอย่างบนเซิร์ฟเวอร์การสร้างของฉันโดยเปลี่ยนเป็นผู้ใช้ "jenkins": sudo su - jenkins No passwd entry for user 'jenkins'



4
ไม่สามารถรันคำสั่งเป็นข้อมูล www โดยใช้ su
# su -l www-data ./http-app.py This account is currently not available. # su -l www-data -c ./http-app.py This account is currently not available. # su -c ./http-app.py www-data This account is currently not available. # su -lc ./http-app.py www-data This account is currently not available. # getent passwd www-data www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin …
14 debian  su 

4
วิธีการ ssh -Y จากนั้น su - <ผู้ใช้อื่น> และยังคงส่งต่อแอปพลิเคชัน X ไปยังเครื่องท้องถิ่นของคุณ
มันง่ายพอที่จะ 'ดึงข้อมูล' (เช่นวาดในเครื่อง) แอปพลิเคชัน linux ที่ทำงานจากระยะไกล: หากฉันssh -Yไปยังเครื่องระยะไกลและเรียกใช้แอปพลิเคชันแอปพลิเคชันนั้นจะปรากฏขึ้นอย่างเพียงพอ อย่างไรก็ตามหากในขณะที่ฉันอยู่ในเครื่องระยะไกลฉันsuเป็นผู้ใช้คนอื่นฉันไม่สามารถส่งต่อแอปพลิเคชัน X ไปยังเครื่องท้องถิ่นของฉันได้ wrong authenticationมันบอกว่า ฉันไม่แน่ใจว่าจะจัดการกรณีนี้ได้อย่างไร echo $DISPLAYยังคงเป็นที่ถูกต้อง (กำหนดโดยเริ่มต้นssh -Yการเข้าสู่ระบบ) แต่คุกกี้เซสชั่นอาจมีการตั้งค่าเฉพาะสำหรับผู้ใช้เริ่มต้นที่ลงทะเบียน SSH ฉันจะเอาชนะความยากลำบากนี้และส่งต่อแอปพลิเคชั่น X อื่น ๆ ที่เรียกใช้จากผู้ใช้อื่นได้อย่างไร เหตุผลที่ฉันไม่ได้โดยตรงเพราะฉันไม่ต้องการให้ผู้ใช้นั้นสามารถเข้าถึงผ่าน ssh (เป็นผู้ใช้ "virtualbox" ซึ่งเห็นได้ชัดว่าเป็นเป้าหมายที่ง่ายสำหรับบอทที่พยายาม ssh ไปยังเซิร์ฟเวอร์นั้น) ...
13 x11  ssh-tunneling  su 


5
ฉันจะ sudo su และเปลี่ยนไดเรกทอรีได้อย่างไร
ฉันต้องการสร้างนามแฝงที่ทำสิ่งนี้: alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access' ดังนั้นแล้วจากบรรทัดคำสั่งของฉันฉันเข้าสู่ระบบด้วยผู้ใช้ sudo และผมอยากจะพิมพ์นามแฝงuserYYYเพื่อให้เปลือกของฉันถูกบันทึกไว้ตอนนี้มีuserYYYและเป็นpwd/a/path/that/only/userYYY/has/access ฉันจะทำสิ่งนั้นได้อย่างไร นี่userYYYคือการเรียกใช้กระบวนการบางอย่างและจะต้องมีอะไรในบ้านของมัน ดังนั้นฉันพยายามเปลี่ยน $ HOME โดยใช้: sudo usermod -m -d /a/path/that/only/userYYY/has/access userYYY และจากเปลือกของฉันกับแฟ้ม sudoer sudo su userYYYของฉันฉันทำ แต่นั่นไม่ได้ผล สิ่งเดียวที่ใช้ได้คือsudo su -l userYYYYแต่เปิด bash ใหม่ภายในเชลล์เดิมของฉัน ( -bash-4.1$ ....) โดยสรุปสิ่งที่ฉันต้องการคือหลีกเลี่ยงการเขียน 2 บรรทัดในเชลล์: sudo su userYYY cd /a/path/that/only/userYYY/has/access ความคิดใด ๆ
13 bash  shell  sudo  su 

3
ปัญหาการดำเนินการคำสั่งในฐานะผู้ใช้อื่นกับ sudo -u
เมื่อฉันพยายามที่จะดำเนินการlsในฐานะผู้ใช้ที่abcมีคำสั่งต่อไปนี้ฉันได้รับข้อผิดพลาด: xyz@host:~/temp$ sudo -u abc ls [sudo] password for xyz: Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host. แต่ถ้าฉันทำsu abcแล้วรันlsฉันก็ไม่มีปัญหา
12 sudo  su 

2
เมื่อใดที่ su และ sudo ใช้รหัสผ่านที่แตกต่างกัน
ฉันสามารถใช้อะไรก็ได้โดยใช้sudo; รหัสผ่านของฉันได้รับการยอมรับ แต่เมื่อใดก็ตามที่ฉันพยายามที่จะทำsuจากเปลือกมันล้มเหลวด้วย: su: รหัสผ่านไม่ถูกต้อง ปัญหาคืออะไร
12 command-line  sudo  su 

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