【发布时间】:2020-05-29 16:49:45
【问题描述】:
我想为我的树莓派创建一个安装脚本,它通过配置/强化 ssh、安装防火墙和 fail2ban 以及最终摆脱 Raspbian 的默认用户来保护默认安装。所有其他部分都可以工作,但最后一部分总是向我显示错误。 新用户被创建并添加到 sudo 组。之后我想删除旧用户'pi'。由于脚本在 'pi' 的用户上下文中使用 sudo 运行,我想我可以通过切换到 'su' 来解决这个问题,但我只是收到一个错误,即用户无法被删除,因为它被进程使用:
echo "Enter the new user name? Only lower case letters allowed!"
read user
sudo adduser $user && adduser $user sudo
echo "default user 'pi' will now be deleted"
su -c "deluser -remove-home pi"
如果我检查“用户”,用户“pi”已经消失,但我仍然可以使用此帐户登录。如何在脚本中解决这个问题?
我尝试了在这里找到的答案:How do I use su to execute the rest of the bash script as that user? 和这里:https://unix.stackexchange.com/questions/361327/how-to-login-as-different-user-inside-shell-script-and-execute-a-set-of-commands,但似乎没有任何效果。我搜索了谷歌,但我找不到任何有效的解决方案。有没有可能是我想要的?
【问题讨论】:
-
users列出当前登录的用户。它没有说明谁可以登录和不能登录。您确定su -c "deluser -remove-home pi"成功且没有错误吗? -
不,这就是重点。最后一行 su -c "deluser -remove-home pi" 显示错误并且 pi 没有完全删除。只有 /home 目录消失了,但用户仍然可以登录
标签: bash authentication raspberry-pi sudo