打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux用户和用户组管理
UI视频教程 2016-11-06 13:05:02

一 用户配置文件

1 用户信息文件 /etc/passwd

我们先打开这个文件看一下

这里涉及到一些格式,我们还记得用man可以查看配置信息的帮助

man 5 passwd

这里看到:分割的每一项都有做详细说明,我们来总结下这里

第1个字段:用户名称

第2个字段:密码标志,我们可以看到都是x,那么真实的密码在哪里呢,我们来看/etc/shadow文件

这里我们看到root对应的第二个字段就是root的密码,显然是经过加密的,那么为什么密码不直接放在passwd中呢,我们看下两个文件的详细权限

对于passwd的,一般用户还是可以可读的,但是对于shadow,就什么权限都没有了,只有root可以查看,这样做是为了更安全些。

第3个字段:UID(用户ID)

我们可以发现在passwd中除了root用户我们认识,还有很多其他的我们没见过的,这些叫系统用户(伪用户),不能登录,只是在做系统调用服务的时候用到,我们不用管它们即可

0:超级用户

1-499 系统用户(伪用户)

500-65535 普通用户

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

这里我们要区分下初始组和附加组

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

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

第5个字段:用户说明,这个一般就是描述信息

第6个字段:家目录

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

超级用户:/root/

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

二 影子文件 /etc/shadow

我们打开这个文件来看一下

第1个字段:用户名

第2个字段:加密密码,加密算法是SHA512加密算法,如果是“!!”“*”代表没有密码,不能登录

第3个字段:密码最后一次修改日期,我们看到root的这个字段是17105,这个是使用1970年1月1日作为标准时间,每过一天,时间戳+1

第4个字段:两次密码的修改间隔时间(和第3个字段相比),就是说多少天后可以修改这个密码,我们看到root用户的这个字段是0

第5个字段:密码有效期(和第3个字段相比),我们看到root用户的这个字段是99999,基本上是永久有效

第6个字段:密码到期前的警告天数(和第5个字段相比),也就说比如我们在第5个字段设置了一个密码有效期,比如10天,然后我们这个字段设置是7,那么就是还剩7天到期的时候,就会有警告了。

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

0代表密码过期后立即失效,-1代表永远不会失效

第8个字段:账号失效的时间(要用时间戳表示),如果这个字段设置了失效时间,前面设置的有效期就没用了。

第9个字段:保留

那么我们刚才一直在说时间戳,接下来我们看下时间戳的换算公式

1 把时间戳换算为日期

date -d “1970-01-01 16066 days”

我们把16066的时间戳转换为日期

2 把日期转换为时间戳

三 组信息文件/etc/group和组密码文件/etc/gshadow

1 组信息文件/etc/group

我们打开这个文件看一下

第1个字段:组名

第2个字段:组密码标志

第3个字段:GID

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

2 组密码文件/etc/gshadow

第1个字段:组名

第2个字段:组密码

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

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

兄弟连沈超老师说不推荐组密码方式管理,一般用root管理,所以这里了解即可

四 用户管理相关文件

1 用户的家目录

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

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

2 用户的邮箱

/var/spool/mail/用户名/

比如我们创建一个用户fuqiang,然后到这个路径下查看,就会发现这个路径下自动生成了这个新用户的邮箱

3 用户模板目录

/etc/skel/

我们看下这个目录

我们看到这个目录下的内容和/home/用户名下的内容是一样的,也就是说,在创建用户的时候,在/home/用户名下,就会自动生成这些模板目录下的文件

五 用户管理命令

1 用户添加命令useradd:

useradd 选项 用户名

选项:

-u UID 手动指定用户的UID,我们知道普通用户的UID是从500,自动往后排的,如果我想设置一个吉利的数字,比如888,就可以用这个选项

-d 家目录,比如我们不想放在/home下,就可以用这个选项改

-c 用户说明

-g 组名:手工指定用户的初始组,这个一般不建议修改

-G 组名:手工指定用户的附加组

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

那么如果我们不加任何选项,默认是怎么样的呢,比如我现在添加一个fq的用户

我们来查看一下跟用户相关的文件信息

我们可以看到默认的这些信息

那么用户默认值文件在哪里呢,

2 修改用户密码passwd:

passwd 选项 用户名

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

2016-11-03 用户密码设定时间

0 密码修改间隔时间

99999 密码有效期

7 警告时间

-1 密码不失效

-l 暂时锁定用户,仅root用户可用,锁定用户,这个用户就不能登录了,其实就是修改shadow文件中对应密码的字段,前面加!!

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

还可以使用字符串作为用户的密码

echo “123 ”| passwd -stdin fq

这个主要用于shell编程,批量创建用户

3 修改用户信息 usermod:

usermod 选项 用户名

-u UID 修改用户的UID

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

-L 锁定用户

-U 解锁用户

这个命令格式跟useradd类似,只不过useradd是新增,这个是修改已有

4 修改用户密码状态 chage

chage 选项 用户名

-d日期 修改密码最后一次更改日期(shadow第3个字段)

-m天数 两次密码修改间隔(4字段)

-M 天数 密码有效期(5字段)

-W天数 密码过期前有效期(6字段)

-I 天数 密码过期后宽限天数(7字段)

-E 日期 账号失效日期(8字段)

其实这样也都可以手工修改shadow文件

chage -d 0 fq

把fq的密码最后一次更改日期归0 ,这样用户一登录就要修改密码

5 删除用户userdel

userdel 选项 用户名

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

当然除了这种方式外,我们也可以手工删除用户,就是上面说的涉及到用户的各个文件去删除即可

6 查看用户id

id 用户名

比如我执行usermod -G root fuqiang,然后再用id查看

我们看到fuqiang用户多了一个附加组

7 切换用户身份su

我们一般用su 直接加用户名进行切换,但是这样用户的环境变量会有问题,具体可用env命令查看,会发现有些环境并没有切换过去

加选项 - 会连同用户的环境变量一起切换

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

比如:su -root -c “useradd user3”

六 用户组管理命令

1 添加用户组groupadd 选项 组名

-g GID 指定组ID

我们先添加一个fuqianggroup的组 groupadd -g 600 fuqianggroup

然后到/etc/group下看看

可以看到这个组已经添加成功了

2 修改用户组groupmod 选项 组名

-g GID 指定组的GID

-n 修改组名

比如我想把刚刚创建的fuqianggroup组修改为fqgroup

再来看下/etc/group

发现修改成功了

3 删除用户组groupdel 组名

注意:这样只能删除附加组,如果想删除初始组,必须把初始组的用户也删掉才行。

4 把用户填加到组里或者从组中删除 gpasswd 选项 组名

-a 用户名:把用户加入组

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

我想把fuqiang这个用户添加到刚才的fqgroup中

gpasswd -a fuqiang fqgroup

再把它删除

gpasswd -d fuqiang fqgroup

好了,Linux用户和用户组管理就总结到这里,如有问题,欢迎指正,谢谢。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux用户、用户组权限管理详解
讲述Linux用户管理的全部过程
/etc/passwd & /etc/shadow 详解
linux 增加用户 useradd 用法小结及配置文件说明
linux下用户和用户组配置文件详解 - 放飞梦想 - 51CTO技术博客
Linux学习笔记之用户登录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服