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

คำถามที่เกี่ยวข้องกับคำสั่ง sudo ที่อนุญาตให้ผู้ใช้รันโปรแกรมด้วยสิทธิ์ของผู้ใช้อื่น (โดยปกติคือผู้ใช้รูท)

1
วิธีกำหนดค่า pkexec ให้ไม่ถามรหัสผ่าน?
ฉันมีแอปพลิเคชั่น GUI ที่จำเป็นต้องเรียก daemon (เขียนด้วยภาษา Python) ด้วยสิทธิ์ superuser ฉันต้องการทำสิ่งนี้โดยไม่แจ้งให้ผู้ใช้ใส่รหัสผ่าน เนื่องจาก daemon เป็นสคริปต์ฉันไม่สามารถตั้งค่าบิต SUID ได้โดยตรง ฉันสามารถเขียนตัวห่อหุ้ม C สำหรับสิ่งนี้ แต่ฉันไม่อยากประดิษฐ์พวงมาลัยใหม่โดยเฉพาะเมื่อความผิดพลาดในส่วนของฉันอาจนำไปสู่ความปลอดภัยของระบบที่ถูกบุกรุกอย่างรุนแรง สิ่งที่ฉันทำตามปกติในสถานการณ์นี้คือการเพิ่มบรรทัด/etc/sudoersที่อนุญาตให้ผู้ใช้เรียกใช้ daemon ในฐานะรูทโดยไม่มีรหัสผ่านโดยใช้คำสั่ง NOPASSWD ทำงานได้ดีจากบรรทัดคำสั่ง อย่างไรก็ตามเมื่อฉันทำสิ่งนี้จาก GUI pkexecกล่องโต้ตอบจะปรากฏขึ้นเพื่อขอรหัสผ่านของผู้ใช้ มันดูเหมือนว่าบน Ubuntu, โทรไปsudoจาก GUI pkexecที่มีอย่างใดถูกขัดขวางโดย มีวิธีที่สะอาดรอบนี้หรือไม่? ฉันค่อนข้างจะไม่ต้องจัดการกับความยุ่งยากของสคริปต์ setuid

2
Sudo เกิดข้อผิดพลาดไม่สามารถรันอะไรก็ได้ในฐานะรูท
ด้วยเหตุผลบางอย่างเมื่อฉันพยายามเรียกใช้โปรแกรมใด ๆ (ฉันพยายามเรียกใช้ rootkit hunter: rkhunter) เป็น root ในบรรทัดคำสั่งด้วย sudo ดังนี้: sudo rkhunter จากนั้นฉันได้รับข้อความนี้: You must be the root user to run this program แล้วฉันจะได้รับบรรทัดเหล่านี้: sudo: error in /etc/sudo.conf, line 0 while loading plugin 'sudoers_policy' sudo: /usr/lib/sudo/sudoers.so must only be writable by owner sudo: fatal error, unable to load plugins …

2
sudo: ไม่ทราบชื่อ uid xxxxx: คุณเป็นใคร
ฉันใช้ ssh และพยายามอัพเกรดระบบจาก Ubuntu 10.04 เป็น 12.04 การเชื่อมต่อมีปัญหาดังนั้นฉันต้องลงชื่อเข้าใช้อีกครั้งเพื่อสิ้นสุดการอัปเกรด หลังจากวิ่ง sudo dpkg --configure -a ดูเหมือนว่าระบบจะไม่รู้จักฉันในฐานะ sudoer อีกต่อไป ถ้าฉันเรียกใช้คำสั่งใด ๆ ในฐานะ sudo ฉันจะได้รับ sudo: unknown uid xxxxx: who are you? (xxxxx สำหรับรหัสจริงของหลักสูตร) ​​และการทำงานในทำนองเดียวกันwhoamiจะกลับมา whoami: cannot find name for user ID xxxxx นอกจากนี้เมื่อฉันพยายามที่จะsshขออนุญาตฉันก็ปฏิเสธ (แม้ข้อเท็จจริงที่ว่าฉันยังคงเข้าสู่ระบบในเครื่องในเซสชั่นที่แตกต่างกัน)
12 sudo 

1
ติดตั้งพาร์ติชันโดยไม่ตั้งใจบน / usr
ฉันติดตั้งพาร์ติชัน/usrโดยไม่ตั้งใจ ดังนั้นฉันสูญเสียการเข้าถึงsudoคำสั่งและไม่สามารถยกเลิกการต่อเชื่อมพาร์ทิชัน ฉันใช้อินสแตนซ์ AWS EC2 และไม่มีรหัสผ่านสำหรับชุดผู้ใช้รูท ตัวเลือกของฉันคืออะไร? จะรีบูต unmount พาร์ติชันที่ติดตั้งใหม่และฉันจะเข้าถึงเนื้อหา/usrอีกครั้งหรือไม่ มิฉะนั้นฉันจะเข้าถึงรูทได้อย่างไร มีภัยคุกคามจากการสูญหายของข้อมูลหรือระบบกำลังจะใช้งานไม่ได้หลังจากรีบูต? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม
11 mount  sudo  unmount 


1
ทำไมฉันต้องพิมพ์รหัสผ่านหลังจากออกจากเซสชัน sudo -i
sudo -i ในเทอร์มินัลจะทำให้ผู้ใช้ปกติเป็นผู้ใช้รูท & หลังจากเปลี่ยนเป็นผู้ใช้รูทหากเราออกจากนั้นอีกครั้งเราจะกลับไปเป็นผู้ใช้ปกติถ้าเราลองอีกครั้งคราวหน้าจะพาฉันไปเป็นผู้ใช้รูทโดยตรงโดยไม่ต้องถามรหัสผ่าน เหตุใดจึงเป็นเช่นนี้และสิ่งที่หมดเวลาของสถานที่นี้?
11 sudo 

2
มีการรายงานความพยายาม sudo โดยไม่ได้รับอนุญาตที่ไหน
มีการรายงานความพยายาม sudo โดยไม่ได้รับอนุญาตที่ไหน เมื่อคุณพยายามใช้ sudo และไม่ได้รับอนุญาตจะมีข้อความแจ้งว่าจะมีการรายงานความพยายาม มีรายงานเฉพาะในนี้/var/log/auth.logหรือไม่ มีสถานที่อื่นไหม เหตุผลที่ฉันถามก็เพราะบันทึกมีมากว่ามันไม่ใช่วิธีที่ดีในการดูบ่อย
11 sudo  logs 

2
ฉันยากจน Sudo หลังจากอัพเกรดจาก 9 เป็น 12.04.1
ขณะนี้sudoจะถามรหัสผ่าน แต่ไม่มีอะไรเกิดขึ้นหลังจากนั้น ไม่มีข้อผิดพลาดใด ๆ ฉันตรวจสอบไฟล์ sudoers มันผ่านการตรวจสอบไวยากรณ์ visudo นี่คือการตั้งค่า: # # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write …
11 12.04  upgrade  sudo 

1
rm: ไม่สามารถลบ `/ run / user / root / gvfs ': เป็นไดเรกทอรี
เมื่อใดก็ตามที่ฉันพิมพ์คำสั่งที่คล้ายกับsudo apt-get installหรืออะไรทำนองนี้ฉันจะได้รับข้อผิดพลาดประเภทนี้: $ sudo su # exit exit rm: cannot remove `/run/user/root/gvfs': Is a directory ฉันจะแก้ไขมันได้อย่างไร
11 12.10  sudo  rm 

2
.bashrc ของรูทไม่ได้ดำเนินการกับ sudo -i
ในหนึ่งในเซิร์ฟเวอร์ Ubuntu 11.10 ของฉันเมื่อฉันใช้sudo -iเพื่อเป็นผู้ใช้รูทจะไม่ดำเนินการ. bashrc ของรูท ในเซิร์ฟเวอร์อื่น ๆ ทั้งหมดที่มีการกำหนดค่าที่เกี่ยวข้องเหมือนกันเท่าที่ฉันรู้มันกำลังดำเนินการอย่างถูกต้อง นี่คือสิ่งที่ฉันตรวจสอบแล้ว: .bashrc มีอยู่ใน / root เป็นเจ้าของโดย root: root, สิทธิ์ 644 / etc / profile และ /etc/bash.bashrc กำลังถูกเรียกใช้งาน เปลือกของรูทถูกตั้งค่าเป็น "/ bin / bash" ฉันสามารถรัน. bashrc ด้วยsource .bashrcหลังจากนั้นทุกอย่างเป็นปกติสำหรับเซสชันนั้น ฉันยังสามารถพิมพ์bashเพื่อดำเนินการทุบตีด้วยตนเองหลังจากที่ฉัน sudoed ไปที่รากและ. bashrc จะถูกดำเนินการแล้ว ps ยืนยันว่าเชลล์ที่รันสำหรับล็อกอินรูทของฉันคือทุบตี มีอะไรให้ตรวจสอบอีกบ้าง?
11 11.10  bash  sudo  bashrc 

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

6
ปิดการใช้งานคำสั่งปิดระบบสำหรับผู้ใช้ทุกคนแม้กระทั่งรูต - ผลที่ตามมา?
ฉันต้องการปิดการใช้งานshutdownคำสั่งสำหรับผู้ใช้ทุกคนแม้กระทั่งรูทบนการติดตั้งเซิร์ฟเวอร์ Ubuntu เหตุผลที่ฉันต้องการทำเช่นนี้คือเพื่อให้แน่ใจว่าฉันจะไม่ติดนิสัยในการปิดเครื่องด้วยวิธีนี้เนื่องจากฉัน SSH เป็นเครื่องผลิตจำนวนมากในเวลาเดียวกันกับเครื่องนี้และฉันไม่ ต้องการปิดเครื่องอีกเครื่องหนึ่งโดยไม่ตั้งใจโดยพิมพ์คำสั่งลงในหน้าต่างที่ผิด เซิร์ฟเวอร์ที่ฉันต้องการจะปิดการใช้งานการปิดการทำงานบนทำงานเฉพาะใน VirtualBox บนเดสก์ท็อป Windows ของฉันและฉันใช้สำหรับการทดสอบในเครื่องเท่านั้นดังนั้นจึงไม่ใช่ปัญหาหากฉันไม่สามารถปิดได้จากบรรทัดคำสั่ง ฉันได้บรรเทาปัญหาไปเล็กน้อยแล้วโดยตรวจสอบให้แน่ใจว่าฉันมีรหัสผ่านที่แตกต่างกันในอิมเมจ VirtualBox แต่เห็นได้ชัดว่าถ้าฉันอยู่ในsudo'หน้าต่าง' ในหนึ่งในเครื่องผลิตฉันยังคงสามารถปิดมันได้โดยไม่ตั้งใจ คำถามของฉันคือ: ฉันจะปิดการใช้งานคำสั่งปิดเครื่องได้อย่างไร หากฉันปิดการใช้งานคำสั่งปิดระบบจะมีผลกระทบใดบ้างที่ฉันควรทราบ? โดยเฉพาะอย่างยิ่งจะปิดใช้งานการรองรับการปิด ACPIที่เทียบเท่ากับการกดปุ่มเปิดปิดบนเครื่องจริงหรือไม่? มันอาจส่งผลกระทบต่อการใช้งานทั่วไปอื่น ๆ ? สำหรับข้อมูลฉันแค่ใช้อิมเมจ VirtualBox นี้เพื่อทดลองเชลล์สคริปต์เรียกใช้ Tomcat และ Java และสิ่งนั้น
11 shutdown  root  sudo 

3
ฉันจะป้องกันไม่ให้คอมไพล์ต้องการ sudo ในทุกคำสั่ง git ได้อย่างไร
ฉันสร้างไดเรกทอรี/var/wwwเพื่อเก็บโคลนแอปพลิเคชันเว็บของฉันเมื่อฉันเริ่มต้นโคลนแอพจาก GitHub มันต้องการให้ฉันใช้ sudo และทุกครั้งที่ทำgit pullมันต้องใช้ sudo ฉันพบปัญหาบางอย่างเพราะสิ่งนี้ ตัวอย่างเช่นคีย์ ssh ของฉันไม่ตรงกัน ดังนั้นเมื่อฉันทำgit pullฉันต้องใช้ HTTPS แทน ssh และป้อนชื่อผู้ใช้และรหัสผ่านของฉันทุกครั้งที่ฉันต้องการดึงและอัปเดตแอป ฉันจะกำหนดค่านี้ได้อย่างไรฉันจึงไม่ต้องใช้ sudo ทุกครั้งที่ฉันใช้ git
11 ssh  sudo  git  github 

3
แนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการใช้ sudo ในสคริปต์ทุบตี
ฉันมีสคริปต์ทุบตีที่ยาวและยาวซึ่งต้องรันคำสั่งจำนวนมากในขณะที่คำสั่งส่วนใหญ่จำเป็นต้องเรียกใช้ในฐานะผู้ใช้ทั่วไปก่อน sudo เพราะจะทำให้เจ้าของไฟล์ยุ่งเหยิงและเช่นนั้น ฉันมาด้วยวิธีการบางอย่าง แต่พวกเขาแต่ละคนมีปัญหาบางอย่าง วิธีที่ 1: การใช้ sudo ภายในไฟล์ #!/bin/bash sudo echo "I must be run by root" touch needsToBeOwnedByUser1 echo "needs to be run by user" sleep 1000 sudo echo "I, again, must be run by root" นี่จะดูดีจากวิธีการเขียนโค้ด sudoถูกเขียนก่อนที่จะมีคำสั่งไม่กี่คำที่รูทจริงต้องรันโดยรูท แต่ถ้าเวลาระหว่างการsudoโทรแต่ละsudoครั้งนานเกินไปขอรหัสผ่านอีกครั้ง นอกจากนี้หากการดำเนินการครั้งแรกของการsudoล้มเหลวเช่นเนื่องจากรหัสผ่านไม่ถูกต้องส่วนที่เหลือของสคริปต์จะยังคงดำเนินการ วิธีที่ 2: ใช้ sudo เพื่อโทรหาไฟล์จากนั้นเปลี่ยนกลับเป็นผู้ใช้ดั้งเดิมเมื่อต้องการ #!/bin/bash echo …
11 bash  sudo  su 

2
สคริปต์ทุบตี: ผลลัพธ์ที่แตกต่างเมื่อเรียกด้วยหรือไม่ใช้ sudo
ใน Ubuntu 16.04.3 ฉันมีสคริปต์ทุบตีง่ายมาก: test.sh [[ 0 == 0 ]] && result="true" || result="false" echo $result echo $USER $SHELL $0 เมื่อฉันเรียกมันว่าเป็นผู้ใช้ที่ไม่ใช่รูทmeหรือrootทำงานได้ตามที่คาดไว้ ถ้าฉันใช้sudo ./test.shมันบ่นเกี่ยวกับข้อผิดพลาดทางไวยากรณ์: $ ./test.sh true me /bin/bash ./test.sh $ sudo su # ./test.sh true root /bin/bash ./test.sh # exit $ sudo ./test.sh ./test.sh: 1: ./test.sh: [[: not found false …
10 bash  scripts  sudo 

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