查找世界可读的所有目录

时间:2013-09-30 07:23:49

标签: linux bash shell unix

**我无法使用find,因为我收到了权限被拒绝错误

我试图在/学生中找到世界上可读的所有目录。这就是我到目前为止所做的:

grep 'r-x' | cut -c8-10 | ls -l /students | sort | uniq -c

我不明白为什么这不起作用。我告诉shell在ls -l的第8-10个字符中搜索'r-x'的出现,这是其他用户的权限(因此是世界可读的)。然后我正在对输出进行排序,并使用uniq -c显示匹配结果的计数。这是我对我的shell脚本应该做什么的理解,我不明白为什么不是。任何帮助将不胜感激!

出于某种原因,它不仅仅是其他人可读的目录。

这是一些示例输出(我省略了大部分输出)

1 drwx------ 11 lluong   b20107   4096 May 26 11:15 lluong
  1 drwx------ 23 stretbar b20097   4096 Dec 18  2012 stretbar
  1 drwx------  2 slawson  b20003   4096 Mar  2  2013 slawson
  1 drwx------  9 fcunha   b20117   4096 May  2 15:21 fcunha
  1 drwxrwxrwx 10 jwu131   b20117   4096 Jul  2 19:26 jwu131
  1 drwxrwxrwx 14 jadler4  b20127   4096 Oct 11  2012 jadler4
  1 drwxrwxrwx  5 rlicudo1 b20067   4096 Apr  3 15:28 rlicudo1
  1 drwxrwxrwx  8 lkrubner b20107   4096 Oct 25  2011 lkrubner
  1 drwxrwxrwx  9 klau53   b20133   4096 Mar 12  2013 klau53
  1 drwxrwx--x 14 vrobins9 b20123   4096 Mar  4  2013 vrobins9
  1 drwxr-xr-x 10 aguo3    b20107   4096 Sep 24 00:13 aguo3
  1 drwxr-xr-x 10 mdanial  b20123   4096 Apr 10 20:46 mdanial
  1 drwxr-xr-x 11       49 users    4096 Mar 28  2013 trac
  1 drwxr-xr-x 11 rroger12 b20133   4096 May  8 10:00 rroger12
  1 drwxr-xr-x 12 spark15  b20113   4096 May 15  2012 spark15
  1 drwxr-xr-x 18 lulrich1 b20133   4096 Sep 29 22:36 lulrich1
  1 drwxr-xr-x 18 yliu192  b20127   4096 Sep 26 12:19 yliu192
  1 drwxr-xr-x 19 dstein   b20117   4096 Feb  9  2013 dstein
  1 drwxr-xr-x 20 jgarc166 b20127   4096 Sep 12 19:22 jgarc166
  1 drwxr-xr-x  2 root     root    16384 Nov 15  2007 lost+found
  1 drwxr-xr-x  4 jsarno   b20113   4096 Dec  7  2011 jsarno
  1 drwxr-xr-x  6 btaylo19 b20123   4096 Mar  5  2012 btaylo19
  1 drwxr-xr-x  6 dtu      b20093   4096 Apr 18 19:18 dtu
  1 drwxr-xr-x  6 ewu2     b20133   4096 May  4 14:30 ewu2
  1 drwxr-xr-x  6 smeehan  b20053   4096 Aug 29 00:19 smeehan
  1 drwxr-xr-x  6 ybondar2 b20027   4096 May 23  2012 ybondar2
  1 drwxr-xr-x  7 apekar   b20103   4096 May 10 00:22 apekar
  1 drwxr-xr-x  7 root     root     4096 Mar 28  2013 tracprojects
  1 drwxr-xr-x  8 jhsiao   b20117   4096 Jul 26 17:33 jhsiao
  1 drwxr-xr-x  8 xfeng18  b20137   4096 Sep 25 14:42 xfeng18
  1 drwxr-xr-x  9 cmendo26 b20133   4096 Aug 19 01:22 cmendo26
  1 drwx-----x  8 amissiro b20093   4096 May 12 16:00 amissiro
  1 drwx--xr-x 17 apinchuk b20127   4096 May 26 23:03 apinchuk
  1 drwx--x--x 10 aboak    b20093   4096 Feb 18  2013 aboak
  1 drwx--x--x 10 achan123 b20133   4096 Sep  6 21:24 achan123
  1 drwx--x--x 10 acurkend b20133   4096 Jul 10 13:15 acurkend
  1 drwx--x--x 10 akleinii b20133   4096 Jun 21 09:07 akleinii
  1 drwx--x--x 10 akobzar  b20133   4096 Sep 26 18:51 akobzar
  1 drwx--x--x 10 amainett b20137   4096 Sep 22 11:17 amainett
  1 drwx--x--x 10 apewther b20127   4096 Feb  6  2013 apewther
  1 drwx--x--x 10 asyrtsov b20127   4096 Aug 16 10:43 asyrtsov
  1 drwx--x--x 10 bernst   b20135   4096 Sep 23 09:12 bernst
  1 drwx--x--x 10 blilley  b20123   4096 Apr 20 18:08 blilley
  1 drwx--x--x 10 bmckeand b20117   4096 Aug 14 14:17 bmckeand
  1 drwx--x--x 10 bsmith18 b20097   4096 Jun 10 11:19 bsmith18
  1 drwx--x--x 10 bwilli18 b20117   4096 Nov  6  2012 bwilli18
  1 drwx--x--x 10 cbeaton  b20123   4096 May 19 04:07 cbeaton
  1 drwx--x--x 10 cbeck4   b20137   4096 Sep 29 16:08 cbeck4
  1 drwx--x--x 10 cho8     b20093   4096 Mar 24  2013 cho8
  1 drwx--x--x 10 cliu58   b20117   4096 Oct  8  2012 cliu58
  1 drwx--x--x 10 cmitch21 b20133   4096 Mar 10  2013 cmitch21
  1 drwx--x--x 10 cnavarr9 b20127   4096 Apr 30 12:11 cnavarr9
  1 drwx--x--x 10 dbienenf b20123   4096 Mar 20  2012 dbienenf
  1 drwx--x--x 10 dlau13   b20135   4096 Jul 16 12:15 dlau13
  1 drwx--x--x 10 dmok1    b20137   4096 Sep 24 12:50 dmok1
  1 drwx--x--x 10 dnou     b20133   4096 Apr 23 14:12 dnou
  1 drwx--x--x 10 drajabar b20137   4096 Sep  3 20:20 drajabar
  1 drwx--x--x 10 drodri12 b20115   4096 Sep 27 17:25 drodri12
  1 drwx--x--x 10 ealberto b20113   4096 Dec 18  2012 ealberto

4 个答案:

答案 0 :(得分:9)

使用ls

,而不是解析find
find /students -perm -o=r

这将列出/students中世界可读的所有文件和目录。

如果您不想递归到子目录中并且只想找到目录,请说:

find /students -maxdepth 1 -type d -perm -o=r

答案 1 :(得分:0)

  

我告诉shell在ls -l的第8-10个字符中搜索'r-x'的出现,这是其他用户的权限(因此是世界可读的)。

不,你不是。你在线上的任何地方寻找“r-x”,然后取出所发现的第8到第10个字符。

find  /students -mindepth 1 -maxdepth 1 -type d -perm -005 | ...

"Why you shouldn't parse the output of ls(1)"

答案 2 :(得分:0)

ls -lR | grep“^ d”|切-c8-10 | grep'r-x'|排序| uniq -c

答案 3 :(得分:0)

ls -lad */ | grep 'r-x' | sort | uniq -c

-d用于列出ONLY目录。 */告诉* nix仅搜索当前目录。