文件权限的管理

来源:互联网 发布:刘嘉玲网络云盘 编辑:程序博客网 时间:2024/06/06 00:16
1.文件属性的查看
   使用命令:ls -l filename
     -|rw-r--r--.|1| root| root|  46|Oct  1 05:03|filename
     1    2         3    4      5      6      7                       8
   1)"-":文件类型
     -                      ##普通文件
     d                     ##目录
     c                     ##字符设备
     s                     ##套接字
     p                     ##管道
     b                     ##快设备
     l                      ##连接

   2)"rw-r--r--":文件读写权限
     rw-|r--|r--
      *   **  ***
     *所有人的权限
     **所有组的权限
     ***其他人的权限

   3)"1"(此例子中为1,还有可能是其他数字)
     对文件:文件内容被系统记录的次数(要删除该文件,需要多少次才能彻底删除)
     对目录:目录中文件属性的字节数

   4)"root":文件所有人

   5)"root":文件所有组

   6)"46":文件内容的大小

   7)"Oct  1 05:03":文件最后一次被修改的时间

   8)"filename":文件名

   **查看目录属性用-ld参数,即ls -ld directory

2.文件所有人所有组的管理
   chown     username        file|dir                  ##更改文件的所有人
   chown     username:groupname    file|dir    ##更改所有人及所有组
   chown -R username        dir                      ##更改目录本身及里面所有内容的所有人(-R表示递归)
   chgrp -R groupname        dir                     ##更改目录本身及里面所有内容的所有组

   监控命令:watch -n 1 ls -lR /mnt

   *)在/mnt下新建三个文件file1,file2,file3

  

   **)分别修改它们的所有人,所有人及所有组,和所有组

  

   ***)在/mnt下新建一个目录dir,并在目录下新建一个文件file4

  

   ****)修改dir的所有人(不递归)观察file4的所有人信息

  

   *****)将dir的所有人改回来,再次以递归的形式修改其所有人信息,观察file4所有人信息

  

3.文件普通权限
   rw-|r--|r--
    u   g   o
   u:文件所有人对文件可以读写
   g:文件组成员对文件可读
   o:其他人对文件可读
   修改权限时u优先匹配,g次优先,o当u,g不匹配时匹配

   1)r
   对文件:可以查看文件中的字符
   对目录:可以查看目录中文件的信息

   2)w
   对文件:可以更改文件内字符
   对目录:可以在目录中添加删除文件

   3)x
   对文件:可以运行文件内记录的程序动作
   对目录:可以进入目录中
   **一般情况下,对于目录的r和x权限是一起给的,因为单独给一个r或x的权限没有实际意义


4.字符方式修改该文件权限
   chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir    
   例如:
   chmod u-x file1                           ##file1拥有者去掉x权限
   chmod g+w file1                         ##file1拥有组添加w权限
   chmod u-x,g+w file1                    ##file1拥有者去掉x权,file1拥有组添加w权限
   chmod ugo-r file2                        ##file2的用户组其他人去掉r权限
   chmod ug+x,o-r file3                    ##file3用户和组添加x权限,其他人去掉r权限

5.数字方式修改该文件权限
   在linux中为了方便管理,给各权限赋予相应的权值,r=4,w=2,x=1。例如:
   rw-|r--|r--
    u   g   o
   u=rw-=4+2+0=6
   g=r--=4+0+0=4
   o=r--=4+0+0=4
   即文件权限表示为644
   所以修改文件权限还可以表示为:
   chmod    修改后权限值    file

   例如:

   chmod    777    file                

   各数字代表的权限如下:

   7=rwx
   6=rw-
   5=r-x
   4=r--
   3=-wx
   2=-w-
   1=--x
   0=---


6.系统默认权限的设定
   从系统存在角度来说,开放权力越大,系统存在意义越高;但从系统安全角度来说,开放权力越少,系统安全性越高。所以系统设定新建文件或目录会去掉一些权限。涉及到的命令如下:
    umask                    ##查看系统保留权限,系统默认为022
    umask 077             ##修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
    **当新建一个文件或目录时,默认权限为777减去umask的值,例如umask值为022时,新建文件的默认权限为755

    永久设置方式:

    vim /etc/bashrc        ##shell
    70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    71        umask 002    ##普通用户umask
    72     else
    73        umask 077    ##超级用户umask                                                                      
    74     fi

    **编辑/etc/bashrc文件,第71和73行的数字分别代表普通用户和超级用户的umask值,直接将其修改即可

    **进入该文件后为命令模式,执行“:set nu”命令显示行号,“/”加关键字可以搜索并定位到要找的关键字,点i键进入编辑模式,Esc键退出编辑模式进入命令模式,“:wq”保存退出,“:q”不保存退出,“:q!”不保存强制退出   

    vim /etc/profile           ##系统
    59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    60     umask 002       ##普通用户umask
    61 else
    62     umask 077       ##超级用户umask                                                                                         
    63 fi

   以上两个文件umask设定值必须一起更改并保持一致,然后执行:
     source /etc/bashrc
     source /etc/profile
   让设定立即生效


7.特殊权限
   1)suid        ##冒险位
   只针对【二进制可执行文件】,文件内记录的程序产生的进程的所有人为文件所有人,和进程发起人身份无关
   **没有该权限时,二进制可执行文件程序产生的进程的所有人为进程发起人
   设定方式:
     chmod u+s file
     或
     chmod 4xxx file                  ##suid=4,但要加在文件所有人权限之前

   2)sgid        ##强制位
   对文件:只针对【二进制可执行文件】,任何人运行二进制文件,程序时程序产生的进程的所有组都是文件的所有组,和程序发起人组的身份无关
   对目录:当目录有sgid权限后,目录中新建的所有文件的所有组,都自动归属到目录的所有组之中,和文件建立者所在的组无关
   设定方式:
      chmod g+s file|dir
      或
      chmod 2xxx file|dir            ##sgid=2但要加在文件所有人权限之前
    
   3)sticky      ##粘制位
   t权限: 只针对与目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除
   设定方式:
     chmod o+t direcotry
     或
     chmod 1777 direcotry       ##t=1但要加在文件所有人权限之前

 
0 0
原创粉丝点击