用户

linux基于用户对资源访问进行控制

用户帐号

超级用户:root,非执行管理任务不建议用root登录系统。

普通用户:一般只在用户自己的宿主目录中有完全权限。

系统用户:用于维持系统或某个程序的正常运行,例如:bin、daemon、ftp、mail等。系统用户不能登录到系统。系统用户是给系统进程用的,实现“最小权限原则”。

UID

UID(User Identity,用户标识号)用户名是“昵称”,UID 才是系统真正识别的身份。root用户的UID固定为0

普通用户/组使用的UID、GID号范围:1000~60000

用户帐号文件

/etc/passwd

用于保存用户的帐号基本信息

文件位置:/etc/passwd,任何用户都有权限读取,但是只有root用户才能进行更改。

[root@localhost ~]# tail -2 /etc/passwd
admin:x:1001:1001::/home/admin:/bin/bash
  • 字段1:用户帐号的名称

  • 字段2:用户密码字串或者密码占位符“x”

  • 字段3:用户帐号的UID号

  • 字段4:所属基本组帐号的GID号

  • 字段5:用户全名

  • 字段6:宿主目录

  • 字段7:登录Shell信息

shadow

用于保存密码字串、密码有效期等信息

文件位置:/etc/shadow,只有root才有权限读取,可以强制修改。

每一行对应一个用户的密码记录

[root@localhost ~]# tail -2 /etc/shadow
sabayon:!!:15495:0:99999:7:::
student:$1$po/zD0XK$4HSh/Aeae/eJ6dNj1k7Oz1:15495:0:99999:7:::
  • 字段1:用户帐号的名称

  • 字段2:加密的密码字串信息

此字段为“*”,通常是虚拟用户,不能登录;

如果此字段为“!!”,表示用户没设密码,不能登录。

若此字段为空,无需密码即可登录。

  • 字段3:上次修改密码的时间(1970.1.1起)

  • 字段4:密码的最短有效天数,即两次修改密码间隔的最小天数,默认值为0(chage 的 –m选项,天数)

  • 字段5:密码的最长有效天数,即两次修改密码间隔的最多天数,默认值为99999(chage 的 –M选项,天数)

  • 字段6:提前多少天警告用户口令将过期,默认值为7(chage 的 –W选项,天数)

  • 字段7:在密码过期之后多少天禁用此用户(chage 的 –I选项,天数)

  • 字段8:帐号失效时间(1970.1.1起),默认为空,表示该账号永久可用(chage 的 –E选项,天数)

  • 字段9:保留字段(未使用)

指令

useradd

添加用户账号:useradd [选项]... 用户名

-u:指定 UID 标记号

-d:指定宿主目录,缺省为 /home/用户名

-e:指定帐号失效时间

-g:指定用户的基本组名(或 GID);

-G:指定用户的附加组名(或 GID);

-M:不为用户建立并初始化宿主目录

-s:指定用户的登录Shell

passwd

设置/更改用户口令:passwd [选项]... 用户名

-d:清空用户的密码,使之无需密码即可登录

注意:未设置密码和空密码的区别。

-l:锁定用户帐号(被锁定的帐号无法登录系统)

-u:解锁用户帐号

-S:查看用户帐号的状态(是否被锁定)

注意:上述操作只有root有权限,普通用户也可以使用passwd命令,但只能更改自己的密码。

usermod

修改用户帐号的属性:usermod [选项]... 用户名

-l:更改用户帐号的登录名称

举例:usermod -l stu student

-L:锁定用户账户

-U:解锁用户账户

以下选项与useradd命令中的含义相同

-u、-d、-e、-g、-G、-s

userdel

删除用户帐号:userdel [-r] 用户名

-r 选项,表示连用户的宿主目录一并删除

chage

改变用户密码期限:chage [选项]... 用户帐号名

-l:显示账户的密码策略

-M:密码的最长有效天数

-m:密码的最短有效天数

-W:密码的警告天数

-I:密码的有效天数,当密码过期状态超过所设定的时间后,密码会变为失效状态。

chage -I 3 test//用户test从密码过期开始算起,3天不修改密码则密码失效,如密码在2021年10月8日过期,如果不进行修改,则会在2021年10月11日失效。

-E:账号的过期时间,过了这天账号不能被使用(天数或者日期)。

GID

GID(Group Identify,组标识号)系统根据 GID 判断组权限、文件属组等

root组帐号的GID固定为0

普通用户/组使用的UID、GID号范围:1000~60000

用户帐号文件

/etc/group:保存组帐号基本信息

/etc/gshadow:保存组帐号的密码信息

指令

groupadd

添加组帐号:groupadd [-g GID] 组帐号名

gpasswd

设置组帐号密码,极少用。例如:gpasswd student

添加/删除组成员:gpasswd [选项]... 组帐号名

-a:向组内添加一个用户

groupdel

删除组账号:groupdel 组帐号名

groupmod

修改组账号:groupmod 组帐号名

id

查询用户身份标识,参数可有可无:id [用户名]

groups

查询用户所属的组,参数可有可无:groups [用户名]

users w who

查询已登录到主机的用户信息