2007-06-21

文件与目录权限

关键字: Linux学习

chown与chgrp

        文件有“拥有者”及“拥有群组”,chown就是用于改变拥有者。新手最容易犯的一个错误就是:以root身份复制了一个文件(或路径)给一般用户,但忘记将文件的拥有者改成该用户,这样该用户就不能修改该复制文件。

语法:
chown   [-R]   user   [文件或者目录名]
chown   [-R]   user:group   [文件或者目录名]
参数说明:
-R:循环地将该目录下的所有文件都改成user与group的名称

示例:
chown   test   /home/test/testing   //仅改变拥有者,不改变组用户
chown   -R   test:test   /home/test/testing   //改变拥有者及组用户

       如何更改权限,使用chmod。
语法:
chmod   [-R]   [parameter]   [目录名称]
参数说明:
-R:循环地将该目录的文件都改变
示例:
chmod    777   .bashrc

       一个文件或目录至少有9个属性,三三一组,共分3组。可以使用数字当作变换属性的参考依据。各属性如下:r:4   ;w:2 ; x:1。将同一组数字相加就是该组的权限,例如:
    owner    = rwx = 4+2+1 = 7
    group    = rwx = 4+2+1  = 7
    others   = ---   = 0+0+0   = 0
    三组属性生成的数值就是770。
        如果有些文件不想叫别人看到,可以输入chmod 740   filename
        除了可以使用数字修改属性,还可以使用符号。文件的基本属性分别是user,group和others三组,那么我们可以使用u,g和o来代表3个组的属 性。此外,a代表all,即全部三组。那么读,写,可执行就可以写成r,w,x。所以,可以使用以下方式:

chmod   u|g|o|a   +|-|=   r|w|x   文件或者目录
示例:
chmod    u=rwx,og=rx   .bashrc
       注意,
u=rwx,og=rx这段文字之间并没有空格隔开。此外如果不知道原来的文件属性,而只是想使某个文件每个人都可读,可以这样做:
chmod   a+w   .bashrc
      
       而如果要将某个属性去掉而不更改其他的属性,这样做:
       chmod   a-x   .bashrc
umask
        我们知道如何改变一个目录或者文件的属性,但是当新建一个目录或者文件的时候,其默认属性是什么?这与umask指令有关。umask用户制定当前用户在 建立文件或者目录时的属性默认值。那么,如何得知或设定umask呢?查看umask数值直接输入umask即可,要设定其值,在umask之后接3个数 字。那么怎么指定这三个数字呢?主要还是跟linux的文件属性有关。参考下面的规则:
  • 若用户建立的是“文件”,则默认没有可执行(x)项,即只有rw这两个项,也就是最大为666(-rw-rw-rw)
  • 若用户建立的是“目录”,则由于x与是否可以进入此目录有关,因此默认为所有权限均开发,亦即777(drwxrwxrwx)
语法:
umask   [number]
示例:
umask      //显示当前的umask值

umask 002   //设定新的umask值
        umask指定的是“该默认值需要取消的权限”,因为r,w,x分别是4,2,1.所以要取消写权限,就输入2,而如果要取消读权限,就输入4,那么要取消读写权限就输入6,要取消执行与写权限,就输入3。例如:执行umask 002 后,当用户
  •  建立文件时:666-002==>(-rw-rw-rw-)-(- - - - - - - -w-)==>-rw-rw-r--
  •  建立目录时:777-002==>(drwxrwxrwx)-(- - - - - - - - w-)==>drwxrwxr-x
           umask可以在/etc/bashrc中修改,默认情况下,root的 umask为022,而一般用户的则为002,因为可写权限很重要,一般情况都会取消这个权限。此外,因为root比较重要,所以为了安全起见,其同群组 的写入属性也会被取消,这样也可以在一定程度上提高系统的安全性。
评论
发表评论

您还没有登录,请登录后发表评论

yanshiyi
搜索本博客
最近加入圈子
存档
最新评论