我将这个问题交叉发布到询问Ubuntu因为我的问题在 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"
它在 Ubuntu 上创建的用户帐户存在几个问题。
- 终端提示未设置(
echo $PS1
不返回任何内容) - 箭头键和 Tab 键在终端中无法正常工作
- 密码似乎不起作用(尽管我仍然不清楚这个问题到底是什么)
- 不尊重为该新用户设置的 /etc/sudoers 权限
如果我手动创建用户adduser
(而不是 useradd),我就不会遇到这些问题。但我需要一个非 Debian 专有的脚本或通过 bash 脚本添加用户帐户的方法。
我也有一个上一个问题关于这个主题,但它足够不同,与这个问题无关。
答案1
问题是 Debian 上新用户的默认 shell不存在/bin/sh
您习惯的大部分功能。bash
尝试添加-s /bin/bash
到您的useradd
命令中。
您还可以通过编辑 来永久更改默认 shell /etc/default/useradd
。
编辑:
自动修改密码的解决方案(MountainX找到的)是这里
答案2
光标键和提示问题听起来像是骨架文件没有正确复制。新用户的主目录是否有.bashrc
?
至于密码,man useradd
Slack 上告诉我的
-p, --password PASSWORD 加密密码,由 crypt(3) 返回。默认是禁用密码。
所以你可能不应该把明文密码放在那里。不过,我现在找不到手动调用 crypt 的便捷方法,所以也许您需要额外调用sudo passwd $mynewuser
.