0%

Linux新建用户没有用户目录

简而言之,用adduser而不是useradd,用deluser而不是userdel


NAME
adduser, addgroup - add a user or group to the system

SYNOPSIS
adduser [options] [--home DIR] [--shell SHELL] [--no-create-home] [--uid
ID] [--firstuid ID] [--lastuid ID] [--ingroup GROUP | --gid ID] [--dis‐
abled-password] [--disabled-login] [--gecos GECOS] [--add_extra_groups]
user

adduser --system [options] [--home DIR] [--shell SHELL] [--no-create-
home] [--uid ID] [--group | --ingroup GROUP | --gid ID] [--disabled-pass‐
word] [--disabled-login] [--gecos GECOS] user

addgroup [options] [--gid ID] group

addgroup --system [options] [--gid ID] group

adduser [options] user group

useradduserdel 的尝试:

useradd user1 # 不会创建home目录,没有回显
useradd -m user2 # 会创建home目录,没有回显

useradd -m user1 # 不会补充创建home目录,回显报错
useradd: user 'user1' already exists

# 可以通过复制home模板补救,模板在/etc/skel,有时候也被叫做骨架目录
cp /etc/skel/ /home/user1 -a
chmod 700 /home/user1 #只有owner拥有所有所有权限
chown user1:user1 /home/user1 -R # owner改成user1

# 给用户加密码
passwd user1
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

# 删除用户
userdel -r user1 # 删除用户相关所有资源,包括home目录
userdel user2 # 保留home目录

当然,如果误删除了用户的home目录可以可以用上面的方法来修复。关于adduserdeluser的尝试:

[email protected]l:~# adduser user3
Adding user `user3' ...
Adding new group `user3' (1002) ...
Adding new user `user3' (1002) with group `user3' ...
Creating home directory `/home/user3' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for user3
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]Y

[email protected]:~# deluser user3
Removing user `user3' ...
Warning: group `user3' has no more members.
Done.

可以看到,adduser是交互式的,回显里有完整的信息,包括home目录的位置和复制模板的过程,还会让你创建密码和完善用户信息。

deluser也差不多,告诉你删除了那些资源。

顺便备忘一下查看用户信息的命令。

  1. 查看 /etc/passwd 文件
  2. 使用getent passwd 命令
  3. 使用 compgen -u 命令

参考:

欢迎到微信里去当吃瓜群众