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

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

7
ทำไมฉันต้องใช้ tty ในการเรียกใช้ sudo ถ้าฉันสามารถ sudo โดยไม่มีรหัสผ่าน
ผมได้กำหนดค่าsudoให้ทำงานโดยไม่มีรหัสผ่าน แต่เมื่อฉันพยายามผมยังได้รับข้อความแสดงข้อผิดพลาดssh 'sudo Foo'sudo: sorry, you must have a tty to run sudo เหตุใดสิ่งนี้จึงเกิดขึ้นและฉันจะแก้ไขได้อย่างไร
226 ssh  sudo  tty 

7
กลุ่ม "ล้อ" ได้ชื่อมาจากไหน?
โดยทั่วไปwheelกลุ่มในคอมพิวเตอร์ * ระวังจะหมายถึงกลุ่มที่มีการเข้าถึงรูทแบบคล้าย ๆ กัน ฉันได้ยินมาว่าในบางระบบ * มันเป็นกลุ่มของผู้ใช้ที่มีสิทธิ์รันsuแต่บน Linux ที่ดูเหมือนว่าจะเป็นใครก็ได้ (แม้ว่าคุณจะต้องใช้รหัสผ่านรูทตามธรรมชาติ) ในการแจกแจงลินุกซ์ฉันใช้มันดูเหมือนว่าจะเป็นกลุ่มที่โดยค่าเริ่มต้นมีสิทธิ์ที่จะใช้sudo; มีรายการsudoersสำหรับพวกเขา: %wheel ALL=(ALL) ALL แต่นั่นคือทั้งหมดของวงสัมผัส; คำถามที่เกิดขึ้นจริงของฉันคือทำไมกลุ่มนี้เรียกว่าwheel ? ฉันเคยได้ยินคำอธิบายเบ็ดเตล็ดมาก่อน แต่ไม่ทราบว่ามีสิ่งใดถูกต้องหรือไม่ ไม่มีใครรู้ประวัติที่แท้จริงของคำศัพท์นี้หรือไม่?
220 sudo  history  group  su 

13
วิธีการรันโปรแกรมเฉพาะในฐานะรูทโดยไม่ต้องใส่รหัสผ่าน?
ฉันจำเป็นต้องเรียกใช้บางสิ่งบางอย่างเป็น sudo โดยไม่ต้องใช้รหัสผ่านดังนั้นฉันจึงใช้visudoและเพิ่มลงในsudoersไฟล์ของฉัน: MYUSERNAME ALL = NOPASSWD: /path/to/my/program จากนั้นฉันก็ลองดู: $ sudo /path/to/my/program [sudo] password for MYUSERNAME: ทำไมถึงถามรหัสผ่าน? ฉันจะรัน / ใช้คำสั่งในฐานะรูทกับผู้ใช้ที่ไม่ใช่รูทโดยไม่ต้องขอรหัสผ่านได้อย่างไร
169 sudo 

7
วิธีที่จะทำให้ `sudo 'รักษา $ PATH ได้อย่างไร
ฉันต้องการเรียกใช้โปรแกรมที่ติดตั้งบน / opt / godi / sbin (ไดเรกทอรีที่กำหนดเอง) หากฉันเพิ่มไดเรกทอรีนั้นลงใน PATH ของฉันโดยเพิ่มบรรทัดต่อไปนี้ลงในไฟล์. bashrc ของฉัน export PATH=$PATH:/opt/godi/bin:/opt/godi/sbin จากนั้นฉันสามารถลองเรียกใช้คำสั่งได้ดี (ยกเว้นว่ามันล้มเหลวเพราะมันต้องการ sudo) อย่างไรก็ตามเมื่อฉันพยายามใช้ sudo: sudo godi_console ฉันได้รับข้อผิดพลาดดังต่อไปนี้ sudo: godi_console: command not found การตรวจสอบตัวแปร PATH หลังจากใช้ sudo เผยให้เห็นว่ามันไม่รวม PATH เดียวกันกับที่ฉันเป็นผู้ใช้ปกติ: $ sudo sh # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ทำไม PATH ถึงไม่เหมือนกัน? ฉันกำลังทำอะไรผิดหรือเปล่า? ฉันใช้ Debian Jessie และโชคไม่ดีที่ฉันไม่สามารถแก้ไขปัญหานี้ได้ด้วยการส่งผ่าน …
123 sudo  path 

8
วิธีใดที่ปลอดภัยที่สุดในการรับสิทธิ์รูท: sudo, su หรือ login
ฉันต้องการให้บัญชีรูทมีความปลอดภัยแม้ว่าผู้ใช้ที่ไม่มีสิทธิ์ของฉันจะถูกบุกรุก บน Ubuntu คุณสามารถใช้ sudo ได้เฉพาะ "เหตุผลด้านความปลอดภัย" เท่านั้น อย่างไรก็ตามฉันไม่แน่ใจว่ามันปลอดภัยกว่าแค่ใช้ล็อกอินบนคอนโซลโหมดข้อความ มีหลายสิ่งหลายอย่างที่อาจผิดปกติได้หากผู้โจมตีสามารถเรียกใช้รหัสในฐานะผู้ใช้ปกติของฉันได้ ตัวอย่างเช่นการเพิ่มชื่อแทนการเพิ่มสิ่งต่างๆลงใน PATH ของฉันการตั้งค่าคีย์ล็อกเกอร์ LD_PRELOAD และ X11 เพื่อพูดถึงบางอย่าง ข้อได้เปรียบเดียวที่ฉันเห็นคือหมดเวลาดังนั้นฉันจึงไม่ลืมที่จะออกจากระบบ ฉันมีข้อสงสัยเหมือนกันเกี่ยวกับ su แต่มันไม่มีเวลา จำกัด การดำเนินการบางอย่าง (โดยเฉพาะการเปลี่ยนเส้นทาง IO) มีความมั่นใจมากขึ้นกับ su แต่การรักษาความปลอดภัยที่ชาญฉลาดน่าจะแย่กว่านี้ การลงชื่อเข้าใช้บนคอนโซลโหมดข้อความนั้นปลอดภัยที่สุด เนื่องจากมันเริ่มต้นโดย init หากผู้โจมตีสามารถควบคุม PATH หรือ LD_PRELOAD ได้ กิจกรรม keypress ไม่สามารถดักจับโดยโปรแกรมที่ทำงานบน X ฉันไม่รู้ว่าโปรแกรมที่ทำงานบน X สามารถดักจับ [ctrl] + [alt] + [f1] (และเปิดหน้าต่างเต็มหน้าจอที่ดูเหมือนคอนโซล) หรือ …
120 security  sudo  login  su  privileges 

7
การเปลี่ยนเส้นทาง stdout ไปยังไฟล์ที่คุณไม่ได้รับอนุญาตให้เขียน
เมื่อคุณพยายามแก้ไขไฟล์โดยไม่ได้รับอนุญาตให้เขียนคุณจะได้รับข้อผิดพลาด: > touch /tmp/foo && sudo chown root /tmp/foo > echo test > /tmp/foo zsh: permission denied: /tmp/foo Sudoing ไม่ได้ช่วยเพราะมันรันคำสั่งในฐานะ root แต่เชลล์จัดการการเปลี่ยนเส้นทาง stdout และเปิดไฟล์เหมือนคุณ > sudo echo test > /tmp/foo zsh: permission denied: /tmp/foo มีวิธีง่าย ๆ ในการเปลี่ยนเส้นทาง stdout ไปยังไฟล์ที่คุณไม่ได้รับอนุญาตให้เขียนนอกจากเปิดเชลล์เป็นรูทและจัดการไฟล์ด้วยวิธีนี้หรือไม่? > sudo su # echo test > /tmp/foo

8
ความต้องการคำสั่ง 'fakeroot' ใน linux คืออะไร
ทำไมเราต้องมีfakerootคำสั่งเลย? เราไม่สามารถเพียงแค่ใช้sudoหรือsuคำสั่ง? หน้าคนพูดว่า: fakeroot - รันคำสั่งในสภาพแวดล้อมที่ปลอมแปลงสิทธิ์ของรูทสำหรับการจัดการไฟล์ About.com พูดว่า: ให้สภาพแวดล้อมของรูทปลอม แพคเกจนี้มีวัตถุประสงค์เพื่อเปิดใช้งานบางอย่างเช่น: dpkg-buildpackage -rfakerootเพื่อลบความต้องการที่จะกลายเป็นรากสำหรับการสร้างแพคเกจ นี้จะกระทำโดยการตั้งค่าLD_PRELOADการlibfakeroot.soซึ่งมีห่อรอบgetuid, chown, chmod, mknod, stat, ... , ดังนั้นการสร้างสภาพแวดล้อมที่รากของปลอม หากคุณไม่เข้าใจสิ่งนี้คุณไม่จำเป็นต้องทำfakeroot! คำถามของฉันคืออะไรมันมีวัตถุประสงค์พิเศษอะไรที่แก้ง่าย ๆsuหรือsudoเปล่า? ตัวอย่างเช่นสำหรับการแบ่งบรรจุหีบห่อที่ติดตั้งใหม่ทั้งหมดใน ubuntu เราให้คำสั่งต่อไปนี้: $ fakeroot -u dpkg-repack `dpkg --get-selections | grep install | cut -f1` เราสามารถทำคำสั่งข้างต้นกับ sudo หรือ su แทน fakeroot ดังนี้: $ sudo dpkg-repack `dpkg --get-selections …
93 sudo  su 

3
su vs sudo -s vs sudo -i vs sudo bash
ความแตกต่างระหว่างคำสั่งต่อไปนี้คืออะไร: su sudo -s sudo -i sudo bash ฉันรู้ว่าsuฉันต้องรู้รหัสผ่านรูทและsudoฉันต้องอยู่ในsudoersไฟล์ แต่เมื่อดำเนินการแล้วจะมีความแตกต่างอะไรบ้าง? ฉันรู้ว่ามีความแตกต่างระหว่างsuและsudo -sเพราะไดเรกทอรีบ้านของฉันคือ/rootหลังจากที่ผมดำเนินการsuแต่ไดเรกทอรีบ้านของฉันยังคงหลัง/home/myname sudo -sแต่ฉันสงสัยว่านี่เป็นเพียงอาการของความแตกต่างพื้นฐานที่ฉันหายไป
89 sudo  su 

9
ชื่อผู้ใช้ไม่ได้อยู่ในไฟล์ sudoers เหตุการณ์นี้จะถูกรายงาน
ฉันใช้ Ubuntu 12.04 บนแล็ปท็อปของฉันโดยใช้ VMware Player ฉันไม่แน่ใจว่าทำไม แต่ฉันมีบัญชีชื่อ "บัญชีผู้ใช้" นอกเหนือจากบัญชีของฉันที่ฉันมักจะเข้าสู่ระบบเพื่อใช้ Ubuntu นั่นเป็นเพียงความเห็นด้านข้าง แต่โดยพื้นฐานแล้วทั้งหมดที่ฉันพยายามทำคือติดตั้งไลบรารี ncurses บน Ubuntu ฉันได้ลองติดตั้ง ncurses โดยใช้บรรทัดคำสั่งต่อไปนี้: sudo apt-get install libncurses5-dev sudo apt-get install ncurses-dev เมื่อฉันลองติดตั้ง ncurses สองครั้งโดยใช้คำสั่งด้านบนฉันได้รับพรอมต์ต่อไปนี้ในเทอร์มินัล: [sudo] password for username เมื่อฉันพิมพ์รหัสผ่านฉันได้รับข้อความต่อไปนี้: username is not in the sudoers file. This incident will be reported. จนถึงตอนนี้ฉันได้ลองเปิดใช้งานบัญชีผู้ใช้รูท ("Super User") …
85 sudo 

2
ทำไมเราต้องใช้ visudo แทนการแก้ไขไฟล์ sudoers โดยตรง
ผมเข้าใจว่าถ้าคุณต้องการที่จะปรับเปลี่ยนผู้ที่สามารถใช้และสิ่งที่พวกเขาสามารถทำอะไรกับมันที่คุณควรใช้sudo visudoฉันรู้ว่าฉันไม่ควรแก้ไขไฟล์ / etc / sudoers โดยตรงด้วยตนเอง มันคืออะไรvisudoที่แก้ไขไฟล์โดยตรงไม่ได้? มีอะไรผิดพลาด?
83 sudo 

2
มีเหตุผลที่ดีในการใช้งาน sudo su หรือไม่?
ในการเปิดรูทเชลล์บนเครื่องที่ปิดใช้งานบัญชีรูทคุณสามารถเรียกใช้หนึ่งใน: sudo -i: เรียกใช้เปลือกเข้าสู่ระบบแบบโต้ตอบ (อ่าน/root/.bashrcและ/root/.profile) sudo -s: เรียกใช้เปลือกโต้ตอบที่ไม่ใช่การเข้าสู่ระบบ (อ่าน/root/.bashrc) ในโลกอูบุนตูฉันมักจะเห็นsudo suคำแนะนำว่าเป็นวิธีที่จะได้รูทเชลล์ ทำไมต้องรันสองคำสั่งแยกกันเมื่อจะทำ? เท่าที่ผมสามารถบอกได้sudo -iเทียบเท่ากับsudo su -และเป็นเช่นเดียวกับsudo -ssudo su ความแตกต่างเพียงอย่างเดียวดูเหมือนจะ (เปรียบเทียบsudo -iด้านซ้ายและsudo su -ด้านขวา): และเปรียบเทียบsudo -s(ซ้าย) และsudo su(ขวา): ความแตกต่างหลัก (ละเว้นSUDO_fooตัวแปรและLS_COLORS) ดูเหมือนจะเป็นXDG_fooตัวแปรระบบในsudo suรุ่น มีกรณีใดบ้างที่ทำให้ใบสำคัญแสดงสิทธิที่แตกต่างกันใช้ค่อนข้างไม่เหมาะสมsudo su? ฉันสามารถบอกผู้คนได้อย่างปลอดภัย (อย่างที่ฉันมักมี) ว่าไม่มีจุดใดในการวิ่งsudo suหรือไม่มีอะไรเลย?

2
ตัวเลือก su - ใช้คำสั่งเป็นผู้ใช้อื่น
ฉันสงสัยว่าจะเรียกใช้คำสั่งในฐานะผู้ใช้อื่นจากสคริปต์ได้อย่างไร ฉันมีเจ้าของสคริปต์ตั้งค่าเป็นรูท ฉันยังมีคำสั่งต่อไปนี้ถูกเรียกใช้ภายในสคริปต์เพื่อเรียกใช้คำสั่งเป็นผู้ใช้ฮัดสัน: su -c command hudson นี่เป็นไวยากรณ์ที่ถูกต้องหรือไม่
75 bash  scripting  su  sudo 

3
internals of sudo ทำงานอย่างไร
วิธีการที่ไม่sudoทำงานภายใน? วิธีการที่จะเป็นไปได้ว่ามันจะกลายเป็นรากโดยไม่ต้องมีรหัสผ่านรากแตกต่างsu? อะไร syscalls ฯลฯ มีส่วนร่วมในกระบวนการ? ไม่ใช่ช่องโหว่ความปลอดภัยที่อ้าปากค้างใน Linux (เช่นทำไมฉันจึงไม่สามารถคอมไพล์โปรแกรมปะแก้sudoที่ทำตามปกติsudoไม่ได้ แต่ไม่ได้ขอรหัสผ่านของผู้ใช้ที่ไม่ได้รับสิทธิพิเศษ)? ฉันได้อ่านเข้าสู่ระบบและ internals ฉันได้อ่านด้วยsudo ตั้งใจจะใช้อย่างไร แต่แม้จะมีชื่อที่พวกเขาส่วนใหญ่จัดการกับความแตกต่างระหว่างและsusudo
74 sudo  root  privileges 

5
กลายเป็นรากจากภายในเป็นกลุ่ม
บางครั้งฉันเริ่มแก้ไขไฟล์การกำหนดค่า/etcโดยใช้ Vim แต่ลืมใช้sudoเพื่อเริ่ม Vim ผลลัพธ์ที่หลีกเลี่ยงไม่ได้คือหลังจากเสร็จสิ้นการแก้ไขของฉันฉันพบการแจ้งเตือนที่หวั่นเกรงว่าฉันไม่มีสิทธิ์ในการบันทึกไฟล์ การแก้ไขส่วนใหญ่มีขนาดเล็กพอที่ฉันเพิ่งออกจากกลุ่มและทำสิ่งทั้งหมดอีกครั้งในฐานะที่เป็นราก แน่นอนฉันสามารถบันทึกไปยังสถานที่ที่ฉันสามารถเขียนและคัดลอกเป็นราก แต่ก็ค่อนข้างน่ารำคาญ แต่ฉันแน่ใจว่ามีวิธีที่ง่ายกว่าในการรูทหรือใช้sudoจากภายใน Vim โดยไม่ต้องละทิ้งการเปลี่ยนแปลง หากวิธีการนี้จะไม่พึ่งพาsudoการตั้งค่าสำหรับผู้ใช้ที่จะดียิ่งขึ้น
72 vim  sudo  root 

18
การเข้าถึงรูทที่ไม่สามารถเปลี่ยนรหัสผ่านรูตได้
เรากำลังมีปัญหาเล็กน้อยบนเซิร์ฟเวอร์ เราต้องการให้ผู้ใช้บางคนสามารถทำได้เช่นsudoและกลายเป็นรูท แต่ด้วยข้อ จำกัด ที่ผู้ใช้ไม่สามารถเปลี่ยนรหัสผ่านรูทได้ นั่นคือการรับประกันว่าเรายังสามารถเข้าสู่เซิร์ฟเวอร์นั้นและกลายเป็นรูทไม่ว่าผู้ใช้รายอื่นจะทำอะไร เป็นไปได้ไหม
66 ubuntu  security  sudo 

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