顶部编辑:我刚刚发现 - 这是adduser
和之间的区别useradd
。使用adduser
可以正确完成所有操作。您可以使用useradd
,但它比较旧,并且实际上只会创建用户 - 而不是主目录或其他预期任务。那是我的问题。:) 留下这个以防它对其他人有帮助。
原来的:
我已经在 Ramnode VPS 上安装了 Ubuntu 14.04 - 极简,没有 GUI,只有 SSH。
当我通过例如添加用户时adduser myusername
,它不会创建主目录,并且终端很奇怪(我看到像^[[A
退格键这样的控制代码,并且这样做ls
不会像我的主用户那样显示漂亮的颜色)。
我已经通过运行添加了主目录sudo mkhomedir_helper myusername
,并且确实创建了一个主目录...但这并没有解决我所认为的缺少 BASH 内容的问题,或者可能是错误的 shell 或其他什么的。
奇怪的是,这是我创建的第二个用户。第一个用户工作正常。我不知道发生了什么不同。有人有什么见解吗?
答案1
基本上,我刚刚学到:使用adduser
,而不是useradd
。前者添加了您期望的所有内容(主目录等);后者较旧,实际上只是创建用户。
答案2
您应该尝试做的第一件事就是adduser
准确告诉它应该做什么:
sudo adduser --home /home/newuser --shell /bin/bash
答案3
添加用户
adduser
并 根据命令行选项和文件addgroup
中的配置信息向系统添加用户和组 。/etc/adduser.conf
adduser
并且addgroup
可以以五种模式之一运行:
添加普通用户:
如果使用一个非选项参数并且没有--system
或--group
选项调用,adduser 将添加一个普通用户。
添加系统用户:
如果使用一个非选项参数和 调用--system option
,adduser
将添加一个系统用户。如果系统 uid 范围内已存在同名用户,adduser
将退出并显示警告。
添加用户组:
如果adduser
分别使用--group
选项和不使用 --system
选项调用,或addgroup
调用,则会添加一个用户组。
添加系统组:
如果addgroup
使用该--system
选项调用,则会添加一个系统组。
将现有用户添加到现有组:
如果使用两个非选项参数调用,adduser
将把现有用户添加到现有组。
选项:
--conf FILE
--disabled-login
--disabled-password
--force-badname
--gecos GECOS
--gid ID
--group
--help
--home DIR
--shell SHELL
--ingroup GROUP
--no-create-home
--quiet
--debug
--system
--uid ID
--firstuid ID
--lastuid ID
--add_extra_groups
--version
退出值:
0
--- 该用户按指定方式存在。
这可能有两个原因:用户是由 创建的, 或者在调用adduser
之前用户已经存在于系统中。如果返回 0,则使用与之前相同的参数第二次调用 adduser 也会返回 0。adduser
adduser
1
--- 创建用户或组失败,因为已存在具有指定以外的 UID/GID 的用户或组。由于与配置的正则表达式不匹配,用户名或组名被拒绝。Adduser 已因信号中止。或者由于许多其他尚未记录的原因,这些原因会打印到控制台。然后您可以考虑删除--quiet
以使 adduser 更详细。