测试用户的文件有效权限


24

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

我通常通过su user访问文件来执行此操作,但是现在我想在没有外壳程序的用户(即系统用户)上对此进行测试

Answers:


23

sudo命令可以使用该-u选项作为特定用户运行任何命令。不必担心shell,只需尝试以cat目标用户身份(或执行)文件即可:

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

cat虽然可能不是最佳选择……但是您正在测试一个大文件还是一个二进制文件……
Alexis Wilke 2015年

24

我发现在脚本中方便使用

 sudo -u <user> test -r <file-to-test> && ...

1
最佳答案,因为您可以测试可读(-r),可写(-w)和可执行(-x),而无需实际修改/创建文件。man test有关更多详细信息
Thomas

12
sudo -u <user> test -r <file-to-test>; echo $?

echo $?部分将输出从测试退出状态。

请记住,0如果操作成功,输出将是或非零,例如1,如果不是。

就像@Thomas对@ user72025答案的评论一样,可man test用于获取更多的操作测试,例如test -x测试可执行test -w性,可写性等。


1
对我来说,这是最有用的答案。user72025的那个接近,但是我不知道结果是什么。您已经说清楚了。谢谢。投票。
启发

6

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

例如:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

非常有趣的选择。
亚历克斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.