zoukankan      html  css  js  c++  java
  • Linux第五节随笔 /file / vim / suid /sgid sbit

    三期第四讲
    1.查询文件类型与文件位置命令
      file
        作用:查看文件类型(linux下的文件类型不以后缀名区分)
        语法举例:
        [root@web01 ~]# file passwd
        passwd: ASCII text 《——ASCII文本文档
        [root@web01 ~]# file 123
        123: directory 《——目录文档
        [root@web01 ~]# file /var/lib/mlocate/mlocate.db
        /var/lib/mlocate/mlocate.db: data 《——data文档
        [root@web01 ~]# file /bin/ls
        /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped 《——可执行        文档(包含suid设置、兼容的cpu硬件平台,lib库,linux内核等)

    2.vim
      作用:修改文件
      模式: 默认进来是一般模式、i 编辑模式、esc 退出编辑 、shift+: 底行模式
      参数: w: write/q:quit/! force
      编辑模式:
        a:光标之后插入内容
        A:光标最后插入内容
        o:当前光标下新行插入内容
        O:当前光标上新行插入内容
        x:向后删除
        X:向前删除
        u:撤销当前操作
        U:撤销所有操作
        shift+D :删除光标之后的字符

      一般模式:
        ^:跳到行首
        $:跳到行尾
        ndd:删除n行,从光标起
        nyy:复制n行
        p :粘贴
        gg:文件首行
        G :文件尾行
        g :全局替换 1,$s/root/ROOT/g 1,$s#root#ROOT#g
        1, $s#/#\/#g: 脱意:,去掉特殊符号的意思
        /: 查找字符, n: 查找下一个 N:查找上一个
        dw:删除词语

      底行模式:
        set number: 显示行号
        set nonu: 不显示行号
        r file: 合并文件
    3. 目录中文件是否能修改需要看上级目录的权限

    4、设置特殊权限 SUID、SGID详解 参考:link
      SUID : Set User ID (find / -perm -04000 -type f -ls查找设置SUID的程序)
        作用:临时赋予用户二进制文档的拥有者的权限(主要用于让普通用户可以使用某些特殊命令)
        语法1:chmod u+s file(增加s权限)
        语法2:chmod u-s file(减去s权限)
        使用限制与环境:
          1、仅对于二进制文件有效;

          2、执行者必须对文件拥有x权限(否则即使设置了SUID,由于你对文件根本无法执行SUID此时也无效,此时权限位显示S);

          3、权限只是在执行过程中拥有。

          4、执行者必须对文件拥有x权限(否则即使设置了SUID,由于你对文件根本无法执行SUID此时也无效,此时权限位显示S);

          PS:例如passwd命令,路径/usr/bin/passwd,权限为"-rwsr-xr-x"。(passwd命令会修改"/etc/shadow")
          PS:SUID只可用于二进制文件,不可用于shell script文件。

    5.SGID : Set Group ID:继承上一级目录的所属组权限
      对于文件
        作用:临时赋予用户二进制文档的拥有组的权限(多用于让普通用户可以使用某些特殊命令,和suid类似)
        语法1:chmod g+s file(增加s权限)
        语法2:chmod g-s file(减去s权限)
        使用限制与环境:
          1、仅对于二进制文件有效;
          2、执行者必须对文件拥有x权限(否则根本无法执行文件,更别谈SGID赋予权限,此时权限位显示S);
          3、权限只是在执行过程中拥有。     

          4、执行者必须对文件拥有x权限(否则根本无法执行文件,更别谈SGID赋予权限,此时权限位显示S);

          PS:例如locate命令,路径/usr/bin/locate,权限为"rwx--s--x"。
          ( locate命令会读取"/var/lib/mlocate/mlocate.db")
      对于目录
        作用:临时将用户的effective group修改成该目录的的群组
        语法1:chmod g+s dir(增加s权限)
        语法2:chmod g-s dir(减去s权限)
        使用限制与环境:      

        1、文件的所属组是用户的主组,如果在设置了SGID目录下建立文件,则文件的所属组是继承目录的属组,并且新建立的目录也继承g+s权限
        2、若用户对此目录拥有w权限,由于effective group被修改成该目录的group,所以用户在此目录下创建任何文件,属组该目录的用户组。
        3、在group位的x显示为S或s,s代表包含了x权限,S代表未包含x权、
        4、使用者必须对该目录拥有x权限(否则无法进入,更别谈SUID赋予权限,此时权限位显示S);

    6.SBIT Sticky Bit, 只对目录有效,对文件无效,防止删除其他用户的资料
      作用:限制目录下不同用户之间对于其他用户文档或目录的编辑权限。
      语法1:chmod o+t dir(增加t权限)
      语法2:chmod o-t dir(减去t权限)
      使用限制与环境
        1、只能针对目录;
        2、必须有x和w权限(否则无法进入和编辑,更不用谈sbit权限,此时权限位显示T);
        3、用户自身创建的文档和目录,只有自己和root可以编辑(重命名、修改内容、复制、删除等)

          4、必须有x和w权限(否则无法进入和编辑,更不用谈sbit权限,此时权限位显示T);

    7.赋予权限

    chmod 4777 //是设sid
    chmod 2777 //是设置gid
    chmod 1777 //是设sticky-- t 该位可以理解为防删除位. 一个文件是否可以被>某用户删除,主要取决于
            该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不
            能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则
            可以对文件使用sticky bit位

    0: 不设置特殊权限
    1: 只设置sticky
    2 : 只设置SGID
    3: 只设置SGID和sticky
    4 : 只设置SUID
    5 : 只设置SUID和sticky
    6 : 只设置SUID和SGID
    7 : 设置3种权限

  • 相关阅读:
    各种sensor名称统计
    数组指针和指针数组的区别
    自己写一个线程池
    git命令总结
    用链表实现队列的功能
    一个free的问题
    生产者消费者问题--进阶2
    影响架构决策的非功能性需求
    从商业角度探讨API设计
    给公司部门设计的SOA架构
  • 原文地址:https://www.cnblogs.com/LinuxSuDa/p/4268214.html
Copyright © 2011-2022 走看看