测试用户对文件的有效权限

测试用户对文件的有效权限

是否可以测试特定用户对文件的有效权限?

我通常通过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

相关内容