zoukankan      html  css  js  c++  java
  • linux用户权限 -> 系统基本权限

    比如rwxr-xr-x linux中正是这9个权限位来控制文件属主(User)、属组(Group)、其他用户(Other)基础权限。

    用户对资源来说, 有三种角色
      User(u): 属主用户(文件所有者)
      Group(g): 属组用户(包含组成员)
      Other(o): 匿名用户(其他人)

    //一个用户访问文件流程如下
      1. 判断用户是否为文件的所有者,如果是,按所有者的权限进行访问
      2. 判断是否为文件的所有组成员,如果是,就按组的权限去访问
      3. 最终用户就是文件的其他的人,按其他人的权限去访问

    rwx, rwx, r-x
    User Group Other

    权限与属主属组

    文件权限对应表

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

    如果权限位不可读、不可写、不可执行,则用-来表示。

    权限修改命令chmod

    chmod   //修改文件目录权限rwx  -R级联修改
    
    mkdir dir       //建立目录
    touch dir/file  //建立文件
    
    示例1:
    chmod 777 dir/   //修改dir目录权限为777
    chmod u+rwx,g+rwx,o+rwx 
    
    示例2:
    chmod 666 dir/file     //修改file文件权限为666
    chmod u+rw,g+rw,o+rw 
    
    示例3:
    
    chmod -R 766 dir/  //修改目录及子目录权限

    属主属组修改命令chown

    chown   //更改属主以及属组 -R:级联修改
    
    
    mkdir dir               //创建目录
    touch dir/file_test     //创建文件
    mkdir dir/dir_test      //创建目录
    
    示例1:
    chown bin dir/  //修改所属主为bin
    ll -d dir/      //检查属主
    drwxr-xr-x 2 bin root 4096 7月  22 00:50 dir/
    
    
    示例2:
    chown .adm dir/     //修改所属组为adm
    ll -d dir/          //检查属组
    drwxr-xr-x 2 bin adm 4096 7月  22 00:50 dir/
    
    
    示例3:
    chown -R root.root dir/ //递归修改目录及目录下的所有文件属主和属组

    基础权限设置案例

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

    文件权限与目录权限说明

    1)    文件权限
    r 代表文件可读
    w 代表文件可编辑修改
    x 代表文件可执行
    通常情况下,文件至少要有r权限。例如,只有w权限,文件除了通过重定向方式外,是无法编辑的。
    
    2)    目录权限
    r 代表目录可读,即可查看该目录
    w 代表目录可编辑修改,即目录下的文件可以改名、删除等(文件名信息存放在目录block中)
    x 代表目录可执行,即代表可进入该目录
    通常情况下,目录至少要有x权限,即至少能进入该目录
    
    3)    其他说明
    文件的删除、创建、重命名需要至少有该文件所在目录的wx权限
    
    4)    Linux访问文件过程
    例如:访问/a/b.txt
    ① 访问/的inode
    ② 通过/的inode找到/的block
    ③ 访问/的block,并且在/的block中找到a目录的名字与inode号码
    ④ 访问/a的inode
    ⑤ 通过/a的inode找到/a的block
    ⑥ 访问/a的block,并且在/a的block中找到b.txt文件的名字与inode号码
    ⑦ 访问/a/b.txt的inode
    ⑧ 访问/a/b.txt的block,访问文件内容
    其中步骤③⑥⑧过程涉及权限,即通过inode访问block过程涉及权限。

    默认权限

    1)    文件的默认权限是644,目录的默认权限是755
    
    2)    通过umask来控制默认权限,umask默认值为022
    
    3)    默认权限计算方法
          文件的默认最大权限是666,目录的默认最大权限是777,用默认最大权限减去umask值可得到文件、目录的默认权限,如果文件的结果为奇数,需要+1。
          例如:修改umask为033后,新建文件的默认权限为644,新建目录的默认权限为744。
    
    4)    修改默认权限
          临时修改:umask 032
          永久修改:编辑/etc/profile

    权限测试实例

    ## 创建环境:
    [root@Test01 ~]# useradd oldboy
    [root@Test01 ~]# mkdir -p /oldboy/oldboydir
    [root@Test01 ~]# chown oldboy.oldboy /oldboy/oldboydir
    [root@Test01 ~]# cd /oldboy/oldboydir
    [root@Test01 oldboydir]# touch {01..5}.txt
    [root@Test01 oldboydir]# ls -la
    total 8
    drwxr-xr-x 2 oldboy oldboy 4096 Jun 26 00:30 .
    drwxr-xr-x 3 root   root   4096 Jun 26 00:28 ..
    -rw-r--r-- 1 root   root      0 Jun 26 00:30 01.txt
    -rw-r--r-- 1 root   root      0 Jun 26 00:30 02.txt
    -rw-r--r-- 1 root   root      0 Jun 26 00:30 03.txt
    -rw-r--r-- 1 root   root      0 Jun 26 00:30 04.txt
    -rw-r--r-- 1 root   root      0 Jun 26 00:30 05.txt
    
    ## 修改为oldboydir目录为只读权限
    [root@Test01 oldboydir]# ll -d 
    drwxr-xr-x 2 oldboy oldboy 4096 Jun 26 00:30 .
    [root@Test01 oldboydir]# chmod u=r .
    [root@Test01 oldboydir]# ll -d 
    dr--r-xr-x 2 oldboy oldboy 4096 Jun 26 00:30 .
    
    ## 在oldboy用户下,查看oldboydir目录
    [oldboy@Test01 oldboy]$ ls -l /oldboy/oldboydir/
    ls: cannot access /oldboy/oldboydir/05.txt: Permission denied
    ls: cannot access /oldboy/oldboydir/01.txt: Permission denied
    ls: cannot access /oldboy/oldboydir/03.txt: Permission denied
    ls: cannot access /oldboy/oldboydir/02.txt: Permission denied
    ls: cannot access /oldboy/oldboydir/04.txt: Permission denied
    total 0
    -????????? ? ? ? ?            ? 01.txt
    -????????? ? ? ? ?            ? 02.txt
    -????????? ? ? ? ?            ? 03.txt
    -????????? ? ? ? ?            ? 04.txt
    -????????? ? ? ? ?            ? 05.txt

    总结:

    1. 目录的x权限决定用户是否能进入目录,同时x权限可以显示目录中文件属性信息
    2. 如果只有r权限,则目录中文件属性信息不能显示,会出现以上情况
    3. 在目录中对文件进行创建、删除和重命名需要有目录的w权限
    4. 因此对于目录来说,默认权限是755

    rwx对文件的影响

    读取权限(r)
    文件只有r权限: 具有读取阅读文件内容权限
    1.能使用查看类命令cat、head、tail、less、more
    2.不能复制、不能移动、不能编辑,不能删除

    写入权限(w)
    如果文件只有w权限: 具有新增、修改文件内容的权限
    1.使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
    2.使用echo、cat命令重定向或追加重定向技术可以往文件内写入数据
    3.不能复制、不能移动、不能删除,(删除需要看上级目录w的权限)

    执行权限(x)
    文件只有x权限,具有执行文件的权限。
    //注意: 普通用户需要有r权限,管理员不需要
    1.不能执行、查看、编辑、复制、移动、删除

    权限小结:

    文件rw权限, 可以查看和编辑文件内容
    文件rx权限, 只能查看和执行文件、不能编辑、复制、移动、删除
    目录rx权限, 允许浏览目录内文件以及子目录、并允许在目录内新建文件, 不允许创建、删除文件和目录

    注意事项:

    文件, x权限小心给予,建议赋予r或rw即可
    目录, w权限小心给予,建议无特殊需求赋予rx即可

  • 相关阅读:
    127.0.0.1
    【转】linux查看及修改文件权限以及相关
    【转】为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?
    ADO.NET类库与SQL相关的知识梳理
    【转】应用软件系统架构设计的“七种武器”
    CPoint、CSize、CRect类
    【转】关于int、float、double一些知识的整理
    C# 实现屏幕键盘
    如何在C#中读写INI文件
    TreeView复选框选择逻辑判断
  • 原文地址:https://www.cnblogs.com/tim1blog/p/9728147.html
Copyright © 2011-2022 走看看