linux系统的文件权限问题,linux系统文件权限问题终极揭秘,告别所有linux文件权限困扰...

转自:http://waringid.blog.51cto.com

不管是Linux新手还是高手,在使用它的时候不可避免都会遇到Linux权限问题。而这些问题也是初学者问得最多的问题,很多的脚本不能执行的原因就是因为没有设定正确的权限所致。这里我们来看看Linux下的根限到底是怎么一回事。

当你新建一个文件时,它的最初的权限取决于你的umask值(将在后面说明)。权限可以使用chmod命令或是chmod()系统调用来修改一个文件的权限模式。只有在文件所有者才能修改文件的权限模式。唯一例外的就是超级用户:超级用户可以修改任何文件的权限。下面是chmod命令的格式:

chmod [-Rfh] [agou] [+-=] [rwxXstugol] filelist

要修改哪些用户的特权:

字符 含义

a 修改所有用户的特权

g 修改组用户的特权

o 修改其它用户的特权

u 修改所有者的权限

执行什么操作:

字符

含义

-

删除当前的权限

=

替换当前的权限

+

增加当前的权限

字符 含义

- 删除当前的权限

= 替换当前的权限

+ 增加当前的权限

要修改哪一项权限:

字符 含义

r 读访问

w 写访问

x 执行访问

s SUID或是SGID

t 粘附位

字符

含义

a

修改所有用户的特权

g

修改组用户的特权

o

修改其它用户的特权

u

修改所有者的权限

字符

含义

a

修改所有用户的特权

g

修改组用户的特权

o

修改其它用户的特权

u

修改所有者的权限

其中X是表示由BSD衍生出来的UNIX系统特有的选项,它的意思是:如果文件是一个目录,或有一些其它执行位已设置,那么就将文件设置为只可执行。而l则是由System V衍生出来的UNX系统特有的选项,它的意思是:允许对文件进行强制加锁。

-R选项表示chmod命令会递归执行。如果指定了一个目录filelist,那么目录的权限改变了,目录下所有文件的权限也都改变了。如果该目录包含子目录,那么这一地程会一直向下重复。

-f选项表示强制执行,chmod命令不会报告错误。通常在shell中比较有用。

在某些系统中使用-h选项来改变chmod对符号链接的工作方式。如果指定了-h选项,而其中一个参数据为符号链接的话,那么chmod不会改变符号链接所指向的那个文件或目录的权限。

下图说明了命令的使用方法:

1_100609201810_1.jpg%5C%22

计算机八进制的文件权限:

chmod允许用户使用一个四位八进制数字来指定文件权限模式。用户可以通过将权限相加的方式来计算这一数值。下表说明了每个文件权限对应的八进制数。

八进制数 权限

4000 SUID

2000 SGID

1000 粘附位

0400 所有者可读

0200 所有者可写

0100 所有者可执行

0040 组成员可读

0020 组成员可写

0010 组成员可执行

0004 其它用户可读

0002 其它用户可写

001 其它用户可执行

因此,一个文件权限如果为“-rwxr-x---”,那么其文件模式为0750,计算过程为:0400+0200+0100+0040+0010=0750。例如常见的/tmp目录的权限就为1777,表示任何用户都可以在该目录下创建文件,但是用户不能删除其它用户的文件。

umask

umask是“用户文件创建模式掩码”的缩写,是一个四位的八进制数值。用来确定一个新创建文件的权限。每个进程都从父进程那里继承了自己的umask。一般该命令会在.bashrc,.profile,.cshrc或是/etc/profile及/etc/bashrc中。

1_100609202056_1.jpg%5C%22

最常见的umask值是022,027以及077。022让文件所有者拥有对新建文件的读写权限,但是其它人对此只读。例如:0666(默认的文件建立模式)+0022(umask)=0644。计算umask值最简单的方法是记住:umask值中的2屏蔽了写权限,而7屏蔽了读,写及执行权限。

常用的umask设置:

umask 用户访问 组访问 其它

0000 所有 所有 所有

0002 所有 所有 读,执行

0007 所有 所有 无

0022 所有 读,执行 读,执行

0027 所有 读,执行 无

0077 所有 无 无

下面的图片是显示新建文件后的权限,大家可以想想看它对应的mask应是多少。

关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史

Copyright © 2010-2015 Linux安全网 LinuxSo.Com, All Rights Reserved. 豫ICP备12027123号-1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值