Tôi đã có một tệp thuộc sở hữu của người dùng không phải root:
# ls -l example.php
-rw------- 1 foo bar ... example.php
Tôi chỉ áp dụng một bản vá với một lệnh như
patch -p0 <<-EOF
--- .../example.php.orig 2012-06-20 15:07:13.000000000 +0200
+++ .../example.php 2012-06-20 15:43:05.000000000 +0200
...
EOF
như root và nhóm người dùng và nhóm mục tiêu đều được thay đổi thành root
. Tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào trong man
trang này.
Có cách nào để rời khỏi quyền sở hữu tập tin như trước đây mà không sử dụng su
, sudo
hoặc chown
?
su
dường như không thể chỉ định một nhóm.sudo -u foo patch ...
chạy tốt, nhưng đặt nhóm sai.sudo -u foo -g bar patch ...
trả lạiSorry, user root is not allowed to execute '/usr/bin/patch' as foo:bar on hostname
. Điều này có thể là do người dùngfoo
không phải là thành viên của nhómbar
.chown
sẽ có nghĩa là phải lưu trữ các quyền trước khi chạypatch
, thêm hai dòng mã khác.
Bạn có thể hiển thị một ví dụ với quyền sở hữu tệp và lệnh chính xác mà bạn chạy không? Tôi hơi ngạc nhiên khi thấy rằng người dùng root không được phép thực thi ... như foo. Điều đó sẽ chỉ ra rằng bạn đã đăng nhập bằng root và sau đó thực thi sudo. Thông thường bạn chạy sudo để đạt được các đặc quyền nâng cao. Vì vậy, để giúp bạn, chúng tôi cần biết ai sở hữu tệp, ai đang thực hiện lệnh vá, v.v.
—
Bram
@Bram: Làm rõ câu hỏi.
—
l0b0