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

คำสั่ง sudo เป็นคำย่อของ "แทนผู้ใช้ do" (เช่นเดียวกับทำคำสั่งราวกับว่าเริ่มต้นโดยผู้ใช้รายอื่น) Sudo เป็นโปรแกรมสำหรับระบบปฏิบัติการคอมพิวเตอร์แบบ Unix และ Unix ที่อนุญาตให้ผู้ใช้รันโปรแกรมด้วยสิทธิ์ความปลอดภัยของผู้ใช้รายอื่น (โดยปกติคือ superuser หรือ root)

7
เสียงเรียกว่า“ เขียนด้วย sudo” ของกลุ่มทำงานอย่างไร?
หลายคนคงเคยเห็นคำสั่งที่ให้คุณเขียนไฟล์ที่ต้องการการอนุญาตรูทถึงแม้ว่าคุณจะลืมเปิด vim ด้วย sudo: :w !sudo tee % สิ่งคือฉันไม่ได้รับสิ่งที่เกิดขึ้นตรงนี้ ฉันคิดแล้ว: wสำหรับสิ่งนี้ *:w_c* *:write_c* :[range]w[rite] [++opt] !{cmd} Execute {cmd} with [range] lines as standard input (note the space in front of the '!'). {cmd} is executed like with ":!{cmd}", any '!' is replaced with the previous command |:!|. ดังนั้นจึงผ่านทุกบรรทัดเป็นอินพุตมาตรฐาน !sudo teeส่วนสายteeที่มีสิทธิ์ผู้ดูแลระบบ …
1410 vim  sudo 

30
NPM พ่นข้อผิดพลาดโดยไม่ต้อง sudo
ฉันเพิ่งติดตั้งโหนดและ npm ผ่านแพ็คเกจบน nodejs.org และเมื่อใดก็ตามที่ฉันพยายามค้นหาหรือติดตั้งบางสิ่งด้วย npm มันจะพ่นข้อผิดพลาดต่อไปนี้เว้นแต่ว่าฉันจะใช้คำสั่ง sudo ฉันรู้สึกว่านี่เป็นปัญหาการอนุญาตหรือไม่ ฉันเป็นผู้ดูแลระบบอยู่แล้ว npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json' npm ERR! { [Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/Users/chietala/.npm/-/all/.cache.json' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! …
1286 node.js  unix  permissions  npm  sudo 

15
ฉันจะใช้ sudo เพื่อเปลี่ยนเส้นทางผลลัพธ์ไปยังตำแหน่งที่ฉันไม่ได้รับอนุญาตให้เขียนได้อย่างไร
ฉันได้รับสิทธิ์เข้าถึง sudo บนหนึ่งในกล่อง RedHat linux ที่พัฒนาของเราและดูเหมือนว่าฉันมักจะพบว่าตัวเองต้องเปลี่ยนเส้นทางไปยังตำแหน่งที่ปกติแล้วฉันไม่มีสิทธิ์เข้าถึงเพื่อเขียน ปัญหาคือตัวอย่างที่วางแผนไว้นี้ไม่ทำงาน: sudo ls -hal /root/ > /root/test.out ฉันเพิ่งได้รับคำตอบ: -bash: /root/test.out: Permission denied ฉันจะทำให้เรื่องนี้ทำงานได้อย่างไร

14
sudo echo“ something” >> / etc / privilegedFile ไม่ทำงาน
นี่เป็นคำถามที่ค่อนข้างง่ายอย่างน้อยก็น่าจะเป็นไปได้เกี่ยวกับการอนุญาต sudo ใน Linux มีหลายครั้งที่ฉันแค่อยากจะต่อท้าย/etc/hostsไฟล์หรือไฟล์ที่คล้ายกัน แต่ท้ายที่สุดก็ไม่สามารถทำได้เพราะทั้งคู่>และ>>ไม่ได้รับอนุญาตแม้แต่กับรูท มีบางประการเพื่อให้งานนี้ได้โดยไม่ต้องsuหรือsudo suเข้าสู่ราก?

26
วิธีการแก้ไขข้อผิดพลาด 'sudo: ไม่มี tty present และไม่มีโปรแกรม askpass ที่ระบุไว้'
ฉันพยายามรวบรวมบางแหล่งโดยใช้ makefile ใน Makefile sudoมีพวงของคำสั่งที่จะต้องวิ่งตาม เมื่อฉันคอมไพล์แหล่งที่มาจากเทอร์มินัลทุกอย่างไปได้ดีและทำให้หยุดชั่วคราวในครั้งแรกที่sudoคำสั่งถูกรันเพื่อรอรหัสผ่าน เมื่อฉันพิมพ์รหัสผ่านให้ดำเนินการต่อและดำเนินการให้เสร็จสมบูรณ์ แต่ฉันต้องการรวบรวมแหล่งข้อมูลใน NetBeans ดังนั้นฉันเริ่มโครงการและแสดง netbeans ว่าจะหาแหล่งที่มาได้อย่างไร แต่เมื่อฉันรวบรวมโครงการมันทำให้เกิดข้อผิดพลาด: sudo: no tty present and no askpass program specified ครั้งแรกที่พบsudoคำสั่ง ฉันค้นหาปัญหาบนอินเทอร์เน็ตและวิธีแก้ไขทั้งหมดที่ฉันพบชี้ไปที่สิ่งหนึ่ง: การปิดใช้งานรหัสผ่านสำหรับผู้ใช้รายนี้ เนื่องจากผู้ใช้ที่สงสัยนี่คือรูต ฉันไม่ต้องการทำเช่นนั้น มีวิธีแก้ปัญหาอื่น ๆ อีกไหม?
438 linux  sudo  tty 

6
วิธีเก็บตัวแปรสภาพแวดล้อมเมื่อใช้ sudo
เมื่อฉันใช้คำสั่งใด ๆ กับ sudo ตัวแปรสภาพแวดล้อมจะไม่อยู่ที่นั่น ยกตัวอย่างเช่นหลังจากการตั้งค่า http_proxy คำสั่งปรับการทำงานได้โดยไม่ต้องwget sudoอย่างไรก็ตามถ้าฉันพิมพ์sudo wgetมันบอกว่ามันไม่สามารถข้ามการตั้งค่าพร็อกซี

17
เหตุใด sudo จึงเปลี่ยนเส้นทาง
นี่คือPATHตัวแปรที่ไม่มี sudo: $ echo 'echo $PATH' | sh /opt/local/ruby/bin:/usr/bin:/bin นี่คือPATHตัวแปรที่มี sudo: $ echo 'echo $PATH' | sudo sh /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin เท่าที่ผมสามารถบอกได้sudoว่าควรจะปล่อยให้PATHใครแตะต้อง เกิดอะไรขึ้น? ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร (นี่คือ Ubuntu 8.04) UPDATE: เท่าที่ฉันเห็นไม่มีสคริปต์ใดที่เริ่มต้นเมื่อมีการเปลี่ยนแปลงPATHในทางใดทางหนึ่ง จากman sudo: เพื่อป้องกันการปลอมแปลงคำสั่ง sudo จะทำการตรวจสอบ ``. '' และ `` '' (ทั้งเครื่องหมายไดเรกทอรีปัจจุบัน) สุดท้ายเมื่อค้นหาคำสั่งในเส้นทางของผู้ใช้ (ถ้าหนึ่งหรือทั้งสองอยู่ในเส้นทาง) อย่างไรก็ตามโปรดทราบว่าตัวแปรสภาพแวดล้อม PATH ที่แท้จริงไม่ได้ถูกแก้ไขและถูกส่งผ่านไม่เปลี่ยนแปลงไปยังโปรแกรมที่ sudo ดำเนินการ

11
วิธีการใช้ sudo ภายในตู้เทียบท่า?
ปกติภาชนะนักเทียบท่าจะทำงานโดยใช้ผู้ใช้ราก ฉันต้องการใช้ผู้ใช้อื่นซึ่งไม่มีปัญหาในการใช้คำสั่ง USER ของนักเทียบท่า แต่ผู้ใช้รายนี้ควรใช้sudoภายในคอนเทนเนอร์ได้ คำสั่งนี้หายไป นี่คือ Dockerfile ง่าย ๆ สำหรับจุดประสงค์นี้: FROM ubuntu:12.04 RUN useradd docker && echo "docker:docker" | chpasswd RUN mkdir -p /home/docker && chown -R docker:docker /home/docker USER docker CMD /bin/bash ใช้ภาชนะนี้ฉันเข้าสู่ระบบด้วยผู้ใช้ 'นักเทียบท่า' เมื่อฉันพยายามใช้ sudo คำสั่งไม่พบ ดังนั้นฉันจึงพยายามติดตั้งแพ็กเกจsudoใน Dockerfile ของฉันโดยใช้ RUN apt-get install sudo ส่งผลให้ไม่สามารถระบุตำแหน่งแพ็กเกจ sudo ได้

9
เปิดไฟล์ที่มี su / sudo ใน Emacs
สมมติว่าผมต้องการที่จะเปิดไฟล์ในเซสชั่นที่มีอยู่ Emacs ใช้suหรือsudoโดยไม่ต้องวางลงไปที่เปลือกและการทำหรือsudoedit sudo emacsวิธีหนึ่งในการทำเช่นนี้คือ C-x C-f /sudo::/path/to/file แต่ต้องมีราคาแพงround-trip ผ่าน SSH มีวิธีที่ตรงกว่านี้ไหม? [แก้ไข] @JBB ถูกต้อง ฉันต้องการที่จะสามารถเรียกsu/ sudoเพื่อบันทึกเช่นเดียวกับเปิด มันจะตกลง (แต่ไม่เหมาะ) ให้อนุญาตอีกครั้งเมื่อบันทึก สิ่งที่ฉันกำลังมองหาเป็นรูปแบบของfind-fileและsave-bufferที่สามารถ "ประปา" ผ่าน/susudo

17
ผู้ใช้รูท / เทียบเท่า sudo ใน Cygwin?
ฉันพยายามเรียกใช้สคริปต์ทุบตีใน Cygwin ฉันได้รับMust run as root, i.e. sudo ./scriptnameข้อผิดพลาด chmod 777 scriptname ไม่ทำอะไรเลยที่จะช่วย ฉันได้ค้นหาวิธีเลียนแบบ sudo บน Cygwin เพื่อเพิ่มผู้ใช้รูทตั้งแต่การเรียก "su" ทำให้เกิดข้อผิดพลาดsu: user root does not existสิ่งที่มีประโยชน์และไม่พบอะไรเลย ใครมีข้อเสนอแนะ?
156 bash  cygwin  root  sudo 

5
การติดตั้ง pip: โปรดตรวจสอบการอนุญาตและเจ้าของไดเรกทอรีนั้น
ในขณะที่ติดตั้ง pip และ python ฉันพบสิ่งที่กล่าวว่า ไดเรกทอรี '/ Users / Parthenon / Library / Logs / pi' หรือไดเรกทอรีหลักไม่ได้เป็นของผู้ใช้ปัจจุบันและบันทึกการดีบักถูกปิดใช้งาน โปรดตรวจสอบการอนุญาตและเจ้าของไดเรกทอรีนั้น หากดำเนินการ pip ด้วย sudo คุณอาจต้องการแฟล็ก -H sudoเพราะตอนนี้ผมมีการติดตั้งโดยใช้ ฉันมีงูใหญ่และห้องสมุดจำนวนหนึ่งติดตั้งไว้แล้วบน Mac ของฉันฉันใช้ Yosemite ฉันเพิ่งต้องทำการล้างข้อมูลใหม่ทั้งหมดจากนั้นติดตั้งระบบปฏิบัติการใหม่ ตอนนี้ฉันได้รับพรอมต์นี้และฉันมีปัญหาในการหาวิธีเปลี่ยน ก่อนที่บรรทัดคำสั่งของฉันจะเป็นParthenon$ตอนนี้Philips-MBP:~ Parthenon$ ฉันเป็นเจ้าของคอมพิวเตอร์คนเดียวและนี่เป็นเพียงบัญชีเดียวเท่านั้น นี่ดูเหมือนจะเป็นปัญหาเมื่ออัพเกรดเป็น python 3.4 ไม่มีอะไรน่าจะอยู่ในตำแหน่งที่ถูกต้อง virtualenv ไม่ไปตามที่ฉันคาดไว้เป็นต้น
155 python  pip  sudo  osx-yosemite 

10
วิธีการเรียกใช้สองคำสั่งใน sudo
มีวิธีใดบ้างที่ฉันจะเรียกใช้คำสั่ง Db2 สองคำสั่งจากบรรทัดคำสั่งได้? (พวกเขาจะถูกเรียกจากexecคำสั่งPHP ) db2 connect to ttt (โปรดทราบว่าเราจำเป็นต้องมีการเชื่อมต่ออยู่สำหรับคำสั่งที่สอง db2 UPDATE CONTACT SET EMAIL_ADDRESS = 'mytestaccount@gmail.com' ฉันลองสิ่งนี้: sudo -su db2inst1 db2 connect to ttt; db2 UPDATE CONTACT SET EMAIL_ADDRESS = 'mytestaccount@gmail.com' คำสั่งแรกดำเนินการอย่างถูกต้อง แต่คำสั่งที่สองล้มเหลวพร้อมกับข้อความแสดงข้อผิดพลาด SQL1024N A database connection does not exist. SQLSTATE=08003 โปรดทราบว่าฉันต้องเรียกใช้สิ่งนี้ในฐานะผู้ใช้ php คำสั่งsudo -u db2inst1 idในฐานะผู้ใช้phpให้ผลลัพธ์ที่ถูกต้องแก่ฉัน
152 bash  sudo 

9
วิธีที่เหมาะสมในการ sudo มากกว่า ssh
ฉันมีสคริปต์ที่รันสคริปต์อื่นผ่าน SSH บนเซิร์ฟเวอร์ระยะไกลโดยใช้ sudo อย่างไรก็ตามเมื่อฉันพิมพ์รหัสผ่านมันจะปรากฏขึ้นบน terminal (มิฉะนั้นมันจะทำงานได้ดี) ssh user@server "sudo script" วิธีที่เหมาะสมในการทำเช่นนี้คือฉันสามารถพิมพ์รหัสผ่านสำหรับ sudo ผ่าน SSH โดยไม่ต้องใช้รหัสผ่านปรากฏขึ้นในขณะที่พิมพ์
150 ssh  sudo 

21
จะส่งรหัสผ่านไปยัง su / sudo / ssh โดยไม่แทนที่ TTY ได้อย่างไร?
ผมเขียนโปรแกรม C เชลล์ที่จะทำsuหรือหรือsudo sshพวกเขาต้องการรหัสผ่านในอินพุตคอนโซล (TTY) มากกว่า stdin หรือบรรทัดคำสั่ง ไม่มีใครรู้วิธีการแก้ปัญหา? การตั้งค่ารหัสผ่านsudoไม่ได้เป็นตัวเลือก คาดหวัง อาจเป็นตัวเลือก แต่ไม่มีในระบบ stripping down ของฉัน
148 linux  ssh  passwords  sudo  su 

9
ไม่พบคำสั่งเมื่อใช้ sudo
ฉันมีสคริปต์ที่เรียกว่าfoo.shในโฟลเดอร์บ้านของฉัน เมื่อฉันนำทางไปยังโฟลเดอร์นี้และป้อน./foo.shฉันจะได้รับ -bash: ./foo.sh: Permission denied. เมื่อฉันใช้sudo ./foo.shฉันได้รับ sudo: foo.sh: command not found. เหตุใดสิ่งนี้จึงเกิดขึ้นและฉันจะแก้ไขได้อย่างไร
146 linux  bash  sudo 

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