linux - 运行命令前检查用户是否可以访问/根目录

标签 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'

任何帮助将不胜感激。

最佳答案

条件表达式和符号权限

最简单的解决方案是使用 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

关于linux - 运行命令前检查用户是否可以访问/根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28182160/

相关文章:

bash - 您最喜欢使用 Bash 的命令行技巧是什么?

php - 错误 : cannot open . git/FETCH_HEAD:使用 php 脚本进行 git pull 时权限被拒绝

linux - 在fsync中使用mmap是否安全? (fsync将使mmap上的某些页面无效吗?)

bash ;删除一组后缀中的任何一个

linux - 以递归模式列出文件夹中的所有 SVN 存储库 URL

bash - 这两种分割方法在 bash 中有何不同?

linux - 如何通过 ftp 从一台 Linux 机器(客户端)传输加密文件并在另一台 Linux 机器(服务器)上解密

linux - Bash:在循环中使用变量

linux - 如何在 Linux 上获取 4 个并行进程的结果

linux - 我在家里使用了 bash 命令,vim-pathogen 停止工作