use*_*025 28
我发现在脚本中使用很方便
sudo -u <user> test -r <file-to-test> && ...
Run Code Online (Sandbox Code Playgroud)
ckh*_*han 25
该sudo
命令可以使用该-u
选项以特定用户身份运行任何内容。不用担心 shell,只需尝试cat
(或执行,无论如何)您的文件作为您的目标用户:
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
Run Code Online (Sandbox Code Playgroud)
小智 15
sudo -u <user> test -r <file-to-test>; echo $?
Run Code Online (Sandbox Code Playgroud)
该echo $?
部件将输出测试的退出状态。
请记住,0
如果操作成功,输出将是!或非零,例如1
,如果不是。
就像@Thomas 对@user72025 的回答的评论一样,用于man test
获取更多的操作测试,比如test -x
测试可执行test -w
性、可写性等。
我发现您可以使用su -s <shellname> <username>
特定用户身份输入特定 shell。然后,您可以照常测试文件权限。
例如:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
Run Code Online (Sandbox Code Playgroud)