Linux笔记 10
Linux
权限与指令间的关系
1. 让使用者能进入某目录成为【可工作目录】的基本权限为:
- 可使用的指令:例如 cd 等变换工作目录的指令;
- 目录所需权限:使用者对这个目录至少需要具有 x 权限;
- 额外需求:如果使用者想要在这个目录内利用 ls 查阅档名,则使用者对此目录还需要 r 权限。
2. 使用者在某个目录内读取一个档案的基本权限为:
- 可使用的指令:例如 cat,more,less 等等;
- 目录所需权限:使用者对这个目录至少需要 x 权限;
- 档案所需权限:使用者对档案至少需要 r 的权限才行。
3. 让使用者可以修改一个档案的基本权限为:
- 可使用的指令:例如 nano 或 vi 编辑器;
- 目录所需权限: 使用者在该档案所在的目录至要有 x 权限;
- 档案所需权限:使用者对档案至少需要 r,w 的权限。
4.让一个使用者可以建立一个档案的基本权限为:
- 目录所需权限:使用者在该目录要具有 w,x 的权限。
5. 让使用者进入某目录并执行该目录下的某个指令的基本权限为:
- 目录所需权限:使用者在该目录至少有 x 权限;
- 档案所需权限:使用者在该档案至少需要有 x 权限。
例
例1:让一个使用者 ylt 能够进行 【cp /dir1/file1 /dir2】的指令时,dir1,file1,dir2 的最小权限为?
答:执行 cp 时,ylt 要能够【读取来源档,并且写入目标档】。所以各档案/目录的最小权限为:
- dir1:至少需要有 x 权限;
- file1:至少需要有 r 权限;
- dir2:至少需要有 w,x 权限。
例2:有一个档案全名为 /home/student/www/index.html ,各相关档案/目录的权限如下:
drwxr-xr-x 23 root root 4096 Sep 22 12:09 /
drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home
drwx------ 6 student student 4096 Sep 29 02:23 /home/student
drwxr-xr-x 6 student student 4096 Sep 29 02:24 /home/student/www
-rwxr--r-- 6 student student 369 Sep 29 02:27 /home/student/www/index.html
请问 ylt 这个帐号(不属于 student 群组)能否读取 index.html 这个档案?
答:目录结构是有根目录一层一层读取的, ylt 不会读取到 index.html 的内容。
重点回顾
- 绝对路径:【一定有根目录 / 写起】;相对路径:【不由 / 写起,而是由相对当前目录写起】;
- 特殊目录有: ., .., -, ~, ~account 需要注意;
- 与目录相关的指令有:cd, mkdir, rmdir, pwd 等重要指令;
- rmdir 仅能删除空目录,要删除非空目录需要[rm -r]指令;
- 使用者能使用的指令是依据 PATH 变数所规定的目录去搜寻的;
- ls 可以检视档案的属性,尤其 -d, -a, -l 等选项特别重要;
- 档案的复制、删除、移动可以分别使用:cp, rm, mv 等指令来操作;
- 检查档案的内容(读档)可使用的指令包括有:cat, tac, nl, more, less, head, tail, od 等;
- cat -n 与 nl 均可显示行号,但在预设的情况下,空白行编号并不相同;
- touch 的目的在修改档案的时间参数,但亦可用来建立空档案;
- 一个档案记录的时间参数有三种,分别是 access time(atime), status time(ctime), modification time(mtime), ls预设显示的是 mtime;
- 除了传统的 rwx 权限之外,在 Ext2/Ext3/Ext4/xfs 档案系统中,还可以使用 chattr 与 lsattr 设定及观察隐藏属性。常见的包括只能新增资料的 +a 与完全不能更动档案的 +i 属性;
- 新建档案/目录时,新档案的预设权限使用 umask 来规范。预设目录完全权限为 drwxrwxrwx,档案则为 -rw-rw-rw-;
- 档案具有 SUID 的特殊权限时,代表当使用者执行此一 binary 程式时,在执行过程中使用者会暂时具有程式拥有者的权限;
- 目录具有 SGID 的特殊权限时,代表使用者在这个目录底下新建的档案之群组都会与该目录的群组名称相同;
- 目录具有 SBIT 的特殊权限时,代表在该目录下使用者建立的档案只有自己与 root 能够删除;
- 观察档案的类型可以使用 file 指令;
- 搜寻指令的完整档名可以用 which 或 type ,这两个指令都是透过 PATH 变数来搜寻档名;
- 搜寻档案的完整档名可以使用 whereis 找特定目录或 locate 到资料库去搜寻,而不实际搜寻档案系统;
- 利用 find 可以加入许多选项来直接查询档案系统,以获得自己想要知道的档名。