找回密码
 快速注册
搜索
查看: 39|回复: 0

Linux列出任何人有权读取的文件

[复制链接]

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-5-24 05:15 |阅读模式
首先列出当前目录的文件(例子的网址是https://users.ox.ac.uk/~dpmp0062/)
  1. ls -l /nfs-mounts/ucalegon.it.ox.ac.uk/web/users/ucalegon.it.ox.ac.uk/2/4/dpmp0062/public_html
复制代码
输出
  1. -rwxrwxrwx  1 dpmp0062 users  848975 Apr 12  2017 B3..pdf
  2. -rwxrwxrwx  1 dpmp0062 users  830643 Apr 12  2017 B3.pdf
  3. -rwxrwxrwx  1 dpmp0062 users  775965 Apr 12  2017 Black Holes and Gravity Waves.pdf
  4. -rw-r--r--  1 dpmp0062 users   44225 Apr 18  2019 CF_1.pdf
  5. -rwxr-xr-x  1 dpmp0062 users   39990 May  4  2021 CF_1_Sol.pdf
  6. -rw-r--r--  1 dpmp0062 users   63883 Apr 18  2019 CF_2.pdf
  7. -rwxr-xr-x  1 dpmp0062 users   36504 May  4  2021 CF_2_Sol.pdf
  8. -rw-r--r--  1 dpmp0062 users   62267 Apr 18  2019 CF_3.pdf
  9. -rwxr-xr-x  1 dpmp0062 users   33368 May  4  2021 CF_3_Sol.pdf
  10. -rw-r--r--  1 dpmp0062 users   60869 Apr 18  2019 CF_4.pdf
  11. -rwxr-xr-x  1 dpmp0062 users   32495 May  4  2021 CF_4_Sol.pdf
  12. -rwxrwxrwx  1 dpmp0062 users  218435 Apr 20  2020 CV.pdf
  13. -rwxr-xr-x  1 dpmp0062 users  297965 Jun 18  2019 Complex_functions_V1.pdf
  14. -rw-r--r--  1 dpmp0062 users  323716 Apr 19 16:29 Complex_functions_V2.pdf
  15. -rwxrwxrwx  1 dpmp0062 users 4196613 Feb 27  2018 Cosmology_Figures.pdf
  16. -rwxrwxrwx  1 dpmp0062 users 2886352 Apr 12  2017 DistanceLadder.pdf
  17. -rwxr-xr-x  1 dpmp0062 users 1844705 Mar  7  2020 Final.pdf
  18. -rwxrwxrwx  1 dpmp0062 users       0 Apr 12  2017 GRCCollection2012.pdf
  19. -rwxrwxrwx  1 dpmp0062 users  122892 Apr 12  2017 GRRevision.pdf
  20. -rwxrwxrwx  1 dpmp0062 users  122892 Feb 27  2018 GRRevision2011-2012.pdf
  21. -rwxrwxrwx  1 dpmp0062 users  142962 Apr 12  2017 GRRevisionSheet2011-2012.pdf
  22. -rwxr-xr-x  1 dpmp0062 users  375872 May 21  2019 Past_Exam.pdf
  23. -rwxr-xr-x  1 dpmp0062 users 4188978 May 21  2019 Past_Exam_Sol_JW.pdf
  24. drwxr-xr-x 12 dpmp0062 users    4096 Apr 19 16:31 Pedro_Ferreira
  25. -rwxrwxrwx  1 dpmp0062 users  101502 Feb 27  2018 ProblemSheet.pdf
  26. -rw-r--r--  1 dpmp0062 users  559170 May  2  2022 Riemann_surface_log.jpg
  27. -rw-r--r--  1 dpmp0062 users  371797 May  2  2022 Riemann_surface_sqrt.png
  28. -rwxrwxrwx  1 dpmp0062 users 2410678 Feb 27  2018 Tests of GR.pdf
  29. -rwxrwxrwx  1 dpmp0062 users 1986010 Apr 12  2017 Tests.pdf
  30. -rwxrwxrwx  1 dpmp0062 users  218282 Apr 12  2017 Thermal.pdf
  31. -rw-r--r--  1 dpmp0062 users     322 Feb 27  2018 index.html
  32. -rwx------  1 dpmp0062 users 7818211 Apr 12  2017 nasa_bhsimulations.mpg
  33. -rwx------  1 dpmp0062 users 7499795 Apr 12  2017 nice_model.mov
复制代码

ls -l的第1列是权限. 如果权限是-rwx------则无法从外网访问,例如最后一行nice_model.mov从外网访问显示You don't have permission to access this resource.
那么如何列出可以从外网访问的文件? 用正则表达式^.......r匹配,第1个字符若为d则为目录,若为-则为普通文件,它后面的9个字符,第6-9个字符是所有人的权限,第6个若为r则任何人有权读取. 在这个例子中
  1. ls -l /nfs-mounts/ucalegon.it.ox.ac.uk/web/users/ucalegon.it.ox.ac.uk/2/4/dpmp0062/public_html | grep -e "^.......r"
复制代码
输出
  1. -rwxrwxrwx  1 dpmp0062 users  848975 Apr 12  2017 B3..pdf
  2. -rwxrwxrwx  1 dpmp0062 users  830643 Apr 12  2017 B3.pdf
  3. -rwxrwxrwx  1 dpmp0062 users  775965 Apr 12  2017 Black Holes and Gravity Waves.pdf
  4. -rw-r--r--  1 dpmp0062 users   44225 Apr 18  2019 CF_1.pdf
  5. -rwxr-xr-x  1 dpmp0062 users   39990 May  4  2021 CF_1_Sol.pdf
  6. -rw-r--r--  1 dpmp0062 users   63883 Apr 18  2019 CF_2.pdf
  7. -rwxr-xr-x  1 dpmp0062 users   36504 May  4  2021 CF_2_Sol.pdf
  8. -rw-r--r--  1 dpmp0062 users   62267 Apr 18  2019 CF_3.pdf
  9. -rwxr-xr-x  1 dpmp0062 users   33368 May  4  2021 CF_3_Sol.pdf
  10. -rw-r--r--  1 dpmp0062 users   60869 Apr 18  2019 CF_4.pdf
  11. -rwxr-xr-x  1 dpmp0062 users   32495 May  4  2021 CF_4_Sol.pdf
  12. -rwxrwxrwx  1 dpmp0062 users  218435 Apr 20  2020 CV.pdf
  13. -rwxr-xr-x  1 dpmp0062 users  297965 Jun 18  2019 Complex_functions_V1.pdf
  14. -rw-r--r--  1 dpmp0062 users  323716 Apr 19 16:29 Complex_functions_V2.pdf
  15. -rwxrwxrwx  1 dpmp0062 users 4196613 Feb 27  2018 Cosmology_Figures.pdf
  16. -rwxrwxrwx  1 dpmp0062 users 2886352 Apr 12  2017 DistanceLadder.pdf
  17. -rwxr-xr-x  1 dpmp0062 users 1844705 Mar  7  2020 Final.pdf
  18. -rwxrwxrwx  1 dpmp0062 users       0 Apr 12  2017 GRCCollection2012.pdf
  19. -rwxrwxrwx  1 dpmp0062 users  122892 Apr 12  2017 GRRevision.pdf
  20. -rwxrwxrwx  1 dpmp0062 users  122892 Feb 27  2018 GRRevision2011-2012.pdf
  21. -rwxrwxrwx  1 dpmp0062 users  142962 Apr 12  2017 GRRevisionSheet2011-2012.pdf
  22. -rwxr-xr-x  1 dpmp0062 users  375872 May 21  2019 Past_Exam.pdf
  23. -rwxr-xr-x  1 dpmp0062 users 4188978 May 21  2019 Past_Exam_Sol_JW.pdf
  24. drwxr-xr-x 12 dpmp0062 users    4096 Apr 19 16:31 Pedro_Ferreira
  25. -rwxrwxrwx  1 dpmp0062 users  101502 Feb 27  2018 ProblemSheet.pdf
  26. -rw-r--r--  1 dpmp0062 users  559170 May  2  2022 Riemann_surface_log.jpg
  27. -rw-r--r--  1 dpmp0062 users  371797 May  2  2022 Riemann_surface_sqrt.png
  28. -rwxrwxrwx  1 dpmp0062 users 2410678 Feb 27  2018 Tests of GR.pdf
  29. -rwxrwxrwx  1 dpmp0062 users 1986010 Apr 12  2017 Tests.pdf
  30. -rwxrwxrwx  1 dpmp0062 users  218282 Apr 12  2017 Thermal.pdf
  31. -rw-r--r--  1 dpmp0062 users     322 Feb 27  2018 index.html
复制代码
只打印最后一列用awk '{print $NF}' 参见awk - Printing the last column of a line in a file
  1. ls -l /nfs-mounts/ucalegon.it.ox.ac.uk/web/users/ucalegon.it.ox.ac.uk/2/4/dpmp0062/public_html | grep -e "^.......r" | awk '{print $NF}'
复制代码

输出
  1. B3..pdf
  2. B3.pdf
  3. Waves.pdf
  4. CF_1.pdf
  5. CF_1_Sol.pdf
  6. CF_2.pdf
  7. CF_2_Sol.pdf
  8. CF_3.pdf
  9. CF_3_Sol.pdf
  10. CF_4.pdf
  11. CF_4_Sol.pdf
  12. CV.pdf
  13. Complex_functions_V1.pdf
  14. Complex_functions_V2.pdf
  15. Cosmology_Figures.pdf
  16. DistanceLadder.pdf
  17. Final.pdf
  18. GRCCollection2012.pdf
  19. GRRevision.pdf
  20. GRRevision2011-2012.pdf
  21. GRRevisionSheet2011-2012.pdf
  22. Past_Exam.pdf
  23. Past_Exam_Sol_JW.pdf
  24. Pedro_Ferreira
  25. ProblemSheet.pdf
  26. Riemann_surface_log.jpg
  27. Riemann_surface_sqrt.png
  28. GR.pdf
  29. Tests.pdf
  30. Thermal.pdf
  31. index.html
复制代码

发现有些文件名(如Tests of GR.pdf)含空格, 只打印最后一列则不是完整的文件名, 需要用awk '{for(i=9; i<=NF; i++) printf "%s ", $i; printf "\n"}'打印第9列直到最后一列
  1. ls -l /nfs-mounts/ucalegon.it.ox.ac.uk/web/users/ucalegon.it.ox.ac.uk/2/4/dpmp0062/public_html | grep -e "^.......r" | awk '{for(i=9; i<=NF; i++) printf "%s ", $i; printf "\n"}'
复制代码
现在输出的都是完整的文件名了:
  1. B3..pdf
  2. B3.pdf
  3. Black Holes and Gravity Waves.pdf
  4. CF_1.pdf
  5. CF_1_Sol.pdf
  6. CF_2.pdf
  7. CF_2_Sol.pdf
  8. CF_3.pdf
  9. CF_3_Sol.pdf
  10. CF_4.pdf
  11. CF_4_Sol.pdf
  12. CV.pdf
  13. Complex_functions_V1.pdf
  14. Complex_functions_V2.pdf
  15. Cosmology_Figures.pdf
  16. DistanceLadder.pdf
  17. Final.pdf
  18. GRCCollection2012.pdf
  19. GRRevision.pdf
  20. GRRevision2011-2012.pdf
  21. GRRevisionSheet2011-2012.pdf
  22. Past_Exam.pdf
  23. Past_Exam_Sol_JW.pdf
  24. Pedro_Ferreira
  25. ProblemSheet.pdf
  26. Riemann_surface_log.jpg
  27. Riemann_surface_sqrt.png
  28. Tests of GR.pdf
  29. Tests.pdf
  30. Thermal.pdf
  31. index.html
复制代码

这些是按文件名A-Z排序的,若按修改时间排序,在ls -l加上-t得到
  1. ls -lt /nfs-mounts/ucalegon.it.ox.ac.uk/web/users/ucalegon.it.ox.ac.uk/2/4/dpmp0062/public_html | grep -e "^.......r" | awk '{for(i=9; i<=NF; i++) printf "%s ", $i; printf "\n"}'
复制代码

这些文件(其中Pedro_Ferreira是一个目录,其它的是普通文件)都可以从外网访问,从新到旧排序:
Pedro_Ferreira
Complex_functions_V2.pdf
Riemann_surface_log.jpg
Riemann_surface_sqrt.png
CF_4_Sol.pdf
CF_3_Sol.pdf
CF_2_Sol.pdf
CF_1_Sol.pdf
CV.pdf
Final.pdf
Complex_functions_V1.pdf
Past_Exam_Sol_JW.pdf
Past_Exam.pdf
CF_4.pdf
CF_3.pdf
CF_2.pdf
CF_1.pdf
Tests of GR.pdf
ProblemSheet.pdf
GRRevision2011-2012.pdf
Cosmology_Figures.pdf
index.html
Thermal.pdf
Tests.pdf
GRRevisionSheet2011-2012.pdf
GRRevision.pdf
GRCCollection2012.pdf
DistanceLadder.pdf
Black Holes and Gravity Waves.pdf
B3.pdf
B3..pdf

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 15:48

Powered by Discuz!

× 快速回复 返回顶部 返回列表