美文网首页
day10-Linux基础权限

day10-Linux基础权限

作者: 恩楠 | 来源:发表于2019-08-07 17:18 被阅读0次

    1. 权限和用户之间的关系

    在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。

    [root@node2~]# ll
    drwxrwxrwx. 2 root root       16 Aug  6 19:52 test
    
    详细权限

    用户对文件资源,有三种角色ugo,当一个用户访问文件流程如下

    1. 判断用户是否为文件所有者,如果是则按所有者的权限进行访问
    2. 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
    3. 如果不是所有者,也不是该文件所属组,则按匿名权限进行访问

    权限中rwx的含义

    字母 含义 对应权限
    r(read) 读取权限 4
    w(write) 写入权限 2
    x(execute) 执行权限 1
    -(占位符) 没有权限 0

    2. 权限设置

    为什么要设定权限
    权限可以赋于某个用户或组 -- 能够以何种方式 -- 访问某个文件。
    在Linux中权限对文件和对目录的影响是有不同区别的。

    权限 对文件的影响 对目录的影响
    读取权限(r) 具有读取\阅读文件内容权限 具有浏览目录及子目录
    写入权限(w) 具有新增、修改文件内容的权限 具有增加和删除目录内文件
    执行权限(x) 具有执行文件的权限 具有访问目录的内容(取决于目录中文件权限)

    文件相关权限实验:
    实验环境:一个普通用户,具体配置如下

    [root@node2~]# id ennan
    uid=3003(ennan) gid=3003(ennan) groups=3003(ennan)
    [root@node2/]# ll filename 
    -rw-r--r--. 1 root root 5 Aug  7 14:40 filename
    [root@node2/]# cat filename 
    date
    

    r 权限: 切换到普通用户,当用户对文件只有r的权限时,用户仅能查看文件,无法进行更多的操作。
    可用的命令有:cat、more、less、head、tail

    [ennan@node2 /]$  ll filename 
    -rw-r--r--. 1 root root 5 Aug  7 14:40 filename
    [ennan@node2 /]$ cat filename 
    date
    

    w 权限: 可以对文件进行写入操作,但是不能查看或者进行其他操作。

    [ennan@node2 /]$ ll filename 
    -rw-r---w-. 1 root root 5 Aug  7 14:40 filename
    [ennan@node2 /]$ echo "date" > filename 
    [ennan@node2 /]$ cat filename 
    cat: filename: Permission denied
    

    x 权限:普通用户执行x权限时,同时需要具有r权限,否则不能执行成功

    [ennan@node2 /]$ ll filename 
    -rw-r----x. 1 root root 5 Aug  7 15:04 filename
    [ennan@node2 /]$ ./filename 
    bash: ./filename: Permission denied
    

    rw 权限:可对文件进行读写,但是不能进行执行、复制、移动、删除等操作。

    [ennan@node2 /]$ ll filename 
    -rw-r--rw-. 1 root root 5 Aug  7 15:04 filename
    [ennan@node2 /]$ vim filename 
    [ennan@node2 /]$ cat filename 
    date
    date
    [ennan@node2 /]$ ./filename
    -bash: ./filename: Permission denied
    [ennan@node2 /]$ cp filename filename.bak
    cp: cannot create regular file ‘filename.bak’: Permission denied
    

    rx 权限:可进行查看和执行操作,但是不能编辑、移动、删除等

    [ennan@node2 /]$ ll filename 
    -rw-r--r-x. 1 root root 10 Aug  7 15:17 filename
    [ennan@node2 /]$ cat filename 
    date
    [ennan@node2 /]$ ./filename 
    Wed Aug  7 15:33:07 CST 2019
    [ennan@node2 /]$ echo "hello" > filename 
    -bash: filename: Permission denied
    [ennan@node2 /]$ cp filename filename.bak
    cp: cannot create regular file ‘filename.bak’: Permission denied
    [ennan@node2 /]$ rm -f filename 
    rm: cannot remove ‘filename’: Permission denied
    

    rwx 权限:能查看、编辑、执行文件,但是不能对文件进行删除、移动、复制等操作。

    [ennan@node2 /]$ cat filename 
    date
    [ennan@node2 /]$ ./filename 
    Wed Aug  7 15:40:08 CST 2019
    [ennan@node2 /]$ cp filename filename.bak
    cp: cannot create regular file ‘filename.bak’: Permission denied
    [ennan@node2 /]$ rm -f filename 
    rm: cannot remove ‘filename’: Permission denied
    

    目录相关权限实验:
    r 权限:具有浏览目录的权限,无法进入目录,使用ls 查看目录下的文件会报错,但会显示文件名称, 如果使用 ls-l 只能看到文件名称,其他的全部无法查看。

    [root@node2/]# ll -d test/
    drwxr-xr--. 2 root root 18 Aug  7 15:54 test/
    [root@node2/]# ll /test/file 
    -rw-r--r--. 1 root root 5 Aug  7 15:54 /test/file
    
    [ennan@node2 /]$ ls test/
    ls: cannot access test/file: Permission denied
    file
    [ennan@node2 /]$ ls -l test/
    ls: cannot access test/file: Permission denied
    total 0
    -????????? ? ? ? ?            ? file
    [ennan@node2 /]$ cd /test/
    -bash: cd: /test/: Permission denied
    [ennan@node2 /]$ rm -rf /test/
    rm: cannot remove ‘/test/file’: Permission denied
    

    w 权限:单独的w权限不能进行任何操作。

    [ennan@node2 /]$ ll -d /test/
    drwxr-x-w-. 2 root root 18 Aug  7 15:54 /test/
    [ennan@node2 /]$ cd test/
    -bash: cd: test/: Permission denied
    [ennan@node2 /]$ ls /test/
    ls: cannot open directory /test/: Permission denied
    

    x 权限:可以进入目录,不能操作其他东西。

    [ennan@node2 /]$ ll -d /test/
    drwxr-x--x. 2 root root 18 Aug  7 15:54 /test/
    [ennan@node2 /]$ ll /test/
    ls: cannot open directory /test/: Permission denied
    [ennan@node2 /]$ cd /test/
    [ennan@node2 test]$ ls
    ls: cannot open directory .: Permission denied
    

    rx 权限: 能进入目录,能查看目录下的文件,至于操作文件,需要看文件本身的权限。不能进行新建文件、目录等操作。

    [ennan@node2 test]$ ll -d /test/
    drwxr-xr-x. 2 root root 18 Aug  7 15:54 /test/
    [ennan@node2 test]$ cd /test/
    [ennan@node2 test]$ ll
    total 4
    -rw-r--r--. 1 root root 5 Aug  7 15:54 file
    

    rw 权限:好像有点鸡肋

    [ennan@node2 /]$ ll -d /test/
    drwxr-xrw-. 2 root root 18 Aug  7 15:54 /test/
    [ennan@node2 /]$ cd test/
    -bash: cd: test/: Permission denied
    [ennan@node2 /]$ ll /test/
    ls: cannot access /test/file: Permission denied
    total 0
    -????????? ? ? ? ?            ? file
    [ennan@node2 /]$ mkfid /test/hello
    -bash: mkfid: command not found
    [ennan@node2 /]$ mkdir /test/hello
    mkdir: cannot create directory ‘/test/hello’: Permission denied
    

    rwx 权限:如果目录赋予了w权限,则该目录下的文件可以复制、删除、移动、修改。

    [ennan@node2 /]$ ll -d /test/
    drwxr-xrwx. 2 root root 18 Aug  7 15:54 /test/
    [ennan@node2 /]$ cd test/
    [ennan@node2 test]$ ls
    file
    [ennan@node2 test]$ cp file file.bak
    [ennan@node2 test]$ rm -f file.bak 
    

    文件最多使用的是rw权限和rx权限(文件的权限通常会设置为644)
    目录最多使用的是rx权限(目录的权限通常会设置为755)


    3.属主和属组的变更

    chown:用于更改属主及属组

    选项 解释
    -R 递归修改

    修改dir的属主为ennan

    [root@node2~]# ll
    total 0
    drwxr-xr-x. 3 root root 31 Aug  7 17:07 dir
    [root@node2~]# chown ennan dir/
    [root@node2~]# ll
    total 0
    drwxr-xr-x. 3 ennan root 31 Aug  7 17:07 dir
    

    修改dir的属组为adm

    [root@node2~]# chown .adm dir/
    [root@node2~]# ll -d dir/
    drwxr-xr-x. 3 ennan adm 31 Aug  7 17:07 dir/
    

    递归修改目录及目录下所有文件的属主和属组为ennan

    [root@node2~]# chown -R ennan.ennan dir/
    [root@node2~]# ll -d dir/
    drwxr-xr-x. 3 ennan ennan 31 Aug  7 17:07 dir/
    [root@node2~]# ll dir/
    total 0
    -rw-r--r--. 1 ennan ennan 0 Aug  7 17:07 file
    drwxr-xr-x. 2 ennan ennan 6 Aug  7 17:07 test1
    

    相关文章

      网友评论

          本文标题:day10-Linux基础权限

          本文链接:https://www.haomeiwen.com/subject/ckvndctx.html