Ubuntu 服务器 - 无需登录即可添加用户并创建主目录结构

Ubuntu 服务器 - 无需登录即可添加用户并创建主目录结构

我需要为应用程序创建一个新用户(标准用户,因为它需要用户目录结构)。但是,我注意到 adduser 仅在该用户首次登录后创建用户主目录结构。

我只打算使用 su 账户来运行应用程序。有什么方法可以创建用户目录而无需先远程登录吗?

答案1

如果您想在创建无需登录的用户时创建主目录:

useradd -m username

Debian/Ubuntu/Mint家族中,adduseruseradd是单独的命令,但在Fedora/RHEL/CentOS家族中,/usr/sbin/adduser是到 的符号链接/usr/sbin/useradd,在 OpenSuse 中,adduser默认情况下不存在。

答案2

当要创建的用户被标记为系统用户 时,Perl脚本adduser似乎只会创建主目录而不会从目录中复制文件。/etc/skel--system

# adduser --system --home /var/lib/serviceuser serviceuser
Adding system user `serviceuser' (UID 130) ...
Adding new user `serviceuser' (UID 130) with group `nogroup' ...
Creating home directory `/var/lib/serviceuser' ...

root@stimpy:~# ll /var/lib/serviceuser/
total 8
drwxr-xr-x  2 serviceuser nogroup 4096 Jun  1 13:29 ./
drwxr-xr-x 79 root        root    4096 Jun  1 13:29 ../

现在让我们删除该用户并将其重新创建为普通用户。

# userdel -r serviceuser
userdel: serviceuser mail spool (/var/mail/serviceuser) not found

# adduser  --home /var/lib/serviceuser serviceuser
Adding user `serviceuser' ...
Adding new group `serviceuser' (1003) ...
Adding new user `serviceuser' (1003) with group `serviceuser' ...
Creating home directory `/var/lib/serviceuser' ...
Copying files from `/etc/skel' ...
...

# ll /var/lib/serviceuser/
total 32
drwxr-xr-x  2 serviceuser serviceuser 4096 Jun  1 13:25 ./
drwxr-xr-x 79 root        root        4096 Jun  1 13:25 ../
-rw-r--r--  1 serviceuser serviceuser  220 Jun  1 13:25 .bash_logout
-rw-r--r--  1 serviceuser serviceuser 3771 Jun  1 13:25 .bashrc
-rw-r--r--  1 serviceuser serviceuser 8980 Jun  1 13:25 examples.desktop
-rw-r--r--  1 serviceuser serviceuser  807 Jun  1 13:25 .profile

您可以/etc/skel使用以下命令手动复制通常用于此目的的目录。

rsync -axHAX --owner=serviceuser --group=nogroup /etc/skel/ /var/lib/serviceuser/

但我建议也为 配置一个组serviceuser,不确定您是否这样做了。但adduser似乎也跳过了创建专用组。


第二个可能更好的选择是使用useradd创建您的用户。这还将创建一个基于用户主页的用户主页,/etc/skel并为系统用户创建一个专用组。

# userdel -r serviceuser
userdel: serviceuser mail spool (/var/mail/serviceuser) not found

# useradd --system --create-home --home-dir /var/lib/serviceuser serviceuser

# ll /var/lib/serviceuser/
total 32
drwxr-xr-x  2 serviceuser serviceuser 4096 Jun  1 13:35 ./
drwxr-xr-x 79 root        root        4096 Jun  1 13:35 ../
-rw-r--r--  1 serviceuser serviceuser  220 Apr  4  2018 .bash_logout
-rw-r--r--  1 serviceuser serviceuser 3771 Apr  4  2018 .bashrc
-rw-r--r--  1 serviceuser serviceuser 8980 Apr 16  2018 examples.desktop
-rw-r--r--  1 serviceuser serviceuser  807 Apr  4  2018 .profile

答案3

Ubuntu 19.10:

useradd --help

选项包括:

  • -m, --create-home 创建用户的主目录
  • -M, --no-create-home 不创建用户主目录

相关内容