Linux修改权限linux
在linux中,只有root和文件的全部者能够修改权限,修改权限命令用的是chmod,这个命令有两个方式测试
在这个命令中,u表明全部者,g表明所属组,o表明其余组。r表明读权限,w表明写权限,x表明执行权限。+表明添加一个权限,-表明减小一个权限,=直接赋予权限。好比:spa
chmod u+x,g-x,o=r表明 给“全部者”添加一个执行权限,给“所属组”去掉执行权限,让“其余人”只有一个读的权限(无论他之前是什么权限)。这样一看应该很明显了吧。对象
在说这个方式以前,须要说一下权限所表明的数字ci
权限 | 数值 |
r | 4 |
w | 2 |
x | 1 |
感受光说不是很清楚,直接上命令吧table
好比:chmod 761 /tmp/testtest
解释:给这个test目录赋权限,全部者权限为7,也就是说,全部者拥有读写和执行的权限(7=4+2+1),所属组有读和写的权限(6=4+2),其余人有执行的权限(1)也就是drwxrw-r--。由于是目录,因此是d开头。登录
chmod 700 /tmp/test权限
解释:给这个test目录赋权限,全部者权限为7,也就是说,全部者拥有读写和执行的权限(7=4+2+1),所属组和其余人没有权限。也就是drwx------im
直接看两个例子,应该就很明显了吧.
Ok,最后在说一下文件的rwx和目录的rwx
权限 | 文件 | 目录 |
r | 能够查看文件的内容 | 能够列出目录的内容 |
w | 能够修改文件 | 能够在目录中建立,删除文件,也能够修改文件的名称 |
x | 能够执行文件 | 能够进入目录 |
对上面的权限作一个小的测试。
管理员帐号建立一个目录,test,并在目录下建立一个文件Test.t 如今,将目录test的权限修改成777,Test.t的权限为700。问:如今新建一个普通用户,他能不能删除Test.t?
文件的权限是700,普通用户没有修改文件内容的权限,而文件所在目录的权限是777,也就是说,全部人都有权限操做这个目录,普通用户也就有w权限,也就是说,它能够在目录中新建或者删除文件,因此,是能够删除的。
chown是用来修改全部者的,格式:chown +全部者 +操做对象
可是当你执行这个命令的时候,可能会发现报错,由于只有root才能够改变全部者。
能够看到上黄色部分,当切换到root时,再执行chown命令,就能够更换全部者了。
chgrp用来修改所属组:chgrp 用户组 文件或目录。
每一个文件或者目录都会有一个默认的用户组,默认用户组的名字和全部者是同样的,也就是缺省组(Emmmmmm,我这里也不是很清楚)。当你想要改变一个文件或者目录的所属组的时候,直接chgrp +组名 +文件位置。
如图,我先建立一个用户组,叫 hdg,在经过chgrp hdg /tmp/hj0326将hj0326的所属组由mytest改成hdg,不过要注意,我能作改变所属组,是由于我当前登陆的是root帐号。
umask是一个权限管理命令。
最经常使用的一个功能:umask -S,看好,这个是大写的S:
执行umask -S,你会看到u=rwx,g=rx,o=rx,这个一看就很好理解了,全部者权限为rwx,用户组权限为rw,其余人为rx。其实,这个权限的分配就是你新建目录或者文件的默认权限。当咱们建立一个目录的时候:
会发现,他的权限就是rwxr-xr-x,正好是咱们执行umask -S看到的。既然咱们能够看到默认的权限分配,固然,咱们也能够一修改它。
就用umask +数字。不过在说这个以前,还有一些东西须要介绍一下。
如过咱们直接输入umask
就系那个上图,你会看到四个数字0022。第一个数字0,表明特殊权限,具体的呢,...我就不知道了。不事后边这三个022,它和咱们的默认权限是有关系的。我们默认的权限是u=rwx,g=rx,o=rx,也就是755,发现没? 一个022,一个755!!!! 发现没? 没发现吧,
,我就知道。实际上是他们俩 相加是777。也就是说,若是你想要你的默认权限为755(u=rwx,g=rx,o=rx),那么你就须要输入这个命令:umask 022。好比若是我想把默认的权限改成rwxr-xr--,也就是我须要把权限改成754,那么我就须要执行umask 023。
这样当我再建立一个目录的时候,他就会变成rwxr-xr--了。不过Linux的默认权限仍是很合理的,建议你们不要修改。
还有一个事!当咱们建立一个目录的时候,他的默认的权限是755,也就是rwxr-xr-x。但是看一下下面这张图
默认的权限是022,可是我建立出来的文件的权限是rw-r--r--,对比一下会发现,全部人的权限都少了一个x权限,这是由于,在linux中,新建的文件时没有执行权限的。因此,当你新建一个文件的时候,他的权限就变成了rw-r--r--。
ok!打完收工