Linux 目录权限研究

说明

我看了很多文章,没能完全明白 Linux 目录权限,然后想其实可以自己穷举一下,也就只有 64 种组合。
另外,Linux 还有几个特殊文件权限,这里不考虑。

首先写一个最简单脚本,并执行之

#/bin/bash
rm -rf /var/temp
mkdir /var/temp
touch /var/temp/700
touch /var/temp/701
touch /var/temp/702
touch /var/temp/703
touch /var/temp/704
touch /var/temp/705
touch /var/temp/706
touch /var/temp/707
chmod 700 /var/temp/700
chmod 701 /var/temp/701
chmod 702 /var/temp/702
chmod 703 /var/temp/703
chmod 704 /var/temp/704
chmod 705 /var/temp/705
chmod 706 /var/temp/706
chmod 707 /var/temp/707

意思是用 root 身份建立目录,里面加入 8 个文件,涵盖各种权限。
然后用普通用户去做一些事情。包括:

  • 列出目录的内容,
  • 打印目录下各个文件的内容,
  • 给目录下添加一个文件,
  • 删除目录下各个文件,
  • 用 vi 编辑文件。vi 文中没写,但我试过了。

穷举的测试记录

(1)目录权限(—)

root身份执行:chmod 700 /var/temp

切普通用户
ls /var/temp 失败
cat 全部失败
touch /var/temp/123 失败
rm 全部失败

(2)目录权限(–x)

chmod 701 /var/temp

ls /var/temp 失败
cat 前4失败,后4成功。
touch /var/temp/123 失败
rm 全部失败

(3)目录权限(-w-)

chmod 702 /var/temp

ls /var/temp 失败
cat 全部失败
touch /var/temp/123 失败
rm 全部失败

(4)目录权限(-wx)

chmod 703 /var/temp

ls /var/temp 失败
cat 前4失败,后4成功。
touch /var/temp/123 成功
rm 全部成功

(5)目录权限(r–)

chmod 704 /var/temp

ls /var/temp 能看名字,不能看大小等信息。
cat 全部失败
touch 失败
rm 全部失败

(6)目录权限(r-x)

chmod 705 /var/temp

ls 全部成功
cat 前4失败,后4成功。
touch 失败
rm 全部失败

(7)目录权限(rw-)

chmod 706 /var/temp

ls /var/temp 能看名字,不能看大小等信息。
cat 全部失败
touch 失败
rm 全部失败

(8)目录权限(rwx)

chmod 707 /var/temp

ls /var/temp 成功。
cat 前4失败,后4成功。
touch 成功
rm 全部成功


总结

  1. 怎样才能删除一个文件:其目录同时具有wx权限,与文件自身无关。
  2. 怎样才能给目录添加文件:目录同时具有wx权限。
  3. 怎样才能修改一个文件:文件有w权限,目录具有x权限。
  4. 怎样才能打印一个文件内容:文件具有r权限,目录具有x权限。
  5. 怎样才能完全正确的列出目录里的全部文件:目录同时具有rx权限。
  6. 注意到,以上全部5项都需要目录具备x权限。

Linux 真的好麻烦。。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!