
越是对服务器的安全性要求高,就越需要建立合理的用户等级制度和服务器操作规范
在linux中通过用户配置文件来修改、查看用户信息
在Linu系统中,默认ID为0的用户就是超级管理员,而Linux系统仅仅关注UID,并不对用户名敏感
进程运行时,需要以用户身份去运行,所以在Linux有很多的系统用户,就是为了运行某些进程,并且不让这些用户登录
用户分为以下三种
- -root 用户 (ID为0的用户)
- -系统用户 (ID 为 1~499 的用户)
- 普通用户 (ID 在 500以上的用户)
由于linux用户管理权限相于敏感,所以以下操作需要root管理员
1、与用户基本信息文件
/etc/passwd #用户的配置文件
/etc/shadow #用户影子口令文件
使用man -5 passwd 我们看一下passwd配置文件的介绍
有一行【 account:password:UID:GID:GECOS:directory:shell 】 介绍了passwd文件的文本格式
我们用 cat /etc/passwd 看一下这个文件的格式并且详细介绍下
可以看到首先:冒号是作分割符存在的,那么一行信息可以看成7个字段。下面介绍下这7个字段
- 用户账号
- 密码标志
- 用户ID(UID) 0 超级管理员 1-499 系统用户(伪用户) 500-65535 普通用户
- 用户初始组ID(GID)
- 用户说明
- 家目录
- 登录后的shell命令位置
那么我们可以看到这里只有一个密码标志,那么我们的密码存在哪里呢?这里我们就要介绍下shadow了。可以看到系统对个人信息保存的是十分谨慎的
这里可以看到shadow文件的权限是000的,所以也就只有root我们的超级管理员可以使用
打开我们的shadow文件,我们来看看吧
也是使用:冒号作为分割符,但是我们看一下他是分为9部分,下面我们详细讲解下
- 用户名
- 加密密码(这个就是我们的密码了,但是是加密的,现在都是SHA512加密,以前是MD5,在下面我们在介绍) 【如果密码是!! 或者 *代表没有密码不能登录】
- 密码最后一次的修改日期 (使用1970-1-1作为标准时间,算出的一个天数差)
- 两次密码修改间隔时间
- 密码的有郊期
- 密码修改到期前的警告天数 (登录时会提醒需要更改密码)
- 密码过期后的宽限天数 (0 代表密码过期后立既生郊,-1代表密码永不会失郊)
- 账号失郊时间 (也需要用1970-1-1作为标准时间,算出一个天数差)
- 保留
可以使用网络上相应的工具进行转换时间戳
2、与用户组相关的基本信息文件
/etc/group 用户组配置文件
/etc/gshadow 用户组的影子文件
我们先看下第一个文件
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
我大概复制了几行,可以看到信息可以分为4段
- 组名 (默认跟自己的用户名一致)
- 组密码标志
- GID
- 组中的附加用户
与passwd一样,也有一个gshadow组密码文件,也是分为4列的
- 组名
- 组密码
- 组管理员用户名
- 组中附加名
一个用户最多只能有31个附属组
3、用户管理相关文件
用户的家目录: /home/用户名 , 所有者和所属组都是此用户,权限都是700
用户的邮箱:/var/spool/mail/用户名
用户的模板目录:/etc/skel/
root管理员的家目录: /root, 所有者和所属组都是root用户,权限都是 550
修改用户的默认配置文档
vi /etc/deafult/useradd
- GROUP=100 #用户默认组
- HOME=/home #用户家目录
- INACTIVE = -1 #密码过期宽限天数
- EXPIRE = # 密码失郊时间
- SHELL=/bin/bash #默认shell
- SKEL=/etc/skel #模板目录
- CREATE_MAIL_SPOOL= yes #是否建立邮箱
vi /etc/default/login.defs
- PASS_MAX_DAYS 999999 # 密码有郊期
- PASS_MIN_DAYS 0 #密码修改间隔
- PASS_MIN_LEN 5 #密码最小5位 (此设置不应低于8位,否则也无郊)
- PASS_WARN_AGE 7 # 密码到期警告
- UID_MIN 5000 # 最小和最大的UID 范围
- GID_MAX 60000
- ENCRYPT_METHOD SHA512 #加密模式
这里就是我们刚刚说的加密方式
4、用户管理命令
useradd [选项] 用户名 (添加用户)
- -u UID : 用户指定的UID号
- -d 家目录: 手动指定的用户家目录
- -D 查看缺省参数
- -c 用户说明 : 手动指定的用户说明文本
- -g 组名: 手动指定的初始 组
- -G 组名: 指定用户的附加组
- -e 指定过期时间
- -s shell: 手动指定用户的登录shell,默认是 /bin/bash
newusers 导入用户信息文件
passwd [选项] 用户名 (添加密码)
- -S 查询用户密码的密码状态,仅root用户可用。
- -l 暂时锁定用户。仅root用户可用,其实也就是在shadow密码里面加上!!号
- -u 解锁用户。仅root用户可用,解除!!号
- –stdin 可以通过管道符输出的数据作为用户的密码
-S 格式为 用户名 PS 2014-01-01 0 9999999 77 -1 这样的格式
usermod [选项] 用户名 (修改用户)
- -u 用户指定的UID号
- -c 手动指定的用户说明文本
- -G 指定用户的附加组
- -L 锁定用户 (其实和passwd差不多)
- -U 解锁用户锁定
chage [选项] 用户名
- -l : 列出用户的详细密码状态
- -d 日期 : 修改密码最后一次更改日期
- -m 天数 : 两次密码修改间隔
- -M 天数 : 密码有郊期
- -W 天数: 密码过期前警告天数
- -I 天数 : 密码过期后的宽限天数
- -E 日期 : 账号失效时间
userdel [选项] 用户名
- -r 删除用户同时删除该用户的家目录
groupadd [选项] 组名 (添加用户组)
- -g 指定组id
groupdel 组名
groups 查看用户隶属于哪些用户组
newgrp 切换用户组
pwck 检测/etc/passwd文件(锁定文件)
vipw 编辑/etc/passwd文件(锁定文件)
finger 查看用户详细信息
groupmod 组名 (修改组)
gpasswd 设置组密码或管理组内成员
- -a 添加用户到用户组
- -d 从用户组中删除用户
- -A 设置用户组管理员
- -r 删除用户组密码
- -R 禁止用户切换该组
4、其他管理命令
id [用户名] (查看用户ID相关信息)
su [选项] 用户名
– :选项“-” 连接表示连带用户的环境变量一起切换,最好不用省略- -c : 仅执行一次命令,而不切换身份
启用和停用shadow功能
- pwconv/pwunconv
- grpconv/grpunconv
认证配置文件:/etc/sysconfig/authconfig
发表评论
沙发空缺中,还不快抢~