zoukankan      html  css  js  c++  java
  • Linux命令学习笔记(3)——理解SUID,SGID,stick

    http://www.newwhy.com/2010/0915/15015.html

    了解这三个特殊访问位前先了解Linux文件访问特权位:

      

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

     

     

     

     

    SUID

    SGID

    sticky

    r

    w

    x

    r

    w

    x

    r

    w

    x

    文件类型位

    特殊访问位

    拥有者特权位

    同组特权位

    其他用户特权位

    10. SUID(set-user-ID)位

        SUID位的作用:若文件F设置SUID位为1,文件F的拥有者是用户A,而用户B拥有文件F的执行权限,则当用户B执行文件F时就以文件拥有者(用户A)的权限执行。

        SUID位的典型应用:修改Linux用户密码。Linux用户密码加密后存储在/etc/passwd文件中,用户使用passwd命令修改密码。而修改/etc/passwd文件需要root权限, 如下图:

    heaad@ubuntu:~$ ls -l /etc/passwd

    -rw-r--r-- 1 root root 1672 2010-04-30 03:22 /etc/passwd

    那么普通用户是如何修改自己的密码的呢?答案在/usr/bin/passwd文件中,如下图:

    heaad@ubuntu:~$ ls -l /usr/bin/passwd

    -rwsr-xr-x 1 root root 37140 2010-01-26 09:09 /usr/bin/passwd

    passwd命令的所有者特权位中的x变成了s,表示passwd文件设定了SUID特权位。那么其他用户执行passwd命令时将获得passwd文件的所有者(root)的权限,于是就有权限修改/etc/passwd文件了。

    设置SUID位:使用如下命令设置SUID位:

    $ sudo chmod 4xxx file

    $ sudo chmod u+s file

    其中的4xxx中的4是因为SUID位在特殊访问位中的第三位。

    执行完上面的两条命令中的其中一条后,file文件的权限可能变成了rwsr-xr-x

        若文件所有者也没有该文件的执行权限,则上面的两条命令可能使file的访问权限位变成了rwSr--r--,其中的S是大写的

    11. SGID(set-group-ID)位

        作用:SGID与SUID类似,但它是使执行的线程拥有所在组的权限。

        设置方式:

    $ sudo chmod 2xxx file

    $ sudo chmod g+s file

        执行完以上其中一条命令后,文件file的访问权限可能会变成rwxr-sr-x 。

    12. sticky位

        作用:若目录A设置了sticky位,则除了目录A的所有者和root用户外,其他用户均不能删除或重命名目录A下的文件。

        设置方法:

    $ sudo chmod +t file

    $ sudo chmod 1xxx file

    执行完以上其中一条命令,文件的访问权限位可能被改变为rwxr-xr-t 若文件所有者也没有执行权限,则访问权限位可能会变成rw-r--r-T

    参考:《Linux:The Textbook》



  • 相关阅读:
    02.v-on的事件修饰符
    01.Vue的系统指令
    00-Vue的介绍和vue-cli
    vs code快捷键
    分库分表之后,主键的处理方法
    动态扩容分库分表
    前端web通过flask操作数据库-增删改查
    mysql组复制集群简介
    vsftp进阶-锁定目录
    kvm克隆
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647713.html
Copyright © 2011-2022 走看看