Linux用户管理–用户的添加和删除(自我学习)
UID是用户ID,GID是用户组ID。
文件只识别ID,当我们需要显示用户名称时,系统会通过找到相应ID的文件,找到用户名称。
每一个文件都有一个拥有者ID和拥有人组ID
用户ID信息存放在/etc/passwd中,用户组信息存放在/etc/group中。
用户名称显示为数字
这是我们查找到的正常的用户。
当我们用
vim /etc/passwd
打开文件,找到下列文档内容:
将用户ID修改,然后在查找一下用户信息:
查找不到用户名称,直接显示用户ID
useradd和adduser都能添加用户,useradd是linux命令,adduser是perl脚本。
adduser name 会自动添加用户,并且还会自动地创建与这个用户名名字一样的用户组作为这个用户的初始用户组。此外,还会自动地在/home目录下面创建一个与用户同名的目录,接着执行"cp /etc/skel /home/用户名"的操作,实现新增用户的主目录的初始化。
在使用adduser Tom时产生了以下错误
adduser: 请输入匹配 NAME_REGEX[_SYSTEM] 配置选项配置的正则表达式的用户名。
使用 `--force-badname‘ 选项可以放松检查或者重新配置 NAME_REGEX。
这是因为Tom不符合NAME_REGEX[_SYSTEM]的正则表达式,通过–force-badname可以使用弱检查。如果不想检查,可以在/etc/adduser.conf中将相关选项屏蔽
adduser Tom --force-badname
这就不会出现错误提示,直接进入输密码阶段
useradd在创建用户时,只是创建了一个用户名,没有密码,目录等,要添加一定的参数才可以达到和adduser一样的效果。
相关参数:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
没有使用任何参数,则会创造一个没有任何权限,信息的账户。
当用useradd username -p password 创建用户时,发现密码无法通过,问题解决如下:
#用vim指令打开密码文件 vim /etc/shadow
可以看出,用户的密码保存是加密的,当我们读取密码时会对密码进行解密,而useradd -p是将用户的密码不加密进行保存,而在读取的时候都要进行解密,导致了读取存储的密码时错误,密码不匹配,无法登陆。需要在用户创建后用passwd命令对其进行密码更改。
成功登陆。
userdel username
这段指令会删除相应的用户,但是,如果用户的信息十分完备,userdel不能删除全部的用户信息。目前已知的会删除的内容是用户的UID和密码信息,已知的不会删除的是这个用户的原本的主目录文件的拥有者ID(不会删除这个文件夹,且这个文件夹仍然归这个已经被删除的用户,即使他不存在。当我们在创造一个同名的用户时会提示该目录已存在,但是仍然能够创建成功,这个新用户会占据这个目录。