测试用户文件的有效权限

dte*_*ech 24 permissions

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

我通常通过su user然后访问文件来执行此操作,但我现在想在没有 shell 的用户(即系统用户)上进行测试

use*_*025 28

我发现在脚本中使用很方便

 sudo -u <user> test -r <file-to-test> && ...
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案,因为您可以在不实际修改/创建文件的情况下测试可读 (-r)、可写 (-w) 和可执行 (-x)。`man test` 了解更多细节 (2认同)

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性、可写性等。

  • 对我来说,这是最有帮助的答案。user72025 的那个很接近,但我不知道结果是什么。你已经说得很清楚了。谢谢。投票赞成。 (2认同)

dte*_*ech 6

我发现您可以使用su -s <shellname> <username>特定用户身份输入特定 shell。然后,您可以照常测试文件权限。

例如:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
Run Code Online (Sandbox Code Playgroud)