13、特殊权限、if语句

来源:互联网 发布:如何用java编写小游戏 编辑:程序博客网 时间:2024/05/16 17:28
    linux文件系统上的特殊权限
        SUID,SGID,Sticky
        
        安全上下文
            进程有属主和属组;文件有属主和属组
                任何一个可执行文件,可否启动为进程,取决发起者是否有执行权限
                启动为进程后,其属主为发起者,属组为发起者所属组
                进程访问目标文件时的权限,取决于进程发起者属主
                    先对比进程发起者是否属于文件属主
                    再对比进程发起者是否属于文件属组
                    后应用文件“其它”权限
                    
        SUID权限:提权执行
            拥有SUID权限程序,被发起者启动为进程后,进程属主为本身程序文件属主
            权限设定
                chmod u+s file:file属主x执行变为s权限,S为没执行权限
                chmod u-s file
                
        SGID权限
            默认情况下,用户创建文件时,其属组为用户基本组
            目录设定SGID权限后,目录下所创建的文件属组都为此目录的属组
            权限设定
                chmod g+s DIR:DIR属组x执行变为s权限,S为没执行权限
                chmod g-s DIR
                
        Sticky权限
            对于多人可写目录,设置Sticky权限后,用户只对自己的文件可写
            权限设定
                chmod o+t DIR:DIR其它x执行变为t权限,T为没执行权限
                chmod o-t DIR
                
        权限设置
            7777:4SUID,2SGID,1Sticky;777
            
            
    bash脚本编辑:if
        选择执行
            if 条件判断;then
                COMMAND...
            fi
            
            if 条件判断;then
                COMMAND...
            lese
                COMMAND...
            fi
            例:脚本加user来创建用户并添加密码
                #!/bin/bash
                #
                if [ $# -lt 1 ];then
                        echo "jia can shu";
                        exit 1;
                fi

                if id $1 &> /dev/null;then
                        echo "$1 exists"
                else
                        useradd $1
                        [ $? -eq 0 ] && echo $1 | passwd --stdin $1 &> /dev/null && echo "yes" || exit 100
                fi
原创粉丝点击