zoukankan      html  css  js  c++  java
  • day10(权限)

    一:文件权限

    1.权限的概念

    -rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

    - 10个字符确定不同用户能对文件干什么

    - 第一个字符代表文件(-)、目录(d),链接(l)

    - 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

    - 第一组rwx:文件所有者的权限是读、写和执行

    - 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

    - 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

    也可用数字表示为:r=4,w=2,x=1  因此rwx=4+2+1=7

    - 1 表示连接的文件数

    - root 表示用户

    - root表示用户所在的组

    - 1213 表示文件大小(字节)

    - Feb 2 09:39 表示最后修改日期

    - abc 表示文件名

    
    后三个有三个权限位(就是三个字符,r--或者rw-):
    r:可读                         代号4
    w:可写(修改)                  代号2
    x:可执行(当成命令或者程序执行)   代号1

    2.权限的归属

     u:代表自己

     g:代表组

     o:代表其他人

    3.权限的设置  chmod

    格式:chomd 数字 文件名称

    chomd  664  6=4+2(r是4,w是2)

    chmod u+r 文件  #自己添加一个可读权限

    例题:545写出对应字母的权限
    -r-xr--r--

     二:权限对⽂件or⽬录的意义

    1.文件夹对文件权限的影响的三条结论

    (1)目录下文件可读

             目录x权限的话,文件要有r'权限

    (2)目录下文件可写

             目录须拥有可执行(x),文件可读权限(-r)

    (3)目录下的文件可以被执行,

           目录必须拥有可执行权限,目录下文件拥有可执行的权限

    总结:

    首先需要对沿途的文件有-x权限,对目标文件要有r浏览,w创建修改移动,

    3.设置权限 chmod 

    (1)加减法(在原来基础上进行修改):

    [root@localhost ~]# ll 1.txt
    -rw-r--r-- 1 root root 0 Mar 15 20:49 1.txt
    #源文件的权限
    加法:
    [root@localhost ~]# chmod u+x,g+x,o+w 1.txt
    [root@localhost ~]# ll 1.txt
    -rwxr-xrw- 1 root root 0 Mar 15 20:49 1.txt
    减法:
    [root@localhost ~]# chmod u-x 1.txt

    参数: a

    [root@localhost /]# chmod a-w /opt/a/b/c/1.txt #所有的都减去w权限
    [root@localhost /]# ls -l /opt/a/b/c/1.txt
    -r--r--r-x 1 root root 42 Mar 16 15:01 /opt/a/b/c/1.txt

    (2)赋值法(在原来基础上进行覆盖):

    chmod u=rwx,g=rwx,o=rwx 1.txt 
    #u,g,o不是每次都要写的
    a:属主属组属其他 一起设置

    chmod u=-,g=-,o=- 1.txt
    权限全部清空

    (3)数字法:

    chmod 777 文件路径(1.txt)
    777 表示三个权限位置,不能单独改正,只能一起

    (4)-R递归修改

    chmod -R 777 /root/a
    递归修改目录的权限

    4. 设置用户和组

    (1)chown

    useradd libai
    groupadd devops
    chown libai.devops /root/a.txt
    就是libai用户对文件有读权限,devops对文件有rwx权限

    结果是:

     (2)chown -R

        格式:chown -R  属主.属组  目录 

    5.权限的作用

    对于文件:

    r:读取文件内容

    w:修改文件内容

    x:可以把文件内容当作一个命令或者程序运行

    针对目录:

    r:可以浏览目录下文件名字和目录名字

    w:创建删除和移动文件(rm和mv)

    x:可以进入该目录,操作目录下的文件(cd)

     6.不切换到其他用户界面,进行一条命令的操作

    su -lili  -c 'cat /a/b/c/1.txt'

    三:文件管理之特殊权限

    1.SUID

    引子:etc/shadow 普通用户没有修改密码权限也可以实现更改密码------SUID

    [root@localhost /]# ll `which passwd`    #反引号是tab上面的键
    -rwsr-xr-x. 1 root root 27856 Apr  1  2020 /usr/bin/passwd
    
    普通用户可以修改密码

     一旦一个文件设置成SUID后,其他用户访问该文件时获得root一样的权限;该权限仅在执行时候有效

    2. SGID

    (1)当SGID 作⽤于普通⽂件时,和 SUID 类似,在执⾏该⽂件时,⽤户将获得该⽂件所属组的权限。

    (2)当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件

            如果该⽬录同时⽤ SGID 修饰,则该⽤户在这个⽬录下建⽴的⽂件都是属于这个⽬录所属的组。
    [root@localhost ~]# mkdir /test
    [root@localhost ~]# chmod g+s /test/ # 等同于chmod 2755 /test/
    [root@localhost ~]# ll -dl /test/
    drwxr-sr-x 2 root root 6 811 17:06 /test/ [root@localhost ~]# [root@localhost ~]# chown .egon /test/ 
    # 后期任何⼈在该⽬录下创建的⽂件or⽬录的属组都是egon

    3. SBIT

    其实 SBIT 与 SUID 和 SGID 的关系并不⼤,有时也称为Sticky。
    SBIT ⽬前只对⽬录有效,⽤来阻⽌⾮⽂件的所有者删除⽂件。⽐较常⻅的例⼦就是 /tmp ⽬录:
    [root@localhost ~]# ls -dl /tmp/
    drwxrwxrwt. 13 root root 4096 811 17:09 /tmp/ 
    [root@localhost ~]# chmod o+t /test/ # 或者 chmod 1755 /test

    权限信息中最后⼀位 t 表明该⽬录被设置了 SBIT 权限。SBIT 对⽬录的作⽤是:当⽤户在该⽬录下创建
    新⽂件或⽬录时,仅有⾃⼰和 root 才有权⼒删除,主要作⽤于⼀个共享的⽂件夹
    新建⽂件、⽬录的默认权限是由umask决定的
    1、uid>199并且属主与数组相等的⽤户下,umask: 0002
    ⽂件 664
    ⽬录 775
    2、除1之外的其他⽤户下,⽐如root⽤户,umask: 0022
    ⽂件 644
    ⽬录 755
    linux中⽂件默认权限为666、⽬录权限默认为777,在umask的影响下
    ⽂件权限计算⽅法:偶数位直接相减,奇数位相减后加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
     
     
     
     
     
  • 相关阅读:
    C语言第四次博客作业嵌套循环
    C语言第六次博客作业数据类型
    C语言第五次博客作业函数
    C语言第二次博客作业分支结构
    MD5 DSA RSA 简单 区别
    关于Linux Grep命令使用的详细介绍
    最好、最智能化、最方便的Java开发软件 IntelliJ IDEA 10.5.2
    Linux Find 命令精通指南
    linux 下面递归查找
    公钥和私钥的解释
  • 原文地址:https://www.cnblogs.com/dayday-up-a/p/14536895.html
Copyright © 2011-2022 走看看