mở rộng phạm vi của sudo?


1

Bạn có thể sử dụng sudomột lệnh duy nhất để chạy nó với các đặc quyền siêu người dùng:

sudo echo "hi"

Nhưng khi tôi sử dụng đường ống với lệnh:

sudo echo "hi" > /a.txt

Đặc quyền siêu người dùng không mở rộng đến phần pipe ( > /a.txt) và tôi gặp lỗi khi bị từ chối cấp phép:

bash: /a.txt: Quyền bị từ chối

Câu hỏi của tôi là:

Có một cú pháp trong đó tôi có thể mở rộng phạm vi sudoở trên để cũng làm việc trên phần đường ống không?

Câu trả lời:


6

Chạy lệnh trong trình bao nâng cao gốc và sau đó chuyển hướng I / O của bạn cũng sẽ được thực hiện dưới dạng root:

sudo bash -c 'echo "hi" > /a.txt'

Nếu bạn không muốn tạo một subshell để làm điều này, đây là một cách giải quyết với tee:

echo "hi" | sudo tee /a.txt > /dev/null

Tài nguyên bổ sung:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.