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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.