是否可以测试特定用户对文件的有效权限?
我通常通过su user
然后访问文件来执行此操作,但现在我想在没有 shell 的用户(即系统用户)上测试它
答案1
我发现在类似的脚本中使用很方便
sudo -u <user> test -r <file-to-test> && ...
答案2
该sudo
命令可以使用该选项以特定用户身份运行任何内容-u
。不用担心 shell,只需尝试cat
(或执行,无论什么)作为目标用户的文件:
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
答案3
sudo -u <user> test -r <file-to-test>; echo $?
该echo $?
部分将输出测试的退出状态。
请记住这里的输出将是0
请记住,如果操作是,成功的!或者非零,例如1
,如果不是的话。
喜欢@托马斯的评论关于@user72025的答案,用于man test
获取更多操作测试,例如test -x
测试可执行性、test -w
可写性等。
答案4
我发现您可以用来su -s <shellname> <username>
以特定用户身份进入特定的 shell。然后您可以照常测试文件权限。
例如:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template