Linux系统下每个文件或目录都有权限,权限决定了哪些用户对此文件或目录可读,可写,或者可执行。
权限本身划分为:读Read、写Write、执行eXecute。
权限针对用户的划分:主人User、同组用户Group、其他组用户Other
主人就是文件的所有者,就是创建了该文件的用户。
我们可以先来看一个例子:输入ls -l 查看当前目录下文件的具体信息
我们可以看到每一行前10个字符,例如 -rw - rw- r - - ,那这个是什么意思呢?
解读:
前10位,第1位如果是d,表示这是一个目录,如果是 - ,表示这是一个文件。
第2~4位,分别对应用户的可读(r)、可写(w)、可执行权限(x),如果是-,表示没有该权限。例如:rwx表示文件对该用户可读、可写、可执行,rw-表示可读、可写、不可执行。
第5~7位,同理,是对同组用户而言,第8~10位,是对其它组用户而言。
对于后面的其它字符,解释如下图:
1.权限的设置
有时候,我们需要对一些文件或目录的权限进行修改。权限修改有两种方式,字母修改和数字修改。两种方式都是用chmod命令,只是后接的参数不同。
(1)字母修改方式
chmod u+rwx , g+rwx , o+rwx 1.txt 为主人,同组用户,其它组用户都添加可读、可写、可执行权限。也就是完全权限。
chmod u+r 单独为主人添加可读权限 。
chmod u+rw 单独为主人添加可读可写权限 。
chmod u-r 单独为主人减去可读权限,这里 - 就是移除权限,上面的 + 也可以使用 - 替换。 + 表示添加。
chmod u+r,u-x 单独为主人添加可读权限,移除可执行权限。
chmod u+r,g+r 为主人和同组用户添加可读权限。
chmod +w,-x 为所有组别的用户统一添加可写权限,移除可执行文件。
总结:组别每次可以设置一个或多个,具体权限(rwx)可以一次性设置一个或多个,
注意:普通用户只能给自己家目录的文件设置权限。
(2)数字方式的设置
各个权限对应的数字:
读:4 写 :2 执行 :1 没有权限:0
因此,可以推算出所有权限对应的数字
权限 数字 说明
· --- 0 没有任何权限
--x 1 可执行
-w- 2 可写
-wx 3 可写、可执行
r-- 4 可读
r-x 5 可读、可执行
rw- 6 可读、可写
rwx 7 可读、可写、可执行
示例:为1.txt添加完全权限
chmod 777 1.txt
那么,到底什么情况下使用数字,什么情况下使用字母呢?
如果权限修改较少,就用字母方式,修改较多,就用数字方式。
2.使用权限
(1)文件对权限的使用:
读:是否可以查看文件内容
写:是否可以修改该文件(可以强制写操作)
执行:linux系统里边可以编写shell脚本程序文件,该文件执行过程中可以批量执行文件。(shell文件类似windows系统的批处理文件)。关于shell,可以参考我的另一篇博客。
(2)目录对权限的使用
读:是否可以查看该目录内部的文件信息
写:是否可以给该目录创建、删除文件
执行:指定用户是否可以cd进入该目录
3 . 权限针对文件强制操作
对文件没有r/w写权限,还要修改该文件,可以!强制写保存。
A 对文件有w写权限、没有r读权限,强制写保存,新写入内容会覆盖文件原内容。
B 对文件没有w写权限,可以强制写保存
C 非主人(同组/其他组用户)用户,没有w写权限,强行写保存也不成功
(该文件的上级目录针对当前修改者也没有开放w写权限。强行写保存不成功)
注意:文件被强行写保存后其主人 和 组别就变为修改者对应的属组。