Linux常用命令-文件权限ugo

1、查看文件权限:

1.1、 ls -l 命令

    eg.:
        [root@centos6 zyq]# ls -l
        总用量 4
        -rw-r--r--. 1 root root 51 7月  30 15:09 hello.txt    
        #上面显示文件hello.txt的详细信息,空格分为9段
        ##第一段:相关权限
        #第0位:文件类型  文件(-),目录(d),软链接(l),字符设备(c),块设备(b)
        #第1位:文件所属用户拥有该文件的读权限 r:表示具有读权限, -:代表没有读权限
        #第2位:文件所属用户拥有该文件的写权限 w:表示具有写权限, -:代表没有写权限
        #第3位:文件所属用户拥有该文件的执行权限 x:表示具有执行权限, -:代表没有执行权限,s:代表具有suid权限
        #第4位:文件所属组其他用户拥有该文件的读权限 r:表示具有读权限, -:代表没有读权限
        #第5位:文件所属组其他用户拥有该文件的写权限 w:表示具有写权限, -:代表没有写权限
        #第6位:文件所属组其他用户拥有该文件的执行权限 x:表示具有执行权限, -:代表没有执行权限,s:代表具有sgid权限
        #第7位:其它组的用户拥有该文件的读权限 r:表示具有读权限, -:代表没有读权限
        #第8位:其它组的用户拥有该文件的写权限 w:表示具有写权限, -:代表没有写权限
        #第9位:其它组的用户拥有该文件的执行权限 x:表示具有执行权限, -:代表没有执行权限,t:代表具有sticky权限
        ##第二段:1 代表文件硬链接的数量,或目录中的子目录数
        ##第三段:root  代表文件所属用户
        ##第四段:root 代表文件所属组
        ##第五段:51 代表文件大小
        ##第六段至第八段:代表 文件最后修改时间
        ##第九段: 文件名称

1.2、rwx权限

1.2.1、rwx作用到文件
    (1)、r代表可读:用户可以读取查看文件内容。
    (2)、w代表可写:用户可以修改文件内容,但是不一定可以删除文件,删除文件需要对该文件所在目录具有写权限。
    (3)、x代表可执行:可以被用户执行
1.2.2、rwx作用到目录
    (1)、r代表可读:用户可以读取,用ls查看目录内容。
    (2)、w代表可写:用户可以修改目录,目录内创建、删除文件,重命名目录
    (3)、x代表可执行:用户可以进入该目录

1.3、高级权限suid、sgid、sticky

1.1、suid
    (1)、功能:只作用于文件,其他用户执行文件时,已文件属主身份执行文件
    (2)、添加权限:
        chmod u+s file
        chmod 4xxx file
     (3)、实例:
        ##查看文件passwd具有suid权限,且文件属主是root
        [hack@centos6 dir1]$ ll /usr/bin/passwd
        -rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd
        [hack@centos6 dir1]$ 
        ##用户hack执行passwd
        [hack@centos6 dir1]$ passwd
        更改用户 hack 的密码 。
        为 hack 更改 STRESS 密码。
        (当前)UNIX 密码:
        
        ##查看passwd进程执行情况,可以看到执行用户是root
        [root@centos6 home]# ps aux|grep passwd|grep -v grep
        root       2487  0.0  0.0 167732  1924 pts/1    S+   10:53   0:00 passwd        
1.2、sgid
    (1)、功能:作用于文件,让执行文件的用户具有与文件属组相同的权限;作用于目录,该目录以后创建的文件会继承目录的属组;
    (2)、添加权限:
        chmod g+s file/dir
        chmod 2xxx file/dir
    (3)、实例:
        ##给目录添加sgid权限
        [root@centos6 home]# chmod g+s dir1
        ##目录属组为root
        [root@centos6 home]# ll -d dir1
        drwxrwsrwx. 2 root root 4096 8月  13 10:40 dir1
        [root@centos6 home]#
        ##切换到hack用户,进入目录
        [hack@centos6 ~]$ cd /home/dir1
        [hack@centos6 dir1]$ ls
        ##创建文件
        [hack@centos6 dir1]$ touch hack.txt
        #创建目录
        [hack@centos6 dir1]$ mkdir dhack
        ##查看刚创建的文件和目录的属组都是root,继承了dir1目录的属组
        [hack@centos6 dir1]$ ll
        总用量 4
        drwxrwsr-x. 2 hack root 4096 8月  13 10:49 dhack
        -rw-rw-r--. 1 hack root    0 8月  13 10:49 hack.txt        
1.3、sticky 粘滞位
    (1)、功能:只作用于目录,在目录下,普通用户只能删除自己的文件,不能删除不属于自己的文件
    (2)、添加权限:
        chmod o+t dir
        chmod 1xxx dir
    (3)、实例:
       ##创建目录
       [root@centos6 home]# mkdir dir1
       [root@centos6 home]# chmod 777 dir1
       [root@centos6 home]# ll -d dir1
       drwxrwxrwx. 2 root root 4096 8月  13 10:37 dir1
       ##给目录赋权sticky
       [root@centos6 home]# chmod o+t dir1
       [root@centos6 home]# ll -d dir1
       drwxrwxrwt. 2 root root 4096 8月  13 10:38 dir1
       [hack@centos6 ~]$ cd /home/dir1
       [hack@centos6 dir1]$ id
       uid=502(hack) gid=1001(hack) 组=1001(hack) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
       ##用户hack创建文件
       [hack@centos6 dir1]$ touch hack.txt
       [hack@centos6 dir1]$ ll
       总用量 0
       -rw-rw-r--. 1 hack hack 0 8月  13 10:38 hack.txt
       -rw-rw-r--. 1 tony tony 0 8月  13 10:38 tony.txt
       [hack@centos6 dir1]$ 
       ##删除tony的文件,不允许
       [hack@centos6 dir1]$ rm tony.txt
       rm:是否删除有写保护的普通空文件 "tony.txt"?y
       rm: 无法删除"tony.txt": 不允许的操作
       [hack@centos6 dir1]$ 
       ##删除自己的文件成功
       [hack@centos6 dir1]$ rm -f hack.txt
       [tony@centos6 ~]$ cd /home/dir1
       [tony@centos6 dir1]$ id
       uid=503(tony) gid=503(tony) 组=503(tony) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
       ##用户tony创建文件
       [tony@centos6 dir1]$ touch tony.txt
       [tony@centos6 dir1]$ 
       [tony@centos6 dir1]$ ll
       总用量 0
       -rw-rw-r--. 1 hack hack 0 8月  13 10:38 hack.txt
       -rw-rw-r--. 1 tony tony 0 8月  13 10:38 tony.txt
       ##用户tony删除hack的文件,失败
       [tony@centos6 dir1]$ rm -f hack.txt
       rm: 无法删除"hack.txt": 不允许的操作
       [tony@centos6 dir1]$ 
       #用户tony删除自己的文件,成功
       [tony@centos6 dir1]$ rm -f tony.txt
       [tony@centos6 dir1]$ 
        

2、chmod命令

2.1、功能:修改文件权限

2.2、用法:

    chmod [选项]... 模式[,模式]... 文件...
   或:chmod [选项]... 八进制模式 文件...
   每种模式都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"
       u : 文件所属用户
       g :与文件属主同组的其它用户
       o :文件属组外其它组的用户
       a :所有用户,包括 u , g, o
       + : 添加权限
       - : 减少权限
       = : 赋值权限
       八进制模式: r = 4 ,w = 2 ,x = 1; r-- <==> 4 ,rw- <==> 6 (4+2),rwx <==> 7(4+2+1)
   常用选项:
       -R :以递归方式更改所有的文件及子目录
   eg.:    
        [root@centos6 zyq]# ll
        总用量 4
        -rw-r--r--. 1 root root 51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##给文件属主添加执行权限
        [root@centos6 zyq]# chmod u+x hello.txt 
        [root@centos6 zyq]# ll
        总用量 4
        -rwxr--r--. 1 root root 51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##给文件属组下的其它用户添加写权限
        [root@centos6 zyq]# chmod g+w hello.txt 
        [root@centos6 zyq]# ll
        总用量 4
        -rwxrw-r--. 1 root root 51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##给文件其它组下的用户添加执行权限
        [root@centos6 zyq]# chmod o+x hello.txt 
        [root@centos6 zyq]# ll
        总用量 4
        -rwxrw-r-x. 1 root root 51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##给文件所有用户去除执行权限
        [root@centos6 zyq]# chmod a-x hello.txt 
        [root@centos6 zyq]# ll
        总用量 4
        -rw-rw-r--. 1 root root 51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##修改文件其他组下用户的权限为读写
        [root@centos6 zyq]# chmod o=rw hello.txt 
        [root@centos6 zyq]# ll
        总用量 4
        -rw-rw-rw-. 1 root root 51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##按八进制模式修改文件权限,只保留属主读权限
        [root@centos6 zyq]# chmod 400 hello.txt 
        [root@centos6 zyq]# ll
        总用量 4
        -r--------. 1 root root 51 7月  30 15:09 hello.txt
        ##按八进制模式修改文件权限,属主读写权限,其它用户读权限
        [root@centos6 zyq]# chmod 644 hello.txt 
        [root@centos6 zyq]# 
        ##递归修改目录ddd及它下面的所有子目录和文件
        [root@centos6 zyq]# chmod -R o-x ddd  

3、chown 命令

3.1、功能:修改文件的属主或属组

3.2、用法:

    chown [选项]... [属主][:[]] 文件...
    常用选项:
        -R :递归修改目录下所有的文件及子目录
    eg.:
        [root@centos6 zyq]# ll
        总用量 8
        drwxr-xr--. 4 root root 4096 8月   8 15:19 ddd
        -rw-r--r--. 1 root root   51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##修改文件属主
        [root@centos6 zyq]# chown cat hello.txt 
        [root@centos6 zyq]# ll
        总用量 8
        drwxr-xr--. 4 root root 4096 8月   8 15:19 ddd
        -rw-r--r--. 1 cat  root   51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##修改文件属主
        [root@centos6 zyq]# chown :cat hello.txt 
        [root@centos6 zyq]# ll
        总用量 8
        drwxr-xr--. 4 root root 4096 8月   8 15:19 ddd
        -rw-r--r--. 1 cat  cat    51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##修改目录ddd及它下面的所有文件和子目录的属主
        [root@centos6 zyq]# chown -R cat ddd
        [root@centos6 zyq]# 
        [root@centos6 zyq]# ll
        总用量 8
        drwxr-xr--. 4 cat root 4096 8月   8 15:19 ddd
        -rw-r--r--. 1 cat cat    51 7月  30 15:09 hello.txt
        [root@centos6 zyq]#    

4、chgrp命令

4.1、功能:修改文件属组

4.2、用法:

    chgrp [选项]... 用户组 文件...
    常用选项:
        -R : 递归修改目录下所有的文件及子目录
    eg.:
        [root@centos6 zyq]# ll
        总用量 8
        drwxr-xr--. 4 cat root 4096 8月   8 15:19 ddd
        -rw-r--r--. 1 cat cat    51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##修改文件属组
        [root@centos6 zyq]# chgrp root hello.txt 
        [root@centos6 zyq]# ll
        总用量 8
        drwxr-xr--. 4 cat root 4096 8月   8 15:19 ddd
        -rw-r--r--. 1 cat root   51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# 
        ##修改目录及目录下所有文件和子目录的属组
        [root@centos6 zyq]# chgrp -R cat ddd
        [root@centos6 zyq]# 
        [root@centos6 zyq]# ll
        总用量 8
        drwxr-xr--. 4 cat cat  4096 8月   8 15:19 ddd
        -rw-r--r--. 1 cat root   51 7月  30 15:09 hello.txt
        [root@centos6 zyq]# ll ddd
        总用量 8
        drwxr-xr--. 2 cat cat 4096 8月   8 15:19 a.txt
        drwxr-xr--. 3 cat cat 4096 8月   8 15:19 ccc

你可能感兴趣的:(Linux常用命令-文件权限ugo)