zoukankan      html  css  js  c++  java
  • 010 文件管理的基本权限与特殊权限

    权限的概念

    -   rw-         r--         r--          abc.txt
        所属用户权限  所属组权限    其他用户权限
    
    三个权限位
    r(4) : 读
    w(2) : 写
    x(1) : 可执行
    
    
    权限的归属
    	u : 代表着自己
    	g : 代表着组
    	o : 代表着其他人
    

    权限的设置(chmod)

    # 自己和所属组拥有可读可写权限,其他人拥有可读权限。
    rw-    rw-   r--
    
    rw-rw-r--     7 = 4 + 2 + 1
    
    chmod 664 文件名称
    

    权限对⽂件or⽬录的意义

    探讨权限对文件及目录的意义

    探讨权限对目录下文件可读的影响

    [root@localhost ~]# su - test1
    Last login: Mon Mar 15 15:25:08 CST 2021 on pts/1
    [test1@localhost ~]$ ls -l /a/
    ls: cannot open directory /a/: Permission denied
    [test1@localhost ~]$ ls -l /a/b
    ls: cannot access /a/b: Permission denied
    [test1@localhost ~]$ ls -l /a/b/c
    ls: cannot access /a/b/c: Permission denied
    [test1@localhost ~]$ ls -l /a/b/c/abc.txt
    ls: cannot access /a/b/c/abc.txt: Permission denied
    
    # 1、在目录下,只有可读权限,无法查看文件内容(因为你无法操作目录)
    # 2、在目录下,只有可读可写权限,无法查看文件内容(理由同上)
    
    # 1、要想查看文件夹下的文件,文件夹必须至少拥有可执行权限;同时文件必须拥有可读权限.
    
    文件夹至少是 1
    文件也至少是 4
    

    探讨权限对目录下文件可编辑的影响

    # vim  mv   rm
    
    # 要想目录下的文件可以被编辑,目录必须拥有可执行权限同时目录下的文件必须拥有可读可写权限。
    
    文件夹至少是  1
    文件至少是    6
    

    探讨权限对目录下的文件的可执行的影响

    # 要想目录下的文件可以被执行,目录及文件都必须拥有可执行权限且文件同时还要有可读权限。
    
    文件夹和文件至少是 1
    文件至少是	4
    

    权限之特殊权限

    SUID

    • 作用对象必须是二进制文件(cat出来是乱码的文件)
    • 该文件必须拥有可执行权限
    chmod 4xxx [文件名]	
    or
    chmod	u+s	[文件名]
    

    SBIT

    • 只对目录有效,用来阻止非文件的所有者删除文件,比较常见的就是/tmp目录
    chmod o+t [文件名] 
    or
    chmod 1xxx [文件名]
    

    SGID

    • 用户对某一目录具有写和执行权限,用户就可以在该目录下建立文件,如果该目录被SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组
    chmod g+s [文件名] 
    or
    chmod 2xxx [文件名]
    

    Umask

    新建的文件、目录的默认权限是由umask决定的

    在Linux中,目录的默认权限为777,文件的默认权限为666。

    ⽂件权限计算⽅法:偶数位直接相减,奇数位相减后加1

    ⽬录权限计算⽅法:直接相减即可

    总结:umask设置的越小,权限就越大,慎用

    临时设置umask

    [root@localhost ~]# umask 000 //设置umask权限
    

    永久设置umask

    #更改配置文件
    [root@localhost tmp]# vim /etc/profile # 或者/etc/bashrc内容⼀样
    ......
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
     umask 002 //表示uid⼤于等于199的默认umask值,表示普通⽤户
    else
     umask 022 //表示uid⼩于199的默认umask值,表示root
    fi
    

    文件的输入与输出

    输入内容到文件和输出内容到文件

    追加和覆盖

    • > : 覆盖内容

      覆盖符号是将文件内容清空,之后在将新的内容写入文件。
      
    • >> : 追加内容

      # 在文件的末尾追加内容
      [root@localhost ~]# echo "String" >> abc.txt 
      [root@localhost ~]# cat abc.txt 
      String
      [root@localhost ~]# echo "String" >> abc.txt 
      [root@localhost ~]# cat abc.txt 
      String
      String
      [root@localhost ~]# 
      
    • Linux中:

      0代表标准输入

      1代表标准正确输出

      2代表标准错误输出

    • 将正确输出与错误输出都输出在一个文件上

  • 相关阅读:
    Linux_KVM虚拟机
    Linux_KVM虚拟机
    Python_编程特色
    Python_编程特色
    Linux_进程管理&计划任务
    Linux_进程管理&计划任务
    Linux_系统破坏性修复实验
    Linux_系统破坏性修复实验
    Linux_Shell基础
    Confluence 6 的高级 Crowd 设置
  • 原文地址:https://www.cnblogs.com/zhaokunhao/p/14539515.html
Copyright © 2011-2022 走看看