18.创建用户之su命令切换用户

Posted fatsnake

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

尾声

以上是关于18.创建用户之su命令切换用户的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令之切换用户su

如何快速切换到用户john的主目录下

su命令sudo命令限制root远程登录

linux下用户切换的问题。

su命令

2基本命令-系统用户