Linux学习笔记第三天--修改权限操作

Linux修改权限

chmod

在linux中,只有root和文件的所有者可以修改权限,修改权限命令用的是chmod,这个命令有两个方式

1:chmod {u g o}+-={r w x} +文件位置

在这个命令中,u代表所有者,g代表所属组,o代表其他组。r代表读权限,w代表写权限,x代表执行权限。+代表添加一个权限,-代表减少一个权限,=直接赋予权限。比如:

chmod u+x,g-x,o=r代表 给“所有者”添加一个执行权限,给“所属组”去掉执行权限,让“其他人”只有一个读的权限(不管他以前是什么权限)。这样一看应该很明显了吧。

2:chmod 777 +文件位置

在说这个方式之前,需要说一下权限所代表的数字

权限 数值
r 4
w 2
x 1

感觉光说不是很清楚,直接上命令吧

比如:chmod 761 /tmp/test

解释:给这个test目录赋权限,所有者权限为7,也就是说,所有者拥有读写和执行的权限(7=4+2+1),所属组有读和写的权限(6=4+2),其他人有执行的权限(1)也就是drwxrw-r--。因为是目录,所以是d开头。

chmod 700 /tmp/test

解释:给这个test目录赋权限,所有者权限为7,也就是说,所有者拥有读写和执行的权限(7=4+2+1),所属组和其他人没有权限。也就是drwx------

直接看两个例子,应该就很明显了吧.

Ok,最后在说一下文件的rwx和目录的rwx

权限 文件 目录
r 可以查看文件的内容 可以列出目录的内容
w 可以修改文件 可以在目录中创建,删除文件,也可以修改文件的名称
x 可以执行文件 可以进入目录

对上面的权限做一个小的测试。

管理员账号创建一个目录,test,并在目录下创建一个文件Test.t 现在,将目录test的权限修改为777,Test.t的权限为700。问:现在新建一个普通用户,他能不能删除Test.t?

文件的权限是700,普通用户没有修改文件内容的权限,而文件所在目录的权限是777,也就是说,所有人都有权限操作这个目录,普通用户也就有w权限,也就是说,它可以在目录中新建或者删除文件,所以,是可以删除的。

chown

chown是用来修改所有者的,格式:chown +所有者 +操作对象

但是当你执行这个命令的时候,可能会发现报错,因为只有root才可以改变所有者

可以看到上黄色部分,当切换到root时,再执行chown命令,就可以更换所有者了。

chgrp

chgrp用来修改所属组:chgrp 用户组 文件或目录。

每个文件或者目录都会有一个默认的用户组,默认用户组的名字和所有者是一样的,也就是缺省组(Emmmmmm,我这里也不是很清楚)。当你想要改变一个文件或者目录的所属组的时候,直接chgrp +组名 +文件位置。

如图,我先创建一个用户组,叫 hdg,在通过chgrp hdg /tmp/hj0326将hj0326的所属组由mytest改为hdg,不过要注意,我能做改变所属组,是因为我当前登录的是root账号。

umask

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!打完收工

 

猜你喜欢

转载自my.oschina.net/u/3559788/blog/1650022