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

sudo - ดำเนินการคำสั่งด้วยสิทธิ์ superuser

3
วิธีการปิดใช้งาน requiretty สำหรับคำสั่งเดียวใน sudoers?
ฉันต้องการปิดการใช้งานจำเป็นเพื่อให้ฉันสามารถ sudo ภายในสคริปต์ แต่ฉันจะปิดการใช้งานมันสำหรับคำสั่งเดียวมากกว่าทุกอย่าง เป็นไปได้ว่าภายใน sudoers config?
44 sudo 

1
Ubuntu และ Debian จะจัดการ $ HOME สำหรับผู้ใช้ด้วยสิทธิ์ sudo ได้อย่างไร
ฉันมีสคริปต์ทุบตีmyhome.shที่มีเพียงหนึ่งบรรทัด: echo $HOME เจ้าของสคริปต์เป็นผู้ใช้: $ ls -l myhome.sh -rw-rw-r-- 1 user user <date> <time> myhome.sh ในUbuntu 16.04 และ 17.10ฉันได้รับ: $ echo $HOME /home/user $ sudo echo $HOME /home/user $ bash myhome.sh /home/user $ sudo bash myhome.sh /home/user ในDebian Buster / การทดสอบฉันได้รับ: $ echo $HOME /home/user $ sudo echo $HOME /home/user …
39 bash  debian  ubuntu  sudo  home 


7
ทำไมตัวแปร PATH แตกต่างกันเมื่อทำงานผ่าน sudo และ su
ใน fedora VM ของฉันเมื่อทำงานกับบัญชีผู้ใช้ของฉันฉันมี/usr/local/binในเส้นทางของฉัน: [justin@justin-fedora12 ~]$ env | grep PATH PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin และเช่นเดียวกันเมื่อทำงานsu: [justin@justin-fedora12 ~]$ su - Password: [root@justin-fedora12 justin]# env | grep PATH PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin อย่างไรก็ตามเมื่อเรียกใช้ผ่านsudoไดเรกทอรีนี้ไม่ได้อยู่ในเส้นทาง: [root@justin-fedora12 justin]# exit [justin@justin-fedora12 ~]$ sudo bash [root@justin-fedora12 ~]# env | grep PATH PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin ทำไมเส้นทางที่จะแตกต่างกันเมื่อใช้ผ่านsudo?

1
การปิดใช้งานจำเป็นต้องมีหรือไม่
ฉันพยายามตั้งค่าสคริปต์การปรับใช้โดยใช้Capistrano ในขั้นตอนcap deploy:setupสคริปต์กำลังเชื่อมต่อกับเซิร์ฟเวอร์ของฉันและพยายามเรียกใช้คำสั่งที่สร้างไดเรกทอรี จากนั้นฉันเห็นข้อผิดพลาด:msudo: sorry, you must have a tty to run sudo มีวิธีแก้ไขปัญหาที่แนะนำให้ปิดใช้งาน requiretty บนเซิร์ฟเวอร์ของฉัน https://unix.stackexchange.com/a/49078/26271 ฉันสงสัยว่าจะปลอดภัยหรือไม่
39 security  sudo  tty 

5
sudo ถูกตั้งค่าอย่างไรให้ไม่เปลี่ยน $ HOME ใน Ubuntu และจะปิดการทำงานนี้ได้อย่างไร?
บน Ubuntu 12.04 เมื่อฉันsudo -sตัวแปร $ HOME ไม่เปลี่ยนแปลงดังนั้นหากผู้ใช้ปกติของฉันregularuserสถานการณ์จะเป็นดังนี้: $ cd $ pwd /home/regularuser $ sudo -s # cd # pwd /home/regularuser ฉันเลิกใช้ Ubuntu ไปนานแล้วดังนั้นฉันจึงไม่แน่ใจ แต่ฉันคิดว่านี่เป็นพฤติกรรมเริ่มต้น ดังนั้นคำถามของฉันคือ: ไตรมาสที่ 1 สิ่งนี้ทำได้อย่างไร การกำหนดค่าอยู่ที่ไหน ไตรมาสที่ 2 ฉันจะปิดการใช้งานได้อย่างไร แก้ไข: ขอบคุณสำหรับคำตอบซึ่งชี้แจงสิ่งเล็กน้อย แต่ฉันคิดว่าฉันต้องเพิ่มคำถามสองสามข้อเพื่อให้ได้คำตอบที่ฉันกำลังมองหา ไตรมาสที่ 3 ใน Debian sudo -sเปลี่ยนแปลงตัวแปร $ HOME /rootเพื่อ จากสิ่งที่ฉันได้รับจากคำตอบและman sudoกระสุนที่วิ่งไปsudo -sนั้นเป็นที่ได้รับ/etc/passwdใช่ไหม? ไตรมาสที่ 4 …

2
ฉันจะใช้อาร์กิวเมนต์คำสั่งกับ Cmnd_Alias ​​ใน sudoers ได้อย่างไร
ฉันจะระบุอาร์กิวเมนต์คำสั่งใน sudoers ได้อย่างไร ในฐานะพื้นหลังawsคำสั่งนั้นเป็นประตูสู่กลุ่มย่อยของระบบย่อยทั้งหมดและฉันต้องการ จำกัด ผู้ใช้ให้ทำงานเท่านั้นaws s3 cp ...any other args... เมื่อฉันลองทำสิ่งต่อไปนี้ /etc/sudoers Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws s3 cp, /usr/local/aws/bin/aws s3 cp gbt1 ALL=(gbt-ops) NOPASSWD: AWSS3_CMD เชลล์โชคไม่ดีที่แจ้งให้ใส่รหัสผ่าน $ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1 gbt-ops's password: ถ้าฉันลบคำสั่งเกิดขึ้นใน Cmnd_Alias ​​มันจะไหลตามที่ต้องการ (โดยไม่ต้องใส่รหัสผ่าน) แต่การอนุญาตนั้นกว้างเกินไป ดังนั้นอะไรคือวิธีที่เหมาะสมในการ จำกัด การเรียกใช้คำสั่งบางประเภทเท่านั้น Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws, …
36 sudo 

4
ทำไม“ sudo su” ในเชลล์สคริปต์ไม่ทำงานส่วนที่เหลือของสคริปต์เป็นรูท
สคริปต์ตัวอย่างสามารถเป็นด้านล่าง: #!/bin/bash sudo su ls /root เมื่อใช้./test.shในฐานะผู้ใช้ปกติแทนที่จะเรียกใช้lsในฐานะผู้ใช้ขั้นสูงและออกจากระบบจะเปลี่ยนเป็นรูท และเมื่อฉันออกจากระบบจะดำเนินการls /rootในฐานะผู้ใช้ปกติ ใครสามารถบอกฉันเกี่ยวกับกลไกเกี่ยวกับเรื่องนี้ได้บ้าง
36 shell  shell-script  sudo  root  su 

1
ทำไมคำสั่ง #include และ #includedir ใน sudo นำหน้าด้วยอักขระ pound (#)
ในขณะที่ตั้งค่าsudoสภาพแวดล้อมฉันสังเกตเห็นว่าคำสั่ง include นั้นนำหน้าด้วยอักขระ pound (#) Solaris แสดงสิ่งนี้เป็น: ## Read drop-in files from /etc/sudoers.d ## (the '#' here does not indicate a comment) #includedir /etc/sudoers.d สถานะคู่มือ (Linux และ Solaris): การรวมไฟล์อื่น ๆ จากภายใน sudoers เป็นไปได้ที่จะรวมไฟล์ sudoers อื่น ๆ จากภายในไฟล์ sudoers ที่กำลังวิเคราะห์คำโดยใช้คำสั่ง #include และ #includedir และ: อักขระพิเศษอื่น ๆ และคำสงวนเครื่องหมายปอนด์ (`# ') ใช้เพื่อระบุความคิดเห็น (เว้นแต่เป็นส่วนหนึ่งของคำสั่ง …
36 sudo 

7
ฉันจะระงับเอาต์พุต dd ได้อย่างไร
ddฉันมีสคริปต์ทุบตีที่สร้างไฟล์โดยใช้ ปัญหาคือ dd ส่งเอาต์พุตจำนวนมากที่ไปยุ่งกับเอาต์พุตของสคริปต์ของฉัน การค้นหารอบ ๆ ฉันพบวิธีแก้ปัญหาแล้ว: dd if=boot1h of="/dev/r$temp1" >& /dev/null มีทางเลือกอื่นหรือเปลี่ยนเส้นทางไปสู่/dev/nullทางเดียวหรือไม่?
35 bash  sudo  su  dd 

13
ฉันสามารถสร้าง * super * super-user เพื่อที่ฉันจะได้มีผู้ใช้ที่สามารถปฏิเสธการรูทได้หรือไม่?
ฉันคิดว่าอาจเป็นประโยชน์ที่จะมีผู้ใช้ที่มีสิทธิ์สูงกว่าผู้ใช้รูท คุณจะเห็นว่าฉันต้องการเก็บกิจกรรมทั้งหมดและสิทธิ์ผู้ใช้รูทที่มีอยู่เกือบทั้งหมดอย่างที่เป็นอยู่ในตอนนี้ อย่างไรก็ตามฉันต้องการความสามารถในการปฏิเสธสิทธิ์ในการรูทกรณีที่แยกได้เป็นกรณี ๆ ไป ข้อดีอย่างหนึ่งของการทำเช่นนี้จะทำให้ฉันสามารถป้องกันไม่ให้มีการติดตั้งไฟล์ที่ไม่ต้องการในระหว่างการอัพเดต นี่เป็นเพียงตัวอย่างหนึ่งของความได้เปรียบที่เป็นไปได้ เนื่องจากการอัปเดต apt-get นั้นดำเนินการโดยรูทหรือด้วยสิทธิ์ sudo apt-get จึงมีความสามารถในการแทนที่ไฟล์ที่ไม่ต้องการในระหว่างการอัพเดต หากฉันสามารถปฏิเสธสิทธิพิเศษเหล่านี้ให้กับไฟล์เหล่านี้ได้ฉันสามารถกำหนดให้เป็นลิงค์ไปยัง/dev/nullหรืออาจมีไฟล์ตัวยึดตำแหน่งว่างที่อาจมีสิทธิ์ที่จะปฏิเสธไม่ให้แทนที่ไฟล์ในระหว่างการอัปเดต นอกจากนี้ฉันไม่สามารถช่วยได้ แต่ได้รับการเตือนเกี่ยวกับบรรทัดที่ถูกกล่าวในการสัมภาษณ์กับหนึ่งในผู้สร้างอูบุนตูเมื่อชายคนนั้นพูดบางอย่างเกี่ยวกับวิธีที่ผู้ใช้เชื่อถือ "us" (อ้างอิงจาก Ubuntu devs) "เพราะเรามีราก "ซึ่งเป็นการอ้างอิงถึงวิธีการอัปเดตระบบด้วยการอนุญาตรูท เพียงแค่เปลี่ยนขั้นตอนการติดตั้งเพื่อแก้ไขปัญหานี้ไม่ใช่สิ่งที่ฉันสนใจที่นี่ ตอนนี้ความคิดของฉันมีรสชาติสำหรับความคิดที่ว่ามีอำนาจที่จะปฏิเสธการเข้าถึงรูทฉันอยากจะหาวิธีที่จะทำให้สิ่งนี้เกิดขึ้นเพียงเพื่อการทำเช่นนั้น ฉันเพิ่งคิดเกี่ยวกับเรื่องนี้และไม่ได้ใช้เวลาในความคิดจนถึงตอนนี้และฉันค่อนข้างมั่นใจว่าจะสามารถหาคำตอบได้ อย่างไรก็ตามฉันอยากรู้ว่าสิ่งนี้ได้ทำไปแล้วหรือว่านี่อาจไม่ใช่แนวคิดหรือแนวคิดใหม่ โดยทั่วไปดูเหมือนว่าควรมีวิธีที่จะมีผู้ใช้ super super ซึ่งจะได้รับอนุญาตนอกเหนือจากระบบโดยเพียงหนึ่งองศา หมายเหตุ: แม้ว่าฉันรู้สึกว่าคำตอบที่ยอมรับนั้นตรงกับเกณฑ์มากที่สุด แต่ฉันชอบคำตอบของ @CR ด้วย ฉันต้องการสร้างผู้ใช้จริงบนต้นไม้ (ฉัน) แต่ฉันเดาว่าฉันจะต้องนั่งลงวันหนึ่งเมื่อฉันมีเวลาคิดออก นอกจากนี้ฉันไม่ได้พยายามเลือกบน Ubuntu ที่นี่ ฉันจะไม่ใช้มันเป็น distro หลักของฉันถ้าฉันรู้สึกเชิงลบเกี่ยวกับเรื่องนี้
34 permissions  sudo  users  root 

5
ไม่พบคำสั่ง Bash Sudo
ฉันได้ตั้งค่า VM โดยใช้ turnkey linux redmine และฉันพยายามที่จะ SSH เข้าสู่เซิร์ฟเวอร์เพื่อติดตั้งบางรายการเพิ่มเติม ดูเหมือนจะไม่รู้จักคำสั่ง sudo ทุกครั้งที่ฉันพยายาม sudo สิ่งที่ฉันได้รับข้อผิดพลาดว่า: -bash: sudo: command not found ฉันอ่านที่อื่นเพื่อพิมพ์ 'whereis sudo' และผลลัพธ์คือ: sudo:
33 bash  sudo 


3
ฉันจะรู้ได้อย่างไรว่าฉันเป็น sudoer?
ระบบ Linux ทำงานอย่างไรเมื่อฉันไม่ได้ sudoer? นี่คือสิ่งที่เกิดขึ้นถ้าฉันพยายามใช้ sudo: server:/tmp>$ sudo cal [sudo] password for user: Sorry, try again. เป็นไปได้หรือไม่ที่ฉันไม่ทราบรหัสผ่านหรือสิ่งนี้หมายความว่าฉันไม่ได้เป็นคนโง่? (ในระบบเครื่องอื่นพิมพ์ออกมาว่าฉันไม่มี sudoer และเหตุการณ์จะถูกรายงาน)
32 permissions  sudo  root 

4
ข้อผิดพลาด“ X ไม่ได้อยู่ในไฟล์ sudoers เหตุการณ์นี้จะถูกรายงาน” หมายถึงปรัชญา / เหตุผล?
ที่ด้านข้างคำถาม " ชื่อผู้ใช้ไม่ได้อยู่ในไฟล์ sudoers เหตุการณ์นี้จะถูกรายงาน " ซึ่งอธิบายลักษณะเชิงโปรแกรมของข้อผิดพลาดและแนะนำวิธีแก้ไขปัญหาบางอย่างฉันต้องการทราบ: ข้อผิดพลาดนี้หมายถึงอะไร X is not in the sudoers file. This incident will be reported. ส่วนแรกของข้อผิดพลาดจะอธิบายอย่างชัดเจนถึงข้อผิดพลาด แต่ส่วนที่สองบอกว่า "ข้อผิดพลาดนี้จะถูกรายงาน"! แต่ทำไม ทำไมข้อผิดพลาดจะถูกรายงานและที่ไหน ถึงผู้ซึ่ง? ฉันเป็นทั้งผู้ใช้และผู้ดูแลระบบและไม่ได้รับรายงานใด ๆ :)!

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