Linux文件系统上的特殊权限

    SUID,SGID,Sticky

(1)权限

    r:读

    w:写

    x:执行

(2)安全上下文

    前提:进程有属主和属组,文件有属主和属组

  1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否有执行权限

  2. 启动为进程之后,其进程的属主为发起者,属组为发起者所属的组

  3. 进程访问文件时的权限,取决于进程的发起者:

    1. 进程的发起者,同文件的属主,则应用文件属主权限

    2. 进程的发起者,同文件的属组,则应用文件属组权限

    3. 进程的发起者,同文件的其它,则应用文件其它权限

(3)SUID

  1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否有执行权限

  2. 启动为进程之后,其进程的属主为原程序文件的属主

    权限设定:

        chmod u+s FILE...

        chmod u-s FILE...


(4)SGID

    默认情况下,用户创建文件时,其属组为此用户所属的基本组

    一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组

    权限设定:

        chmod g+s DIR...

        chmod g-s DIR...


(5)Sticky

    对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除自己的文件

    权限设定:

        chmod o+t DIR...

        chmod o-t DIR...


            SUID SGID STICKY

二进制:000->111

八进制:4        2        1

chmod 4777 /tmp/1.txt


几个权限位映射:

    SUID:user,占据user的执行权限位

        s:user拥有x权限

        S:user没有x权限

    SGID:group,占据group的执行权限位

        s:group拥有x权限

        S:group没有x权限

    STICKY:other,占据other的执行权限位

        t:other拥有x权限

        T:other没有x权限


bash脚本编程:

    过程式编程语言:

        顺序执行

        选择执行

        循环执行


    选择执行:

        if    条件判断为真

        then

            条件为真的分支代码

        fi

        

        if    条件判断为真

        then

            条件为真的分支代码

        else

            条件为假的分支代码

        fi