我安装了新版本的 Ubuntu 16.04.1,并尝试通过创建新的用户帐户root
。我已将SHELL
行更改/etc/default/useradd
为如下:
SHELL=/bin/bash
(之前读过/bin/sh
)
执行useradd -D
提供以下输出:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
然后我尝试创建一个用户,如下所示:
useradd -m -G sudo -c "David Buckley" david
但默认的 shell 仍然是/bin/sh
.更具体地说,该/etc/passwd
文件内容如下:
david:x:1000:1000:David Buckley:/home/david:
稍微相关的一点是,新用户不会收到 sudo 访问权限。给定 groups david sudo
,并且该/etc/sudoers
文件包含以下行(未注释):
# Allow members of group sudo to execute any command
sudo ALL=(ALL:ALL) ALL
我可能做错了什么导致这种情况?
答案1
答案2
奇怪的是,昨天我在运行 Ubuntu 16.04 LTS 的服务器上也发生了这种情况。
我没有具体的答案为什么发生这种情况,但这里有一个对我有用的快速解决方案:
不要使用useradd
,adduser
而是使用!
描述
adduser
并addgroup
根据命令行选项和配置信息将用户和组添加到系统中/etc/adduser.conf
。它们是低级工具(如useradd
、groupadd
和usermod
程序)更友好的前端,默认情况下选择符合 Debian 策略的 UID 和 GID 值、创建具有骨架配置的主目录、运行自定义脚本和其他功能。
至于sudo
,您必须注销该用户,然后重新登录,新的组设置才能生效。
这是一个良好的链接上useradd
VS adduser
.