295
京东网上商城
Linux档案权限
因为 Linux 是多人多工的 OS, 所以, 档案系统必须要有一套严密的保护措施, 以免, 因为有意或无意的人为破坏, 造成混乱及损失.
. Linux 将档案分成三种身份、四种权限:
三种身份是:
- u: 自己(user)
- g: 和自己同一组的人(group)
- o: 其它人 (other)
而 a 则是代表所有的人.
每种身份皆有四种可能的权限:
- r : 读取权 (read)
- w : 写入权 (write)
- x :执行权 (execute)
及: (上面这三种权限用得最多, 以下则较少用, 也请尽量不使用, 除非你确实知道你在做啥么?!)
- s : set user id / set group id 及 t : sticky bit (简称为 sst 模式)
4000 : set user id, 2000 set group id, 1000 set sticky bit
Linux 用 9 个 bits 来代表档案的权限, 如下所示:
- | - - - | - - - | - - - |
- | rwx | rwx | rwx |
拥有人 | 同组人 | 其它人 |
每三个形成一组, 由左至右, 分别代表拥有人、同组人、其它人的权限.
每一组的三个位置, 由左至右为: 读取,写入,执行的权限, 若该位置只有一条线, 则表示不具有该权限.
另外, 我们也用数字来代表不同的权限:
- 读取: 4
- 写入: 2
- 执行: 1
如果某档, 其拥有的权限为 rwx 的话, 那么, 我们便把它们所代表的数字大小加起来, 即 4+2+1 =7
以下是可能的组合:
--- | 0 |
--x | 1 |
-w- | 2 |
r-- | 4 |
-wx | 2+1=3 |
r-x | 4+1=5 |
rw- | 4+2=6 |
rwx | 7 |
因为所有可能的组合, 其权限大小仅 0 ~ 7的范围,
所以, 我们也将它视为一种八进位的数字系统, 并且常常用数字来表示某一个档案的权限开放的程度.
例子:
拥 档 有 案 档 种 案 档案大小 最近修改的 类 档案权限 数 拥有人 组别 (byte单位)日期及时间 档案名称
drwx--x--x 7 kv kv 4096 2月 3 14:25 .
drwxr-xr-x 7 root root 4096 2月 1 11:56 ..
-rw------- 1 kv kv 10 2月 3 14:25 .bash_history
-rw-r--r-- 1 kv kv 24 2月 1 11:50 .bash_logout
-rw-r--r-- 1 kv kv 191 2月 1 11:50 .bash_profile
-rw-r--r-- 1 kv kv 124 2月 1 11:50 .bashrc
-rw-r--r-- 1 kv kv 238 2月 1 11:50 .emacs
-rw------- 1 kv kv 88 2月 1 21:27 .forward
-rw-r--r-- 1 kv kv 120 2月 1 11:50 .gtkrc
drwxr-xr-x 2 kv kv 4096 2月 3 14:19 html
drwxr-xr-x 3 kv kv 4096 2月 1 11:50 .kde
drwx------ 2 kv kv 4096 2月 1 12:36 mail
drwx------ 8 kv kv 4096 2月 1 12:34 .openwebmail
-rw------- 1 kv kv 12288 2月 1 21:27 .vacation
-rw------- 1 kv kv 329 2月 1 21:27 .vacation.msg
drwxr-xr-x 2 kv kv 4096 2月 3 14:23 webdisk
以上图为例:
webdisk是一个普通的资料夹档案, 其拥有人是 kv, 组别是kv, 该档案的权限是:
- 拥有人: 可读,可写,可执行
- 同组人: 可读,可执行 (但不可写)
- 其它人: 可读,可执行 (但不可写)
用八进位数字来表示, 该档权限为: 755
试问: 以下权限其对应的八进位数字是多少?
rwx--x--x | |
r--r--r-- | |
rw-rw-rw- | |
--x--x--x | |
rwxrwxrwx | |
r-xr-xr-x |
试问: 以下八进位数字其对应的权限为何?
611 | |
755 | |
666 | |
544 | |
733 | |
634 |
2. 改变权限的方法.
有两种改变档案权限的方法:
- 八进位数字模式
- 符号模式
使用的指令是: chmod (change mode : change the access permissions of files)
方法如下:
chmod 权限 档案/目录
例:
- chmod 666 myfile
- chmod 777 myfile
- chmod 755 myfile
- chmod 111 myfile
以上是採八进位数字模式
- chmod u+x myfile
- chmod u-x myfile
- chmod ug+x myfile
- chmod g-x myfile
- chmod o+x myfile
- chmod o-x myfile
- chmod a+x myfile
- chmod a-x myfile
- chmod a=x myfile
- chmod u=wr myfile
- chmod go=rx myfile
以上是採符号模式.
+ 表增加该种权限
- 表去掉该种权限
= 表设定作该种权限
3. 目录的权限.
目录的权限, 观念及设法, 同于档案的权限, 但其包含的意义则大不相同.
以 "可执行的" 这个权限而言, 对档案来说, 若该档设为可执行的话, 其意义很容易了解, 但如果将目录设为可执行, 那么难道目录真的是可以执行的吗? :-Q
当然不是.
Linux 对于目录的权限, 另有一套看法:
r | 可列出目录中的档案名称, 即 ls 有作用 |
w | 在该目录中, 可删档,改档名,建新档 |
x | 可以进入该目录之中(重要观念, 用处大) |
如果某一个目录下, 尚有许多档案和子目录, 有无方法可以一次改变所有的档案权限呢?
当然有.
chmod -R 权限 目录名称
其中 -R 表示 Recursively change permissions of directories and their contents, 意即递迴地将其下的所有档案、目录全数改变.
4. 改变档案的拥有者(owner) 或 组别 (group)
通常这只有 root 等级的使用者, 才有此项权力. (否则就天下大乱了! 不过, 某些 Uuix clone 开放有限制的作法)
方法如下:
chown [-R] owner:group 档案/目录
例:
chown -R 3slo:hacker /home/ols3
5. umask(档案的安全滤网).
什么是 umask ? umask 是在新建立一个档案或目录时, 档案权限的遮罩值.
其运作方式是: 将系统的预设值减去 umask 值, 就是最后档案/目录的权限.
一般而言, 新建档案的预设值是 666, 新建目录的预设值是 777, 如果 umask 定为 022,
那么一个新的档案建立时, 其真正的权限应该是 666-022=644
新的目录建立时, 其权限则是 777-022=755
有了 umask 的话, 新建的档案及目录, 会比较安全一点.
如何得知目前的 umask 值是多少呢?
下 umask
原文地址:https://s2.naes.tn.edu.tw/~kv/file.htm
最后更新:2017-04-03 07:57:00