Linux系统中的每个文件和目录都有访问许可权限,如下面所示:
要说清楚问题,我们截取一些内容:
ypy@ubuntu:~$ ls -l
drwxr-xr-- 2 ypy ypy 4096 Nov 30 18:33 Desktop/
drwxr-xr-- 2 ypy ypy 4096 Nov 30 18:33 Documents/
drwxr-xr-- 2 ypy ypy 4096 Dec 1 16:01 Downloads/
-rwxrwxr-- 2 ypy ypy 4096 Feb 8 19:59 exercise
-rw-rw-r-- 2 ypy ypy 4096 Dec 1 16:02 file.sh
看上面第一列的内容:
drwxr-xr-- 表示用户权限为:读、写、执行;用户组权限:读、执行;其他权限:读,不能写和执行
-rw-rw-r-- 表示用户权限为:读、写;用户组权限:读、写;其他权限:读,不能写和执行
0123456789(这里,我写个标号,为了后面说明问题方便使用)
接着再深入讲解,正确说的直白一点,下面是必要的知识,需要你记住的:
Linux系统中的每个文件和目录都有访问许可权限,
用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
文件或目录的访问权 限分为只读,只写和可执行三种。
这里显示的权限是依次排列的,分别为:[用户][同组][其他]
用户权限,就是你自己的权限。英文:user,简写:u(覆盖标号123)
用户组权限,就是和你同组的人的权限。英文:group,简写:g(覆盖标号456)
其他权限,就是不和你同组的人的权限。英文:others,简写:o(覆盖标号789)
所有人的权限,英文:all,简写:a
r, 即Read,读,权限值为4
w,即Write,写,权限值为2
x,即eXecute,执行,权限值为1
-,在标号0位置,表示普通的文件
-,其他位置,表示对应权限未开启,不具备权限
d,即directory,表示目录文件
无任何权限:数字0表示
开所有权限:数字7表示,即7=4+2+1
chmod 命令是用于改变文件或目录的访问权限。
+ 表示增加权限,如u+x, u+r, u+w, g+w, g+r, o+r, a+r等
- 表示取消权限,如u-x, u-r, u-w, g-w, g-r, o-r, a-r等
= 表示赋予给定权限,并取消其他所有权限(如果有的话,如原来u是rwx,设置u=r,u就剩r)
假如你的file.sh文件权限是这样:
drw-rw-r-- 2 ypy ypy 4096 Dec 1 16:02 file.sh,
表示为:
你可以对该file.sh文件进行读、写、不能执行;
和你同组的人可以读、写、不能执行;
其他不和你同组的人:只能读,不能写和执行。
现在我们来分析一下,对file.sh文件,做这个操作:chmod u+x file.sh是什么意思呢?
表示用户权限中,增加执行权限,修改后变成这样:
drwxrw-r-- 2 ypy ypy 4096 Dec 1 16:02 file.sh