您的位置:首页 > 运维架构 > Linux

Linux命令-权限设置

2015-12-06 13:41 543 查看
在Linux中,一个用户对一个文件(目录)是否有权利去使用,是根据此文件(目录)设置的权限决定的。每个用户都至少属于一个组。Linux中的一个文件在正常情况下是属于一个用户所有,将此用户称为文件所有者(也可以称为属主),而将一些用户统一分在一个组里,设定此组对文件操作的权限。对于超级用户来说,它拥有所有权限。

1、查看权限属性(ls -l)

用法:LS -L [文件或者目录名]



图片中每一列含义(从左到右):

第一列:文件类型和权限

drwxrwxr-x ,可以看到这一串共十个,最前面那个d就是表示是目录,具体文件类型有哪些请看下表。

Linux文件类型

文件类型符号具体含义
-表示是普通文件
d表示是目录
l表示是链接文件
b表示是块设备文件,如存储设备
c表示是字符设备,如键盘等
s表示是套接字文件,跟网络有关
p表示是管道文件
后面九个,rwxrwxr-x,从左到右每三个一组,分别是属主的权限,属组的权限,其他人的权限,而每一组三个权限分别是可读权限,可写权限,可执行权限。比如,如果属主对文件又有可读权限,相应位置就是r,没有权限就是"-"。本例子中,drwxrwxr-x,就是说,属主对于这个目录有读写与执行权限,属组对于这个目录有读写执行权限,其他人对这个目录有读和执行权限。

2、设定权限命令(chmod)

2.1、对于文件来说

可读是指可以查看文件内容,例如,使用cat或者more命令能够查看文件内容;可写是指可以修改文件内容并且保持修改后的内容,如使用vi命令能够修改文件内容后保存;可执行是指的是能够运行此文件,在Linux中,一个是否能够执行不决定于其扩展名,而是看其是否设定了可执行权限,当然前提是文件本身是一个二进制文件或者i脚本文件。例如,普通文佳设置了可执行权限也无法执行。

2.2、对于目录来说

可读是指的是能够使用ls命令显示目录下得内容;可写指的是能够在目录下建立和删除文件。在Linux下,一个文件是否能够被删除,是决定于所在目录是否对命令执行者设定了可写权限,而与文件本身权限无关,文件本身权限只是对文件本身内容或者是否能执行进行限制;可执行是指的是能够在目录下运行命令,所以如果想让一个用户能够进入此目录,必须对此目录在相应的权限位设定可执行权限。

2.3、chmod命令格式

chmod [选项] 权限 文件名(目录名)

2.3.1、数字方式设定权限

文件权限共分三种:可读(r)、可写(w)、可执行(x),使用4代表读权限,2代表写权限,1代表可执行权限,0代表没有权限,所以如果用户拥有哪种权限就将其代表的数字相加,最后相加的和即为用户的权限。以上面例子为例,属主用户对文件拥有的权限是rwx,所以使用数字代表即为:
4(r)+2(w)+1(x)=7
依次类推,得到属组和其他人的权限:
属组的权限: 4(r)+2(w)+1(x)=7

其他人的权限: 4(r)+0(w)+1(x)=5

即775为此目录的权限,其中第一个数组代表属主权限,第二个数字代表属组权限,第三个代表其他人权限。如果你想改变权限就计算出对应权限相应的数字,然后按照上述chmod命令格式,更改权限。

2.3.2、字符方式设置

字符方式设定权限

设定权限的对象对对象的操作权限
u(属主)+ (原权限上增加)r (可读)
g(属组)- (原权限上减少)w 可写)
o(其他人)= (无论以前什么,以现在设定的为准)x (可执行)
a(代表以上全部,u,g,o)

3、更改属主(属组)命令(chown)

chown命令可以更改一个文件(目录)的属主或者属组。

chown [选项] 属主[.属组] 文件名

使用chown 命令,能够将一个文件的属主和属组进行或者同事进行改变。同事改变时,属主和属组之间使用“."隔,还可以使用-R选项同时将目录下得所有文件和目录的属主和属组进行改变。

4、定义默认权限命令(umask)

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。你的系统管理员必须要为你设置一个合理的 umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命
令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。

umask命令允许你设定文件创建时的默认模式,对应每一类用户(属主、属组、其他人)存在相应的umask值中的数字。对于文件来说,这一数字的最大值为6,不能一开始就赋予执行权限。目录则允许设子执行权限,这样对于目录来说,umask各个数字最大可以到7.
如果你想知道当前umask值,可以使用umask命令: umask注意得到的是一个掩码值,要用777减去它才是真正的权限值。
要改变umask值,例如要将文件默认权限设置为643(rw-r---wx)只要使用umask命令设置一个新值即可:
umask 023
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: