zoukankan      html  css  js  c++  java
  • 18.创建用户之su命令切换用户

    前戏

        累了,也得写一番

    正文

    一、需求

    有一个软件为了安全,该软件在运行时不推荐使用ROOT账户运行。所以我们会有个初始化shell脚本,来创建用户和初始化文件

            分析:

        1、判断用户是否存在(譬如叫god),没有则创建

    2、创建后设置密码为123

    3、把一些程序文件拷贝过去,并且除了root外,只能god用户运行(最好是root也不能方便的运行)

    二、具体脚本

    USER_COUNT=`cat /etc/passwd | grep '^god:' -c`

    USER_NAME='god'

     

    useradd $USER_NAME 2>/dev/null #2 为如果输出结果为错误,不输出错误信息

    if [ $? -eq 0 ]

    then

    echo "123" | passwd $USER_NAME --stdin

    echo "done"

    else

    #su - god

    if [ ! -d /home/god/bin ] #判断文件夹是否存在 -d

         then

         su - god -c "mkdir bin" #su -xxx -c 使用某用户后还能切换回原来用户,切换用户后,路径为/home/god所以不用补全全路径

    echo "bin is created"

         fi

    su - god -c 'echo "echo i am god" > bin/me '

    su - god -c 'chmod +x bin/me '

    fi

     

    三、root不能直接执行me ?

    主要是只有god的环境变量中才有/home/god/bin这个目录,使用echo $PATH可以打印出来。所以god用户可以直接me 执行,root就必须 ./me

     

    四、bin文件夹下其实有隐藏的环境变量

        ls -a

        http://www.cnblogs.com/ManMonth/p/3469397.html

    五、su 命令 切换用户

    http://www.runoob.com/linux/linux-comm-su.html

    su -xxx -c 使用某用户后还能切换回原来用户,切换用户后,路径为/home/god所以不用补全全路径

     

    六、/dev/null 不输出错误信息

        http://blog.csdn.net/hj33053252/article/details/9293189

     

     

    尾声

    在人生中,赢家并不是那些有优秀基因的人,或是那些最有天分的人,而是那些最不屈不挠的人!当他们跌倒了,他们总是不断的爬起来,继续做,继续做。 no pain no gains (^ _ ^) !!
  • 相关阅读:
    JDBCUtils
    C3P0配置
    反射基本常识(二)
    反射基本常识(一)
    String to Integer (atoi)
    ZigZag Conversion
    Longest Palindromic Substring
    Palindrome Number
    Reverse Integer
    Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/fatsnake/p/5883389.html
Copyright © 2011-2022 走看看