通过 bash 脚本添加用户帐户的正确方法

Mou*_*inX 8 bash users shell-script useradd

我将这个问题交叉发布到AskUbuntu,因为我的问题在 Debian/Ubuntu 上似乎最严重,但有人建议我在这里提问。解决这个问题的任何方法都应该适用于大多数发行版(例如,openSuse 和 Ubuntu)。这是我现在使用的脚本代码:

getent group $MYGROUP
if [ $? -ne 0 ] ; then
    sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
Run Code Online (Sandbox Code Playgroud)

它在 Ubuntu 上创建的用户帐户存在几个问题。

  • 未设置终端提示(不echo $PS1返回任何内容)
  • 箭头键和 Tab 键在终端中无法正常工作
  • 密码似乎不起作用(虽然我仍然不清楚这个问题到底是什么)
  • 不尊重为此新用户设置的 /etc/sudoers 权限

相反,如果我使用adduser(而不是 useradd)手动创建用户,则不会遇到这些问题。但是我需要一个非 Debian 独有的脚本或通过我的 bash 脚本添加用户帐户的方法。

我也有一个先前的问题在这个题目,但它是不同的不够,这是不相关的这个问题。

Jos*_* R. 8

问题是 Debian 上新用户的默认 shell/bin/sh使您习惯的大部分功能bash都不存在。尝试添加-s /bin/bash到您的useradd命令中。

您还可以通过编辑/etc/default/useradd.

编辑:

自动修改密码的解决方法(MountainX找到的)在这里