用户与用户组

创建用户

  • adduser username 添加用户

在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。

在创建用户的时候, 可以指定用户目录、UID以及Shell解释器:

useradd -d /home/admin -u 8888 -s /sbin/nologin linuxprobe

注意

/sbin/nologin 是终端解释器中的一员,与Bash解释器有着天壤之别。一旦用户的解释器被设置为nologin,则代表该用户不能登录到系统中

使用 id 命令查看用户的uid及所属的组:

$ id admin
uid=1000(admin) gid=1000(admin) groups=1000(admin)

删除用户

userdel 命令用于删除用户,格式为 userdel [选项] 用户名

参数如下:

  • -f 强制删除用户
  • -r 同时删除用户及用户家目录
userdel -r username # 删除一个用户 ( '-r' 排除主目录)

设置登录密码

passwd 命令用于修改用户密码、过期时间、认证信息等,格式为 passwd [选项] [用户名]

普通用户只能使用passwd命令修改自身的系统密码,而root管理员则有权限修改其他所有人的密码。更酷的是,root管理员在Linux系统中修改自己或他人的密码时不需要验证旧密码,这一点特别方便。既然root管理员可以修改其他用户的密码,就表示完全拥有该用户的管理权限。

参数如下:

  • -l 锁定用户,禁止其登录
  • -u 解除锁定,允许用户登录
  • --stdin 允许通过标准输入修改用户密码,如 echo "NewPassWord" | passwd --stdin Username
  • -d 使该用户可用空密码登录系统
  • -e 强制用户在下次登录时修改密码
  • -S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称

在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和passwd命令的--stdin参数相结合,我们可以用一条命令来完成密码重置操作:

$ echo "root" | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.

更改用户设置

usermod 命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。

修改用户名

我们可以用 -l 参数修改用户帐号名称, 格式为

usermod -l newUserName userName

修改组信息

我们可以用 -g 参数修改用户的基本组ID,用 -G 参数修改用户扩展组ID。

usermod -G admins admin
$ id admin
uid=1000(admin) gid=1000(admin) groups=1000(admin),1002(admins)

以上命令, 将用户 admin 添加到组 admins 中, 使用 id 查看其修改后的状态

锁定/解锁账号

  • -L 锁定用户,禁止其登录系统
  • -U 解锁用户,允许其登录系统
usermod -L userName
usermod -U userName

修改用户的shell

-s 参数用于修改用户登入后所使用的shell

usermod -s /sbin/nologin ftpuser

群组

使用 groupadd groupname 添加一个群组

参考

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress