• 7、Linux权限管理-基本权限


    1.权限概述

    1.1.什么是权限?

    我们可以把它理解为操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围,或者说,权限是指某个特定的用户具有特定的系统资源使用权⼒。

    1.2.为什么要有权限?

    因为系统中不可能只存在⼀个root用户,⼀定会存在多个用户,为了保护每个登陆用户的隐私和⼯作环境,所以就有了权限。(比如三个租客合租同⼀个房子,a租客要使用b租客的肥皂,那这个事情??)

    1.3.权限与用户之间的关系?

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

    对文件资源,有三种⻆⾊ugo,当⼀个用户访问文件流程如下
    1) 判断用户是否为文件所有者,如果是则按所有者的权限进行访问
    2) 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
    3) 如果不是所有者,也不是该文件所属组,则按匿名权限进行访问

    1.4.权限中的rwx分别代表什么含义?

    当我们使用ls -l查看⼀个文件的详细属性时,能看到每个文件都有⼀个9位基本权限位,比如:rwxr-xr-x 其中每三位字符为⼀组,分别表示属主权限位,属组权限位,匿名权限位。
    linux中基本权限位则是使用这9位字符来表示,主要控制文件属主(User)、属组(Group)、其他用户(Other)

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

    PS: 如果权限位不可读、不可写、不可执行,则全部使用-作为占位符表示。

    2.权限设置示例

    文件示例: rwxrw-r-- alice hr file1.txt
    Q1: alice对file1文件拥有什么权限?
    Q2: jack 对 file1.txt 文件有什么权限? 前提:jack 属于 hr 组
    Q3: tom 对 file1.txt 文件有什么权限?

    2.1.为什么要设定权限,我们⼜如何修改⼀个文件的权限?

    Q1: 为什么要设定权限,可以赋于某个用户或组 -- 能够以何种⽅式 -- 访问某个文件
    Q2: Linux下使用chmod命令来变更权限,root用户可以变更所有文件的权限,而普通用户仅能变更属于自己的文件。

    2.2.使用chmod设定权限示例

    ⽅式⼀: ugo

    [root@bgx   ~]#    touch   file    #创建文件
    [root@bgx   ~]#    chmod   a=rwx   file    #给所有人添加读写执行权限
    [root@bgx   ~]#    chmod   a=-rwx  file    #取消所有的权限
    [root@bgx   ~]#    chmod   u=rwx,g=rw,o=-  file    #属主读写执行,属组读写,其他人无权限
    [root@bgx   ~]#    chmod   ug=rwx,o=r  file    #属主属组读写执行,其他人读权限
    [root@bgx   ~]#    ll  file
    -rwxrw-r--  1   root    root    0   Apr 13 03:29    file

    ⽅式⼆、number

    #选项:    -R递归修改
    [root@bgx   ~]#    touch   file
    [root@bgx   ~]#    chmod   644 file
    [root@bgx   ~]#    chmod   600 file
    [root@bgx   ~]#    ll  file
    -rw-------  1   root    root    0   Apr 13 03:29    file
    #针对目录设定权限
    [root@bgx   ~]#    mkdir   dir
    [root@bgx   ~]#    chmod   777 dir/    #修改目录允许所有人访问
    [root@bgx   ~]#    chmod   -R  755 dir/    #修改目录及子目录权限
    [root@bgx   ~]#    ll  -d  dir/
    drwxr-xr-x  2   root    root    6   Apr 13 03:34    dir/

    2.3.权限设置案例

    针对 hr 部⻔的访问目录/home/hr 设置权限,要求如下:
    1.root 用户和 hr 组的员⼯可以读、写、执行
    2.其他用户没有任何权限

    [root@bgx   ~]#    groupadd    hr
    [root@bgx   ~]#    useradd hr01    -G  hr
    [root@bgx   ~]#    useradd hr02    -G  hr
    [root@bgx   ~]#    mkdir   /home/hr
    [root@bgx   ~]#    chgrp   hr  /home/hr[root@bgx   ~]#    chmod   770 /home/hr
    [root@bgx   ~]#    ll  -d  /home/hr
    drwxrwx---  2   root    hr  6   Apr 13 03:26    /home/hr

    3.权限设置案例

    在Linux中权限对文件和对目录的影响是有不同区别的。

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

    文件权限实验案例:

    #1.新建文件,并添加内容⾄文件中,默认文件匿名用户仅有读权限
    [root@xuliangwei    ~]#    echo    "date"  >   filename
    [root@xuliangwei    ~]#    ll  filename
    -rw-r--r--  1   root    root    5   Jan 24 08:24    filename
    
    #2.切换bgx普通用户
    [root@xuliangwei    ~]#    su  -   bgx
    
    #3.对文件拥有读取的权限,但bgx用户对文件没有执行和删除的权限
    [bgx@xuliangwei ~]$   cat /root/filename
    date
    
    #4.使用root增加x执行权限
    [root@xuliangwei    ~]#    chmod   o+x /root/filename
    [root@xuliangwei    ~]#    ll  /root/filename
    -rw-r--r-x  1   root    root    5   Jan 24 08:24    /root/filename
    
    #5.测试x权限是否真的能执行该文件
    [bgx@xuliangwei ~]$   /root/filename
    Wed Jan 24 08:28:34 EST 2018
    
    #6.增加w执行权限
    [root@xuliangwei    ~]#    chmod   o+w /root/filename
    [root@xuliangwei    ~]#    ll  /root/filename
    -rw-r--rwx  1   root    root    5   Jan 24 08:24    /root/filename
    
    #7.测试执行权限
    [bgx@xuliangwei ~]$   vim /root/filename

    PS: 总结rwx对文件的影响

    读取权限(r)具有读取阅读文件内容权限
    1.只能使用查看类命令cat、head、tail、less、more

    写入权限(w)具有新增、修改文件内容的权限
    1.使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
    2.使用echo命令重定向的⽅式可以往文件内写入数据,>>可以进行追加
    3.不能删除文件,因为删除文件看的不是文件的属性,需要看上级目录是否有w的权限

    执行权限(x)具有执行文件的权限
    1.执行权限什么用都没有
    2.如果普通用户需要执行文件,需要配合r权限


    目录权限实验案例:

    #示例1:   创建目录,并在该目录下创建文件,匿名用户对目录没有w权限,对文件有777权限
    [root@xuliangwei    ~]#    mkdir   /dirname
    [root@xuliangwei    ~]#    echo    "test"  >>  /dirname/filename
    [root@xuliangwei    ~]#    chmod   777 /dirname/filename
    
    #普通用户验证权限,能正常查看,但无法删除[奇怪]
    [bgx@xuliangwei ~]$   cat /dirname/filename
    test
    [bgx@xuliangwei ~]$   rm  -f  /dirname/filename
    rm: cannot  remove  ‘/dirname/filename’:    Permission  denied
    
    #示例2:   设置目录777权限,相当于匿名用户对目录有w权限,对文件没有任何权限
    [root@xuliangwei    ~]#    chmod   777 /dirname/
    [root@xuliangwei    ~]#    chmod   000 /dirname/filename
    
    #普通用户验证权限
    [bgx@xuliangwei ~]$   cat /dirname/filename
    cat:    /dirname/filename:  Permission  denied
    [bgx@xuliangwei ~]$   rm  -f  /dirname/filename
    [bgx@xuliangwei ~]$   touch   /dirname/filename_2

    PS: 总结rwx对目录的影响
    读取权限(r),如果目录只有r权限: 具有浏览目录及子目录权限
    1.可以使用ls命令浏览目录及子目录, 但同时也会提示权限拒绝
    2.使用ls -l命令浏览目录及子目录,文件属性会带问号,并且只能看到文件名
    总结: 目录只有r权限,仅仅只能浏览内的文件名,无其他操作权限

    写入权限(w),如果目录只有w权限: 具有增加、删除或修改目录内文件名权限(需要x权限配合)
    PS: 如果目录有w权限, 可以在目录内创建文件, 删除文件(跟文件本身权限无关)
    不能进入目录、不能复制目录、不能删除目录、不能移动目录

    执行权限(x),如果目录只有x权限
    1.只能进入目录
    2.不能浏览、复制、移动、删除

    Linux权限总结与注意事项

    文件r权限, 只给用户查看,无其他操作
    
    文件rw权限, 可以查看和编辑文件内容
    
    文件rx权限, 允许查看和执行文件、但不能修改文件----->PASS
    
    文件rwx权限, 能读,能写,能执行,但不能删除,因为删除需要看上级目录的权限有没有w----->PASS
    
    目录rx权限, 允许浏览目录内文件以及子目录、并允许在目录内新建文件, 不允许创建、删除文件和目录
    
    目录wx权限, 能进入目录,能删除内容,能写入内容,但就是无法使用ls cat这样的命令----->PASS
    
    目录rw权限, 能看,能写,但无法进入目录----->PASS
    
    PS: 文件的 x权限小心给予,目录的 w权限小心给予。
    
    PS: 文件通常设定的权限是644,目录设定的权限是755
    
    PS: 控制目录权限755, 如果有普通用户需要操作目录⾥⾯的文件,在来看文件的权限变更文件属主和属组的意义?
    
    比如: 我现在⼿⾥有多套房,希望出售其中的A房进行变现,那么我会考虑将A房过户给金主,过户成功后A房就属于金主了,那么此时A房的拥有者就属于金主而不再属于我。

    4.属主属组设置

    在Linux中如何变更⼀个文件或者⼀个资源的属主和属组呢,可以使用chown、chgrp命令实现。
    chown能设置属主和属组,chgrp仅能设置属组。(所以用哪个你懂的)

    #chown  更改属主以及属组    -R:递归修改
    
    #准备环境,创建文件和目录
    [root@bgx   ~]#    mkdir   dir/test1   &&  touch   dir/file
    
    #示例1:   修改所属主为bin
    [root@bgx   ~]#    chown   bin dir/
    
    #示例2:   修改所属组为adm
    [root@bgx   ~]#    chown   .adm    dir/
    
    #示例3:   递归修改目录及目录下的所有文件属主和属组
    [root@bgx   ~]#    chown   -R  root.root   dir/




  • 相关阅读:
    使用idea进行远程调试
    map根据属性排序、取出map前n个
    编写shell脚本一键启动 重启 停止springboot jar包
    IDEA给类和方法配置注释模板(参数换行显示)
    springboot文件上传报错
    WebMvcConfigurer 与 WebMvcConfigurationSupport避坑指南
    WebMvcConfigurerAdapter详解和过时后的替代方案
    springboot上传文件过大,全局异常捕获,客户端没有返回值
    javascript中Math.random()产生随机数总结
    关于微信中的localStorage及使用cookie的解决方案
  • 原文地址:https://www.cnblogs.com/Forever-x/p/fdee20841c02802495d12eaa0c235e14.html
Copyright © 2020-2023  润新知