LINUX下的用户管理

Linux下有三类用户

  1. 超级用户:root 具有操作系统的一切权限 UID 值为0

  2. 普通用户:普通用户具有操作系统有限的权限,UID值 500 - 6000

  3. 伪用户:是为了方便系统管理,满足相应的系统进程文件属主的要求,伪用户不能登录系统,UID值 1 – 499

用户管理

用户添加与信息

用户管理文件:cat /etc/passwd,在此文件中,只定义帐号,不定义口令。

文件中每行定义一个用户,分七个部分:

  1. 帐号名称:root
  2. 用户密码:x
  3. 用户标识码(用户ID):0
  4. 组标识码(用户组ID):0
  5. 用户描述信息:admin
  6. 用户家目录:/root
  7. 用户环境:/bin/bash

用户信息查看id

1
id username

查看一个用户的UID, GID以及组信息

参数:g 只显示GID,G 只显示所有组,u 只显示UID

查看用户相关信息finger

1
finger username

查看用户的相关信息,包括用户的主目录,启动shell,用户名等

参数:l 显示帐号信息,m 忽略真实姓名,p 显示帐号信息,但是不显示计划文件和方案文件内容,s 显示帐号信息(不同格式)

用户口令管理

用户口令文件:cat /etc/shadow

此文件只有root用户能访问,分九个部分:

  1. 用户名:root
  2. 口令:存放加密口令,如果第一个字符是 !,表示该用户不能登录
  3. 最后一次修改时间:
  4. 最大时间间隔:0 可以随时改变
  5. 最小时间间隔:99999 表示永远不过期
  6. 警告时间:1周
  7. 不活动时间:
  8. 失效时间:
  9. 保留:最后一个字段是保留的,看以后有没有新功能加入。

创建用户命令useradd或者adduser

useradd 或者 adduser(man useradd)

参数:-u -g -G -d -s -c -e -k -m -M -r

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-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

也可以通过手动方式添加一个用户,需要以下四个步骤:

  1. 在/etc/passwd中添加一条记录
  2. 创建用户主目录
  3. 在用户主目录中设置默认的配置文件
  4. 设置用户初始口令

用户帐号的维护(删改)

1
2
3
4
5
6
7
8
9
10
passwd username #设置用户密码(注意:没有设置密码的用户不能登录)
userdel username #删除用户
usermod -l newName username #新的登录名称
usermod -L username #锁定用户
usermod -U username #解锁用户
usermod -R, --root CHROOT_DIR #更改用户的家目录directory to chroot into
usermod -s, --shell SHELL #更改用户使用的shell,比如改为/sbin/nologin则禁止该用户ssh接入
passwd -l username #锁定用户的密码(只有根用户才能进行此操作)
passwd -u username #解锁用户的密码(只有根用户才能进行此操作)
passwd -d username #删除已命名帐号的密码(只有根用户才能进行此操作)

变化用户身份

1
su userName

说明:从管理员到普通用户不用使用密码;从普通用户到其他用户需要使用密码

这样,至改变用户身份,环境变量不变;

1
su -userName

完全转变,包括身份和环境变量

只允许root用户登录

可以在/etc/目录下建立一个名为nologin的文件

1
touch /etc/nologin

解除方法,删除nologin文件即可

1
rm -rf /etc/nologin

用户组管理

用户组分两类:

  1. 私有组:当在创建一个新用户user时,若没有指定他所属于的组,Linux就建立一个和该用户同名的私有组
  2. 标准组:标准组可以容纳多个用户,若使用标准组,在创建一个新用户时,就应该指定该用户所属于的组

用户组的管理文件位置:/etc/group

分为四个部分:

  1. 组名:用户登录时所在的组名
  2. 组口令:一般不使用
  3. 组标识码(GID)
  4. 组内用户列表:属于改组的所有用户列表

添加用户组

两种方法:

  1. useradd username 这种方法会建立一个和usernmae同名的私有组
  2. groupdadd groupname 正统的方法,建立一个组
1
2
useradd username #默认建立username用户组
groupadd groupname #添加一个用户组

修改组名

1
groupmod -n newName groupName

删除组帐号

groupdel 组帐号名称 #注意:删除的帐号必须存在,且不能是某个用户的私有组

添加用户到组

1
gpasswd -a userName groupName #a是添加的意思

从组中删除用户

1
gpasswd -d userName groupName #d是删除的意思

查看某个用户属于哪个组

1
groups userName

查看某个组有哪些用户

1
2
tail 5 /etc/group #显示最后5个组
tail /etc/group #默认显示最后10行
分享到