linux文件访问权限配置

转自:http://www.51cto.com/art/200710/58299.htm


8.5.2  文件访问权限配置

在Linux系统中,用户对文件访问权限配置是通过命令行进行的,所以需要一定的专业知识。
【示例7】在RedHat Linux 9.0中配置用户Winda对其私有文件夹“Winda”的文件访问权限。

1.访问权限类型
在文件/文件夹访问权限中,读取、写入和执行是许可权限中的3个主要设置。要查看有权限访问的目录或文件所配置的用户访问权限,只需在Shell终端提示符下输入“ls –l”命令即可(注意此处的“l”是小写字母“l”,而非数字“1”)。

如图8-25所示的就是查看/mnt目录下所有文件和文件夹的用户访问权限配置。这里提供了许多细节,用户可以看到谁能读取(r)和写入(w)文件,以及谁创建了这个文件(Winda)和所有者所在的组群(Winda)。

 图8-25  在终端提示符下查看/mnt文件夹的用户访问权限

第1列显示了当前的权限;它有10位。第1位代表文件类型。其余九位实际上是用于三组不同用户的三组权限。例如:-rw-r--r--。

后面的那三组分别是:文件的所有者、文件所属的组群和“其他人”所拥有的权限,其他人是指前面没有包括的用户和组群所拥有的权限。 
各组所代表的意义如下:

-    (rw-)   (r--)   (r--) 1 winda winda
  |              |          |         | 
文件类型      所有者     组群       其他人    
在第一个项目的“文件类型”中可以显示以下几种文件类型。
  d:目录。
  -(短线):常规文件(而不是目录或链接)。
  l:到系统上其他位置的另一个程序或文件的符号链接。

在第一个项目之后的三组中,用户可以看到下面几种权限类型。
  r:文件可以被读取。
  w:文件可以被写入。
  x:文件可以被执行(如果它是程序的话)。

当用户在所有者、组群、或其他人中看到一个短线(“-”),这意味着相应的权限还没有被授予。再看一个查看readme.txt文件的结果,然后辨别它的许可权限。

ls -l readme.txt
-rw-rw-r--    1 winda winda     39  8月 11 12:04 readme.txt

从以上可以分析得出,文件的所有者(本例为Winda)有读取和写入该文件的权限。组群Winda也有读取和写入readme.txt的权限。它不是一个程序,因此所有者和组群都没有执行它的权限。而其他用户和组群则只有读取权限。

2.使用chmod命令改变权限
使用chmod命令可以改变用户对文件/文件夹的访问权限。下面这个例子显示了如何使用chmod命令来改变readme.txt文件的权限。

用ls –l命令查看用户对readme.txt文件的初始权限设置,如下所示。
-rw-rw-r--    1 winda winda     39 8月 11 12:04 readme.txt

如果你是这个文件的所有者或者你登录为根用户身份,那么你可以改变所有者、组群、其他人的权限。初始时,从上面的分析可以看出,这个readme.txt文件的所有者Winda和组群Winda可以读取和写入文件,组群之外的任何人只能读取文件(r--)。

【警告】 请记住,文件权限是一种安全措施。无论何时允许其他人读取、写入或执行文件,都是在增加文件被篡改或删除的危险。作为一种基本原则,你应该只给那些真正需要这些文件的人设置读写权限。
在下面的例子中,是想给每个人赋予“写入”的文件权限,因此他们可以进行读取文件、在其中加注和保存文件操作。这意味着Winda用户必须改变文件初始权限中“其他人”的权限部分。在shell提示符下,输入:
chmod o+w readme.txt
o+w命令参数告诉系统你想给其他人写入文件readme.txt的权限。要查看结果,再次通过ls –l命令列出文件的细节,如下: 
-rw-rw-rw-    1 winda winda     39 3月 11 12:04 readme.txt

现在,每个人都可以读取和写入这个文件了。

如要删除用户对readme.txt文件的读写权限,则可使用chmod命令来取消读取和写入这两个权限。命令如下: 
chmod go-rw readme.txt

通过输入go-rw参数,告诉系统删除文件readme.txt中组群和其他人的读取和写入权限。再次通过 ls -1命令列出的结果如下: 
-rw-------    1 winda winda    39 3月 11 12:04 readme.txt

综上所述,当想用chmod命令来改变权限时,就把它们当做速记符号来记忆,因为实际要做的只是记住几个符号而已。文件的用户身份主要有如下几类。
  u:拥有文件的用户(所有者)。
  g:所有者所在的组群。
  o:其他人(不是所有者或所有者的组群)。
  a:每个人或全部(u、g、和o)。

用户所具有的文件访问权限类型如下。
  r:读取权。
  w:写入权。
  x:执行权。

文件权限配置行为有如下几类。
  +:添加权限。
  :删除权限。
  =:使它成为唯一权限。

现在再来练习一下,如果要删除用户对readme.txt文件的所有权限,则命令如下: 
chmod a-rwx readme.txt

这样所有用户都不能进行读取或其他任何操作了,读者可以测试一下看是否还能够使用cat readme.txt命令来读取这个文件,结果返回如下提示:
cat: readme.txt: Permission denied    #  显示权限禁止

但要注意,虽然删除了所有用户对该文件的权限,包括你自己的,但是由于这个文件属于你,你可以随时使用以下命令把它的权限改回来。命令如下: 
chmod u+rw readme.txt

这时再使用cat readme.txt命令就可以读取这个文件了。

下面是几个可以用在chmod命令设置上的常用例子。
  g+w:为组群添加写入权。
  o-rwx:删除其他人的所有权限。
  u+x:允许文件所有者执行这个文件。
  a+rw:允许每个人读取并写入文件。
  ug+r:允许所有者和组群读取文件。
  g=rx:只允许组群读取和执行(不能写入)。

通过添加-R选项,就可以为整个目录树改变权限。

3.使用数字来改变权限
这里向读者介绍另一个改变权限的方法,一开始,它可能会显得有点复杂。 
仍以前面介绍的那个readme.txt文件为例,它的原始权限如下:
-rw-rw-r--    1 winda winda     39 8月 11 12:04 readme.txt

其实,前面介绍的每种权限设置都可以用一个数值来代表,那就是: 
r = 4;w = 2;x = 1;- = 0

当这些值被加在一起,它的总和便用来设立特定的权限。譬如,如果你想有读取和写入的权限,就会得到一个总和为6的值:4(读取)+ 2(写入)= 6。 
readme.txt文件的原始数字权限设置如下: 
-  (rw-)   (rw-)  (r--)
|            |         |
4+2+0       4+2+0     4+0+0

所有者的总和为6,组群的总和为6,其他人的总和为4,则这个权限设置读成664。

如果用户想改变readme.txt文件的权限,使自己组群中的人没有写入权,但是仍旧能够读取文件的话,从这组数字中减掉2就可以删除写入权限了。这样,这组数值就变成644了。要实现这些新设置,须键入以下命令:

chmod 644 readme.txt
现在,再列举一下这个文件的权限来校验以上配置所进行的改变。输入如下命令:

ls -l readme.txt
得到的权限输出结果应为:

-rw-r--r--    1 winda winda     39 8月 11 12:04 readme.txt
现在,组群和其他人都没有了到文件readme.txt的写入权。要归还组群到文件的写入权,在第二组权限中加上w
(2)的值就可以了。命令如下:

chmod 664 readme.txt

【警告】 把权限设为666会允许每个人对文件或目录都有读取和写入的权利。把权限设为777允许每个人都有读取、写入和执行的权利。这些权限可能会允许对机密文件的篡改,因此,一般来说,使用这类设置是不明智的。

以下是一些常用设置、数值及它们的含义。
  -rw-------(600):只有所有者才有读取和写入的权限。
  -rw-r--r--(644):只有所有者才有读取和写入的权限;组群和其他人只有读取的权限。
  -rwx------(700):只有所有者才有读取、写入和执行的权限。
  -rwxr-xr-x(755):所有者有读取、写入和执行的权限;组群和其他人只有读取和执行的权限。
  -rwx--x--x(711):所有者有读取、写入和执行权限;组群和其他人只有执行权限。
  -rw-rw-rw-(666):每个人都能够读取和写入文件(请谨慎使用这些权限)。
  -rwxrwxrwx(777):每个人都能够读取、写入和执行(再重申一次,这种权限设置可能会很危险)。
下面列举了一些对目录的常见设置。
  drwx------(700):只有所有者能在目录中读取和写入。
  drwxr-xr-x(755):每个人都能够读取目录,但是其中的内容却只能被所有者改变。


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值