Câu trả lời:
Các sudo
lệnh có thể chạy bất cứ điều gì như một người dùng cụ thể với các -u
tùy chọn. Thay vì lo lắng về shell, chỉ cần cố gắng cat
(hoặc thực thi, bất cứ điều gì) tệp của bạn với tư cách là người dùng mục tiêu của bạn:
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
Tôi thấy thuận tiện để sử dụng trong các kịch bản như
sudo -u <user> test -r <file-to-test> && ...
man test
để biết thêm chi tiết
sudo -u <user> test -r <file-to-test>; echo $?
Phần echo $?
này sẽ xuất trạng thái thoát khỏi bài kiểm tra.
Chỉ cần nhớ ở đây rằng đầu ra sẽ là 0
nếu hoạt động thành công! Hoặc khác không, ví dụ 1
, nếu không.
Giống như nhận xét của @ Thomas về câu trả lời của @ user72025, hãy sử dụng man test
để có thêm các bài kiểm tra hoạt động, như test -x
để kiểm tra khả năng thực thi, test -w
cho khả năng ghi, v.v.
cat
có lẽ không phải là sự lựa chọn tốt nhất mặc dù ... bạn đang kiểm tra một tệp lớn hoặc tệp nhị phân ...