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

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

6
sudo over ssh: ไม่มี tty present และไม่ได้ระบุโปรแกรม askpass
ฉันได้รับข้อผิดพลาดนี้และพยายามหลายวิธีที่กล่าวถึงทางออนไลน์เพื่อแก้ไขปัญหานี้ ฉันมีการตั้งค่าคีย์ SSH ดังนั้นเมื่อฉันเรียกใช้'ssh newton@host.com'จะเข้าสู่ระบบโดยอัตโนมัติฉันได้ตั้งค่าผู้ใช้นี้visudoให้เป็น'newton ALL=(ALL:ALL) ALL' ฉันจากนั้นพยายามเพิ่ม'newton ALL=NOPASSWD: /var/www/script.sh' น่าเสียดายที่ทุกครั้งที่วิ่งssh newton@host.com 'sudo /var/www/script.sh'จาก Cygwin ฉันจะกลับมา ฉันได้ลองเพิ่ม-t -tแล้ว แต่จะแจ้งรหัสผ่านให้ฉัน total size is 21209180 speedup is 314.69 sudo: no tty present and no askpass program specified Sorry, try again. sudo: no tty present and no askpass program specified Sorry, try again. …
15 shell  ssh  sudo 

4
sudo ไม่สามารถเปิด / etc / sudoers ได้
sudoไม่ทำงาน, ไม่เป็นผล. ฉันติดตั้ง Arch Linux บนคีย์ USB ที่จัดรูปแบบด้วย BTRFS แล้ว นี่คือผลลัพธ์เมื่อฉันเรียกใช้ 'sudo': $ sudo sudo: unable to stat /etc/sudoers: Permission denied sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin $ ls -l /etc/sudoers -r--r----- 1 root root 2849 May 18 15:00 /etc/sudoers $ lsattr /etc/sudoers …
15 arch-linux  sudo 

3
ข้อแตกต่างระหว่าง“ make install” และ“ sudo make install”
บางครั้งฉันพบปัญหาในการใช้make installซึ่งทำให้ฉันมีpermission deniedข้อผิดพลาดเมื่อเขียนไปยังบางโฟลเดอร์ sudo make installดังนั้นการใช้สัญชาตญาณผม สิ่งนี้จะนำเสนอปัญหาเพิ่มเติมหรือไม่ ฉันใช้ Debian Etch

4
ฉันจะได้รับสภาพแวดล้อมแบบใดด้วย sudo
เมื่อฉันเรียกใช้ sudo จะเกิดอะไรขึ้นกับสภาพแวดล้อมของฉัน เมื่อฉันวิ่งsudo commandมันดูเหมือนจะไม่เห็นสภาพแวดล้อมของฉันหรือรูท ตัวอย่างเช่นพา ธ ของฉันสำหรับทั้งสองรวมถึง/usr/local/binแต่ถ้าฉันพยายามเรียกใช้หนึ่งในโปรแกรมที่ไม่มีพา ธ เต็มเส้นทางจะล้มเหลว ฉันคิดว่า sudo วิ่งตามรูทและด้วยเหตุนี้จึงมีสภาพแวดล้อมของรูท มีวิธีอื่นที่ทุบตีดำเนินการภายใต้ sudo กว่าภายใต้ root หรือผู้ใช้ปกติของฉันได้อย่างไร แก้ไข: ฉันได้ใช้sudo -iเร็ว ๆ นี้ แต่เมื่อเร็ว ๆ /rootนี้จะได้รับการก่อให้เกิดปัญหาเพราะไดเรกทอรีที่ทำงานปัจจุบันของฉันได้รับการตั้งค่าให้ นี้เป็นตามที่คาดไว้ (sorta) แต่ผมก็ยังไม่เข้าใจว่าทำไม sudo ไม่ได้ตระหนักถึง executables /usr/local/binของฉันใน แก้ไข: ฉันกำลังใช้งาน Fedora 15

2
ulimit PICKLE:“ ไม่อนุญาตให้ใช้งาน” และ“ ไม่พบคำสั่ง”
ฉันพยายามเพิ่มจำนวนไฟล์ที่เปิดสูงสุดสำหรับผู้ใช้ปัจจุบัน > ulimit -n 1024 ฉันพยายามเพิ่มและล้มเหลวดังนี้ > ulimit -n 4096 bash: ulimit: open files: cannot modify limit: Operation not permitted ดังนั้นฉันจึงทำสิ่งที่เป็นธรรมชาติและพยายามเรียกใช้โดยได้รับอนุญาตจาก temp แต่ล้มเหลว > sudo ulimit -n 4096 sudo: ulimit: command not found คำถาม วิธีเพิ่ม ulimit? ทำไมสิ่งนี้จึงเกิดขึ้น ใช้ Fedora 14
15 bash  fedora  sudo  limit 

2
ทำไม sudo -i ไม่ได้ตั้ง XDG_RUNTIME_DIR สำหรับผู้ใช้เป้าหมาย?
XDG_RUNTIME_DIRจำเป็นสำหรับsystemctl --userการทำงาน ฉันได้เซ็ตอัพเซิร์ฟเวอร์ Ubuntu 16.04 เพื่อเรียกใช้เซสชันผู้ใช้ systemd ตอนนี้เมื่อพยายามที่จะจัดการพวกเขาฉันพบว่าเมื่อเปลี่ยนผู้ใช้ผ่านsudo -u $user -iหรือแม้กระทั่งsu - $userสภาพแวดล้อมไม่ได้XDG_RUNTIME_DIRตั้งค่าการป้องกันsystemctl --userจากการทำงาน อย่างไรก็ตามเมื่อฉันsshเข้าสู่ผู้ใช้นั้นจะถูกตั้งค่าอย่างถูกต้อง หากฉันเข้าใจเอกสารอย่างถูกต้องควรตั้งค่านี้libpam-systemdเมื่อสร้างเซสชันผู้ใช้ ชิ้นส่วนของผู้ใช้เริ่มต้นอย่างถูกต้องเนื่องจากมีไดเรกทอรีที่XDG_RUNTIME_DIRควรชี้ ( /run/users/$uid) อยู่ ฉันลังเลที่จะใส่รหัสลงใน.bash_profileเพราะว่าดูเหมือนว่าแฮ็ก (แม้ว่าจะใช้งานได้) เมื่อแพมควรดูแลมัน ฉันสามารถของหลักสูตรเพิ่มXDG_RUNTIME_DIRไปenv_keepในsudoersแต่ที่เพิ่งจะรักษาสภาพแวดล้อมของผู้ sudoing ซึ่งไม่ได้เป็นสิ่งที่ฉันต้องการ ฉันต้องการสภาพแวดล้อมของผู้ใช้เป้าหมาย สิ่งที่ฉันสงสัยจริงๆคือทำไมเซสชั่นนี้ถูกตั้งค่าอย่างถูกต้องด้วยsshแต่ไม่ใช่suหรือsudo -i?
14 ssh  systemd  sudo  pam 


1
จะบอก sudo ให้บรรยายซ้ำอีกครั้งได้อย่างไร?
ฉันปล่อยให้หนึ่งในเพื่อนที่เข้ารหัสของฉันมีสิทธิ์เข้าถึง Raspberry Pi ของฉันและเมื่อฉันตั้งค่าทุกอย่างฉันก็ทดสอบ sudo ในฐานะเขา มันทำให้ฉัน "คำพูด": เราเชื่อว่าคุณได้รับการบรรยายตามปกติจาก ผู้ดูแลระบบท้องถิ่น มันมักจะเดือดลงไปในสามสิ่งนี้: # 1) เคารพความเป็นส่วนตัวของผู้อื่น # 2) คิดก่อนพิมพ์ # 3) ด้วยพลังอันยิ่งใหญ่มาพร้อมความรับผิดชอบที่ดี สิ่งที่ฉันสงสัยคือวิธีบอกให้ sudo ทำซ้ำอีกครั้ง ฉันไม่พบที่เก็บรายการ "ผู้ใช้ที่ถูกเตือน" และฉันไม่ต้องการ overkill และบอกให้ The Speech ทุกครั้ง
13 sudo  users 

3
/ etc / sudoers - Insults - วิธีเพิ่มรายการ insults
ฉันตั้งใจจะเล่นกับ insux linux และเพิ่มขึ้นเล็กน้อย อย่างไรก็ตามฉันสามารถคิดได้ว่าจะเพิ่มการดูถูกเดียว แต่ไม่สามารถแสดงรายการหรือตำแหน่งของไฟล์ที่มีการดูถูกได้
13 linux  sudo 

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

4
คัดลอกไฟล์ที่ได้รับการป้องกันระหว่างเซิร์ฟเวอร์ในหนึ่งบรรทัด?
ฉันต้องการคัดลอกsquid.confจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง เซิร์ฟเวอร์ไม่ได้พูดคุยกัน ฉันต้องการผ่านเวิร์กสเตชันของฉัน เซิร์ฟเวอร์ทั้งสองมีไฟล์ดังนั้นจึงจะถูกเขียนทับบนเป้าหมาย ไฟล์มี600สิทธิ์และเป็นของ root การเข้าสู่ระบบผ่านทางรูต ssh ถูกปิดการใช้งาน ( PermitRootLogin no) ฉันต้องการที่จะทำมันในบรรทัดเดียวถ้าเป็นไปได้เพราะมันจะเป็นส่วนหนึ่งของคู่มือการติดตั้ง ฉันรู้ว่าต้องทำ ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \ ssh target 'tar xzpf - -C /etc/squid/' เพื่อคัดลอกไฟล์ระหว่างเซิร์ฟเวอร์และสงวนสิทธิ์ อย่างไรก็ตามในกรณีนี้ฉันจะได้รับ "ปฏิเสธสิทธิ์" ฉันก็รู้ว่าฉันสามารถทำได้: ssh -t source 'sudo cat /etc/squid/squid.conf' วิธีนี้-tทำให้ sudo เพื่อขอรหัสผ่านของผู้ดูแลระบบก่อนที่จะส่งออกเนื้อหาของไฟล์ ปัญหาคือฉันไม่รู้วิธีรวมเทคนิคเหล่านั้นเป็นสิ่งที่จะขอรหัสผ่าน sudo บนเซิร์ฟเวอร์แต่ละเครื่องและถ่ายโอนไฟล์ไปยังปลายทาง เป็นไปได้ไหม UPDATE : …

2
จะส่งตัวแปรไปยังสคริปต์ที่เปิดใช้งานรูทได้อย่างปลอดภัยได้อย่างไร
คำถามนี้เป็นคำถามทั่วไปและไม่เพียง แต่ใช้กับสถานการณ์ของฉันเท่านั้น แต่ ... ฉันมีเครื่องมือ busybox ขนาดเล็กที่ฉันต้องการให้ผู้ใช้ที่ไม่ใช่รูทสามารถรันสคริปต์เฉพาะกับสิทธิ์พิเศษของรูทได้ ตัวอย่างเช่นบางสิ่งบางอย่างเช่นสคริปต์ขนาดเล็กนี้เพื่อเปิดใช้งาน DHCP โดยที่ตัวแปรเดียว ( $1) เพื่อส่งเข้าสู่ cmdline (!!) คือชื่อโฮสต์ที่จะส่งออก: #!/bin/bash udhcpc -b -i eth0 -h $1 การเรียกใช้ udhcpc เช่นนี้ต้องใช้การเข้าถึงรูทดังนั้นฉันวางแผนที่/etc/sudoersจะแก้ไขเพื่อให้มีบรรทัดนี้: joe ALL = NOPASSWD: /path/to/enable_dhcp.sh ซึ่งควรเปิดใช้งาน "joe" เพื่อให้เรียกใช้สคริปต์นั้นได้อย่างง่ายดายด้วยสิทธิ์พิเศษของรูทเพียงแค่เรียกใช้: sudo /path/to/enable_dhcp.sh และไม่ถูกถามหารหัสผ่าน (ซึ่งเป็นสิ่งที่ฉันต้องการเนื่องจากฉันต้องการให้โจสามารถเขียนสคริปต์นี้ได้) ตอนนี้ .. ฉันรู้แล้ว (หรืออย่างน้อยฉันก็คิดว่า) การใช้$1สคริปต์ที่สามารถรันได้อย่างง่ายดายด้วยสิทธิ์พิเศษของรูทเป็นแนวคิดที่น่ากลัวเพราะคุณสามารถฉีดสิ่งที่คุณต้องการได้ ดังนั้น ... วิธีที่ดีที่สุดในการจัดการกับเรื่องนี้คืออะไร? ฉันจะปล่อยให้โจทำสิ่งที่ฉันต้องการด้วยสิทธิ์ของรูทอนุญาตให้เขาส่งผ่านตัวแปร (หรือทำอย่างนั้นได้อย่างมีประสิทธิภาพเหมือนกับตัวแปรสภาพแวดล้อม) ในขณะที่ไม่เปิดกว้างสำหรับการโจมตีแบบฉีด

3
วิธี จำกัด การเรียกใช้คำสั่งในไดเรกทอรีเฉพาะผ่าน SUDOERS
ฉันสามารถกำหนดค่า sudo (ผ่านไฟล์ sudoers) เพื่อให้ผู้ใช้เรียกใช้chownและchmodคำสั่งในไฟล์หรือไดเรกทอรีใด ๆ ในระบบ อย่างไรก็ตามฉันต้องการให้สิทธิ์แก่ผู้ใช้เพื่อเรียกใช้คำสั่งเหล่านี้ในไฟล์ที่อยู่ใต้/var/www/htmlไดเรกทอรี ฉันจะ จำกัด คำสั่งที่ใช้สิทธิพิเศษเช่นที่ผู้ใช้สามารถเรียกใช้งานได้เฉพาะในไดเรกทอรีที่ระบุไว้ล่วงหน้าเท่านั้น ตัวอย่างเช่น: คำสั่งต่อไปนี้ให้สิทธิ์ 777 index.htmlไฟล์ sudo chmod 777 /var/www/html/index.html ตอนนี้ฉันต้องการดำเนินการสองอย่าง จำกัดsudoเช่นที่ผู้ใช้สามารถเรียกใช้chmodและchownจากภายในเท่านั้น/var/www/html ไม่อนุญาตให้ผู้ใช้รันคำสั่งเหล่านี้ที่อื่นในระบบ (เช่นคำสั่งไม่สามารถรันได้/var/wwwหรือ/var/ftp)
13 sudo 


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 

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