Câu trả lời:
Các sudolệnh có thể chạy bất cứ điều gì như một người dùng cụ thể với các -utù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à 0nế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 -wcho khả năng ghi, v.v.
catcó 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 ...