【问题标题】:Script is not switching from root to normal user automatically脚本不会自动从 root 切换到普通用户
【发布时间】:2019-03-19 03:04:15
【问题描述】:

我以 root 身份登录,而不是运行具有以下内容的脚本

#! /bin/bash
id studentapp if [ $? -eq 0 ]; 
then  echo " SKIPPING user creation" 
else useradd studentapp 
echo " User created" 
fi 
cd /home/studentapp

任何想法...

【问题讨论】:

    标签: linux shell scripting centos


    【解决方案1】:

    如果创建了用户,您可能需要在 else 块中使用 su studentappcd 更改工作目录。如果没有创建用户 - 可能没有这样的目录。

    su man page

    cd man page

    对你也有帮助:

    check if user exists

    check if direcory exists

    更新

    #! /bin/bash
    id studentapp
    if [ $? -eq 0 ];
    then
        echo "user exists" 
    else
        useradd studentapp --create-home
        passwd studentapp
        echo "user created" 
    fi
    su studentapp
    cd /home/studentapp
    

    【讨论】:

    • 如果我去控制台我可以找到用户并且可以手动切换但不能通过脚本请找到控制台快照 [root@instance-1 Sunnyisgone]# cd /home/studentapp [root@instance -1 studentapp]#
    • 试试这个:#! /bin/bash
      id studentapp if [ $? -eq 0 ];然后回显“用户存在”否则用户添加学生应用回显“用户创建”su studentapp fi cd /home/studentapp ``
    • 还是同样的问题。我在谷歌云上使用 centos vm。可能我会在实际机器上试一试,可以回复你。
    • useradd 命令创建一个锁定的用户帐户。您还需要通过发出passwd 命令来解锁帐户以分配密码。
    • 您之前提供的代码有效。谢谢。实际上 Su studentapp 命令成功了。谢谢。可能需要“passwd studentapp”,因为我还没有测试完整的堆栈,但到目前为止它的工作。
    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多