Linux的文件权限是如何针对“用户”与“用户组”设置的呢?
1. Linux文件属性
查看文件属性的命令:ls
命令英文原意:list
[root@www ~]# ls -al
total 36
dr-xr-x---. 2 root root 4096 Nov 13 14:51 .
drwxr-xr-x. 18 root root 4096 Nov 13 15:27 ..
-rw-------. 1 root root 1190 Nov 13 14:47 anaconda-ks.cfg
-rw-------. 1 root root 296 Nov 13 15:25 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
[1] [2] [3] [4] [5] [6] [7]
权限 连接 所有者 用户组 文件容量 时间 文件名
上图中:
1. 第一列代表这个文件的文件类型与权限(permission)
在第一列有10个字符,其中:
第一个字符代表这个文件是“目录、文件或链接文件等”。若是[d]则是目录,若是[-]则是文件,若是[l]则是链接文件(linkfile),若是[b]则表示设备文件里面的可供存储的接口设备,若是[c]则表示设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)
接下来的字符中,以3个字符为一组,且均为“rwx”的3个参数的组合。其中[r](read)代表可读、[w](write)代表可写、[x]表可执行(execute)。注意,这个3个权限的位置是不会改变,如果没有权限,会出现减号[-]。
第一组是“文件所有者的权限”,以“anaconda-ks.cfg”那个文件为例,该文件的所有者可以读写,但不可以执行
第二组是"同用户组的权限"。
第三组是“其他非本用户组(其他人)的权限”
2. 第二列代表有多少文件名连接到此节点(i-node)
每个文件都会将它的权限与属性记录到文件系统的i-node中,但是目录树使用文件名来记录,因此每个文件名就会连接到一个i-node。这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。
3. 第三列表示这个文件(或目录)的“所有者账号”
4. 第四列表示这个文件(或目录)的所属用户组
在Linux系统,每个人的账号会附属于一个或多个的用户组中。比如,a,c,c都属于A这个用户组,假设某个文件属于的用户组是A,并且文件的权限是-rwxrwx---,那么a,b,c三个人对于该文件都具有可读,可写,可执行的权限(这里是看用户的权限)。如果是不属于A的其他账号,对于文件就不具有任何权限了。
5 .第五列表示这个文件的容量大小,默认单位为B
6. 第六列表示这个文件的创建日期或者是最近的修改日期
这一列的内容分别是日期(月/日)及时间。如果这个文件被修改的时间距离现在太久,那么时间部分仅仅会显示年份。
如果想要显示完整的时间格式,使用ls的参数,即 ls -l --full-time,就能够显示完整的时间格式了,包括了年、月、日、时间。如果是以简体中文安装的Linux系统,那么日期字段将会以中文来显示。
7. 第七列是这个文件的名字
这个字段就是文件名。较为特殊的是:如果文件名之前多一个“.”,则代表这个文件为“隐藏文件”。可以用 ls -a来查看隐藏文件
这样子知道了linux文件与目录,因此在修改它们之前,一定要搞清楚,什么数据是可变的,什么是不可变的。