我想列出当前用户可以在bash中读取的所有文件。
我不确定检查它的最佳方法是什么。我正在考虑ls -l | grep <myusername>|<mygroupname>
或find .
的内容,但这并不涉及其他权限。
另外,我正在研究NetBSD盒子。
答案 0 :(得分:0)
考虑下面的2个文件,其中一个可以被用户读取,另一个不能:
[fsilveir@fsilveir tmp]$ ls -l ./test_dir/can_read.txt ./test_dir/cant_read.txt
-rw-r--r--. 1 root root 861784 May 29 20:34 ./test_dir/can_read.txt
-rwx------. 1 root root 0 May 29 20:30 ./test_dir/cant_read.txt
您可以find
使用-perm
选项。使用+r
,您将列出您可以阅读的文件,并使用-r
查找您无法阅读的文件,如下所示:
[fsilveir@fsilveir tmp]$ find . -name "*.txt" -perm -g+r 2>/dev/null
./test_dir/can_read.txt
[fsilveir@fsilveir tmp]$
另一种方法是使用find
和-readable
选项,如下所示:
[fsilveir@fsilveir tmp]$ find . -name "*.txt" -readable
./test_dir/can_read.txt
[fsilveir@fsilveir tmp]$ find . -name "*.txt" ! -readable
./test_dir/cant_read.txt