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

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

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

3
อะไรคือจุดประสงค์ของ“ ความจริง” ใน bash“ ถ้า sudo จริง แล้ว”
ฉันแฮ็กสคริปสคริปต์นี้พร้อมกันซึ่งทดสอบว่าผู้ใช้มีสิทธิ์พิเศษของผู้ใช้ระดับสูงหรือไม่ ในที่สุดฉันกำลังพยายามกลับคำสั่ง 'ถ้า' ที่สองเพื่อให้ฉันสามารถลบสองบรรทัดต่อไปนี้ (echo "รหัสผ่าน ok" และอื่น ๆ ในบรรทัดต่อไปนี้) # Root user only if [[ "$EUID" != 0 ]]; then sudo -k # make sure to ask for password on next sudo if sudo true; then echo "Password ok" else echo "Aborting script" exit 1 fi fi echo "do …
20 bash  sudo 

3
การเปลี่ยนรหัสผ่านของผู้ใช้บางคนจะเปลี่ยนรหัสผ่าน sudo ด้วยหรือไม่
sudoฉันเป็นผู้ใช้เท่านั้นระบบลินุกซ์มิ้นท์ของฉันและฉันสังเกตเห็นว่ารหัสผ่านที่ฉันเลือกที่จะเข้าสู่ระบบก็เช่นเดียวกันที่ได้รับมอบหมายให้ ดังนั้นคำถามของฉันคือ: การเปลี่ยนรหัสผ่านการเข้าสู่ระบบของฉันจะเปลี่ยนรหัสผ่านด้วยsudoหรือไม่ ถ้าไม่ฉันจะเปลี่ยนsudoรหัสผ่านได้อย่างไร
20 sudo  password 

3
ฉันจะรู้ได้อย่างไรว่าสิทธิ์ sudoer หมดเวลาหรือไม่
ฉันกำลังทำงานกับสคริปต์ที่รันคำสั่งเป็น sudo และ echoes บรรทัดข้อความเท่านั้นหากสิทธิ์ sudo ของฉันหมดเวลาดังนั้นหากใช้คำสั่งด้วย sudo จะต้องให้ผู้ใช้ของฉัน (ไม่รูท) เพื่อพิมพ์รหัสผ่านอีกครั้ง ฉันจะตรวจสอบได้อย่างไร โปรดทราบว่า$(id -u)แม้ในขณะที่ทำงานเป็น sudo จะส่งคืนรหัสผู้ใช้ปัจจุบันของฉันดังนั้นจึงไม่สามารถตรวจสอบเพื่อให้ตรงกับ 0 ... ฉันต้องการวิธีที่จะตรวจสอบเรื่องนี้อย่างเงียบ ๆ
20 sudo 

2
ฉันสามารถกำหนดข้อความ sudo“ เหตุการณ์นี้จะได้รับการรายงาน” ได้หรือไม่?
เป็นไปได้บน Linux หรือบนระบบ BSD เพื่อกำหนดข้อความsudo"เหตุการณ์นี้จะถูกรายงาน" ฉันได้ไปมากกว่าman sudoและman sudoersในเครื่องอูบุนตู 16.04 เครื่อง FreeBSD 10.2 และเครื่อง Fedora 23 และฉันไม่ได้พบสิ่งที่มีประโยชน์
20 sudo 

11
Error Vim E138: ไม่สามารถเขียนไฟล์ viminfo $ HOME / .viminfo!
ฉันเกรงว่าฉันจะเจอสิ่งที่ค่อนข้างแปลก เมื่อฉันเปิดไฟล์ตามปกติvim README.txtทุกอย่างเรียบร้อยดี แต่เมื่อsudo vim README.txtไฟล์แสดงผลว่างเปล่าและทำให้ฉันมีE138: Can't write viminfo file $HOME/.viminfo!ข้อผิดพลาดเมื่อพยายามที่จะออก ฉันสงสัยว่า.viminfoไฟล์เสียหายดังนั้นฉันจึงลบมัน ปัญหานี้ยังคงอยู่ ใครช่วยได้บ้าง
20 permissions  vim  sudo  root 

3
ฉันสามารถหาเอกสารเกี่ยวกับคำสั่ง“ sudo !!” ได้ที่ไหน
ฉันเพิ่งเรียนรู้ว่า Linux มีsudo !!คำสั่งที่ใช้sudoกับคำสั่งที่ป้อนล่าสุดอย่างแท้จริง ฉันไม่เคยได้ยินเรื่องนี้เลย นั่นคือการควบคุมร่วมกันหรือไม่? ฉันจะหาเอกสารเกี่ยวกับมันได้ที่ไหน
20 bash  sudo 

4
ไม่ได้ติดตั้ง 'sudo' ฉันไม่สามารถติดตั้งได้และจะถามว่าฉันรูทหรือไม่
ฉันเพิ่งติดตั้ง Debian 8 (เจสซี) เสร็จแล้วและพยายามสร้างไดเรกทอรีในlib/firmwareเนื่องจากมีไฟล์ขาดหายไป ( rtl8723befw.bin) ในการติดตั้งและมันบอกว่า mkdir: cannot create directory `rtlwifi`: Permission denied ฉันลองวาง sudo ไว้ด้านหน้า แต่แล้วมันกลับมา: bash: sudo: command not found เมื่อพยายามติดตั้ง sudo ด้วยapt-get install sudoหรือapt-get updateส่งคืนค่า: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), …

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 

2
จะฆ่ากระบวนการที่ระบุว่า "ไม่อนุญาตให้ดำเนินการ" เมื่อพยายามทำอย่างไร
ฉันมีกระบวนการที่ฉันต้องการฆ่า: computer@ubuntu:~$ ps aux | grep socat root 2092 0.0 0.0 5564 1528 pts/1 T 14:37 0:00 sudo socat TCP:xxx.17.29.152:54321 PTY,link=/dev/ttyGPS0,raw,echo=0,mode=666 computer@ubuntu:~$ kill 2092 -bash: kill: (2092) - Operation not permitted <--------------- How to kill ??
20 sudo  kill 

1
อนุญาตให้แขกบางคนดำเนินการคำสั่งบางอย่าง
ฉันต้องการสร้างผู้ใช้ใหม่บนโฮสต์ Debian / Ubuntu บางแห่งที่สามารถอัปเดตเซิร์ฟเวอร์โดยใช้คำสั่งapt-get updateและapt-get dist-upgradeแต่ฉันไม่ต้องการให้พวกเขาเข้าถึง sudo อย่างเต็มที่เพื่อให้สามารถทำสิ่งอื่นได้ เป็นไปได้ไหม อาจมีวิธีการสร้างสคริปต์ที่ไม่สามารถแก้ไข แต่สามารถดำเนินการได้ซึ่งจะได้รับการดำเนินการในฐานะผู้ใช้รูท?

5
มีวิธีบอก sudo เพื่อตั้งชื่อผู้ใช้ของฉันเป็นเจ้าของไฟล์ที่สร้างขึ้นแทนการรูทหรือไม่?
ถ้าฉันทำsudo cp /etc/foo.txt ~/foo.txtไฟล์ใหม่จะถูกสร้างขึ้นพร้อมกับrootเป็นเจ้าของ ตอนนี้ฉันไม่เห็นวิธีอื่นนอกเหนือจากการใช้คำสั่งสองคำสั่งสุดท้าย ( lsเพื่อชี้แจงกรณีการใช้งาน): belmin@server1$ ls /etc/foo.txt > -rw------- 1 root root 3848 Mar 6 20:35 /etc/foo.txt > belmin@server1$ sudo cp /etc/foo.txt ~/foo.txt belmin@server1$ sudo chown belmin: $_ ฉันต้องการ: ทำในsudoคำสั่งเดียว ไม่ต้องระบุผู้ใช้ปัจจุบันของฉัน (อาจใช้ตัวแปรหรือไม่)
19 bash  files  sudo 

2
JAVA_HOME ไม่ได้ตั้งค่าในสคริปต์เมื่อเรียกใช้โดยใช้ sudo
ฉันพยายามเรียกใช้สคริปต์การติดตั้งที่ต้องมีการติดตั้งจาวาและJAVA_HOMEตัวแปรสภาพแวดล้อมที่จะตั้งค่า ฉันได้ตั้งJAVA_HOMEใน/etc/profileและยังอยู่ในไฟล์ที่ผมเคยเรียกว่าในjava.sh /etc/profile.dฉันสามารถecho $JAVA_HOMEและได้รับคำตอบที่ถูกต้องและฉันสามารถทำได้sudo echo $JAVA_HOMEและได้คำตอบที่ถูกต้อง ในฉันพยายามที่จะวิ่งผมแทรกinstall.sh echo $JAVA_HOMEเมื่อฉันเรียกใช้สคริปต์นี้โดยไม่sudoเห็นไดเรกทอรี java; เมื่อฉันเรียกใช้สคริปต์ด้วยsudoมันจะว่างเปล่า ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น? ฉันใช้ CentOS

2
การดำเนินการคำสั่ง if จากพรอมต์คำสั่ง
ในทุบตีฉันสามารถทำต่อไปนี้: if [ -f /tmp/test.txt ]; then echo "true"; fi อย่างไรก็ตามหากฉันเพิ่มsudoไว้ด้านหน้ามันจะไม่ทำงานอีกต่อไป: sudo if [ -f /tmp/test.txt ]; then echo "true"; fi -bash: syntax error near unexpected token `then' ฉันจะทำให้มันทำงานได้อย่างไร

3
ฉันจะให้ผู้ใช้ sudo -u $ ใช้ผู้ใช้ env ได้อย่างไร
ดูเหมือนว่าเมื่อsudoไอเอ็นจีลงว่าการใช้sudo -u $userว่าสภาพแวดล้อมของรากยังคงถูกนำมาใช้ ฉันจะsudoใช้สภาพแวดล้อมของผู้ใช้ได้อย่างไร ในฐานะโน้ตพิเศษผู้ใช้ทุกคนที่ฉันจะใช้งานนี้มีเชลล์ล็อกอิน
19 security  sudo 

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