检查用户是否可以在运行命令之前访问/ root目录

时间:2015-01-27 23:45:31

标签: linux bash

我有一个家庭作业,要求我用bash脚本在linux终端上打印某些东西。我已经完成了大部分工作,但我仍然坚持我需要做的最后一件事...这就是我教授的措辞

Checks to see if current user has access to /root
 -lists files in the root directory if so
 -Hint: try using 'ls'

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

条件表达式和符号权限

最简单的解决方案是使用Bash conditional expression检查目录读取权限。例如:

[[ -r /root ]] && ls /root

如果您希望直观地检查权限,则可以使用 ls 列出具有-d标志的目录(而不是其内容)。例如:

$ ls -lad /root
drwxr-x---  6 root  wheel  204 Oct 25 04:45 /root

然后,您可以使用symbolic notation解析权限,以查看当前用户是否可以访问其内容,但这样做只是在您可以使用条件或处理直接退出 ls 的状态:

ls /root || echo "Grade: 'F' for effort." > /dev/stderr