首页 > 代码库 > 18.创建用户之su命令切换用户

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

前戏

????累了,也得写一番

正文

  1. 需求

    有一个软件为了安全,该软件在运行时不推荐使用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

?

  1. root不能直接执行me ?

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

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

????????ls -a

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

  1. 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命令切换用户