(七)用户和用户组管理

第一节 用户配置文件

1.用户管理简介

越是对安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范

在Linux中主要是通过用户配置文件来查看和修改用户信息

2.用户信息配置文件 /etc/passwd

第1个字段:用户名称

第2个字段:密码标志(真正的密码放在/etc/shadow中)

第3个字段:UID(用户ID,系统将UID为0的用户视为超级用户,UID相同的用户视为同一用户)

0:          超级用户

1-499:      系统用户

500-65535: 普通用户

第4个字段:GID(用户初始组ID)

第5个字段:用户说明

第6个字段:家目录

普通用户:/home/用户名/

超级用户:/root/

第7个字段:登录之后的Shell

3.初始组和附加组

初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户名相同的组名作为这个用户的初始组

附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个

4.Shell是什么

Shell就是Linux命令解释器

在/etc/passwd当中,除了标准的Shell是/bin/bash之外,还可以写如/sbin/nologin


第二节 影子文件

1.影子文件/etc/shadow

第1个字段:用户名

第2个字段:加密密码

加密算法升级为SHA512散列加密算法

如果密码位是"!!"或"*"代表没有密码,不能登录

第3个字段:密码最后一次修改日期

使用1970年1月1日作为标准时间,每过一天时间戳加1

第4个字段:两个密码的修改间隔时间(和第3个字段相比)

第5个字段:密码有效期(和第3个字段相比)

第6个字段:密码修改到期前的警告天数(和第5字段相比)

第7个字段:密码过期后的宽限时间(和第5个字段相比)

0 代表密码过期后立即失效

1 代表密码永远不会失效

第8个字段:帐号失效时间,到了该时间就失效

要用时间戳表示

第9个字段:保留

2.时间戳换算

把时间戳换算为日期  date -d "1970-01-01 16066 days"

把日期换算为时间戳  echo $((($date --date="2014/01/06" +%s)/86400+1))


第三节 组信息文件和组密码文件

1.组信息文件 /etc/group

第一个字段:组名

第二个字段:组密码标志

第三个字段:GID

第四个字段:组中附加用户

2.组密码文件 /etc/gshadow

第一个字段:组名

第二个字段:组密码

第三个字段:组管理员用户名

第四个字段:组中附加用户


第四节 用户管理相关文件

1.用户家目录

普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700

超级用户:/root/,所有者和所属组都是root用户,权限是550

2.用户的邮箱

/var/spool/mail/用户名/

3.用户模板目录

/etc/skel/ 创建用户时自动添加的文件所在的模板位置


第四节 用户管理命令

1.useradd命令格式

useradd [选项] 用户名

选项:

-u UID               手工指定用户的UID号

-d 家目录          手工指定用户的家目录

-c 用户说明      手工指定用户的说明

-g 组名              手工指定用户的初始组

-G 组名             指定用户的附加组

-s shell              手工指定用户的登陆shell,默认是/bin/bash

2.添加默认用户

useradd sc 执行此命令后以下一些配置文件将发生改变

grep sc /etc/passwd

grep sc /etc/shadow

grep sc /etc/group

grep sc /etc/gshadow

ll -d /home/lamp/

ll /var/spool/mail/lamp

3.指定选项添加用户

useradd -u 550 -G root,bin -d /home/lamp1 -c "test user" -s /bin/bash sc

4.两个用户默认值文件

/etc/default/useradd

GROUP=100                             用户默认组

HOME=/home                            用户家目录

INACTIVE=-1                             密码过期宽限天数(shadow文件7字段)

EXPIRE=                                    密码失效时间

SHELL=/bin/bash                      默认shell

SKEL=/etc/skel                          模板目录

CREATE_MAIL_SPOOL=yes 是否建立邮箱

/etc/login.defs

PASS_MAX_DAYS  99999      密码有效期

PASS_MIN_DAYS    0              密码修改间隔

PASS_MIN_LEN    5                 密码最小5位(PAM)

PASS_WARN_AGE    7            密码到期警告

UID_MIN        500                       最小和最大UID范围

GID_MAX        60000

ENCRYPT_METHOD SHA512  加密模式

5.passwd命令格式

passwd [选项] 用户名

选项:

-S                查询用户密码的密码状态,仅root用户可用

-l                  暂时锁定用户,仅root用户可用

-u                 解锁用户,仅root用户可用

--stdin         可以通过管道符输出的数据作为用户的密码

6.查看密码状态

passwd -S lamp

lamp PS 2013-01-06 0 99999 7 -l

用户密码设定时间(2013-01-06) 密码修改间隔时间(0)

密码有效期(99999) 警告时间(7) 密码不失效(-1)

7.锁定用户和解锁用户

passwd -l lamp           锁定用户

passwd -u lamp          解锁用户

锁定与解锁原理:向/etc/shadow文件中密码字段中添加"!!"字符,使用户输入的密码经过加密后无法与其匹配,从而使用户无法登陆

8.使用字符串作为用户的密码

echo "123" | passwd --stdin lamp

9.修改用户信息usermod

usermod [选项] 用户名

选项:

-u UID               修改用户的UID号

-c 用户说明      修改用户的说明信息

-G 组名             修改用户的附加组

-L                       临时锁定用户(Lock)

-U                       解锁用户锁定(Unlock)

命令实例

usermod -c "test user" lamp      修改用户说明

usermod -G root lamp                把lamp用户加入root组

usermod -L lamp                        锁定用户

usermod -U lamp                        解锁用户

10.修改用户密码状态chage

chage [选项] 用户名

选项:

-l                        列出用户的详细密码状态

-d日期              修改密码最后一次更改日期

-m天数              两次密码的修改间隔

-M天数              密码有效期

-W天数              密码过期前警告天数

-I天数                 密码过后宽限天数

-E日期                帐号失效时间

chage -d 0 lamp  这个命令其实是把密码修改日期归0了,这样用户一登陆就要修改密码,这条命令很实用

11.删除用户userdel

userdel [-r] 用户名

选项:

-r                       删除用户的同时删除用户家目录

手工删除用户执行如下命令

vi /etc/passwd

vi /etc/shadow

vi /etc/group

vi /etc/gshadow

rm -rf /var/spool/mail/lamp

rm -rf /home/lamp/

12.查看用户ID(查看用户UID和GID信息)

id 用户名

13.切换用户身份su

su [选项] 用户名

选项:

-                           选项只使用"-"代表连带用户的环境变量一起切换(注意不要漏掉)

-c命令                仅执行一次命令,而不切换用户身份

超级用户切换成普通用户无需密码,普通用虎切换成超级用户则需要密码

命令实例

su - root                                    切换成root

su - root -c "useradd user3"  不切换成root,但是执行useradd命令添加user1用户


第五节 用户组管理命令

1.添加用户组

groupadd [选项] 组名

选项:

-g GID             指定组ID

2.修改用户组

groupmod [选项] 组名

选项:

-g GID              修改组ID

-n 新组名         修改组名

命令实例

groupmod -n testgrp group1 把组名group1修改为testgrp

3.删除用户组

groupdel 组名

组中有初始用户,则该组不能删除,有附加用户,则改组可以删除

4.把用户添加入组或从组中删除

gpasswd [选项] 组名

选项:

-a用户名         把用户加入组

-d用户名         把用户从组中删除

注意此操作添加的是附加用户

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容