用户和用户组帐号配置文件
/etc/passwd、/etc/shadow、/etc/group
Linux基于用户身份对资源访问进行控制
用户帐号类型
超级用户root:即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统
普通用户:一般只在用户自己的宿主目录中有完全权限
程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统,例如:bin、daemon、ftp、mail等
组帐号类型
基本组(私有组)
附加组(公共组)
UID和GID
UID(User Identity,用户标识号)
GID(Group Identify,组标识号)
root用户的UID的固定值为
root组帐号的GID号为固定值
1~499的UID、GID默认保留给程序用户使用
普通用户/组使用的UID、GID号在500~60000之间
用户的帐号基本信息保存在/etc/passwd文件中
每一行对应一个用户的帐号记录
字段1:用户帐号的名称
字段2:用户密码字串或者密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息
管理本地用户
添加用户帐号指令
useradd [选项]...用户名
参数选项含义
-u:指定UID标记号
-d:指定宿主目录,缺省为/home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
最简单的用法是,不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户帐号
用户帐号的初始配置文件
文件来源,新建用户帐号时,从/etc/skel目录中复制而来
主要的用户初始配置文件
~/.bash_profile-----用户每次登录时执行
~/.bashrc-----每次进入新的Bash环境时执行
~/.bash_logout-----用户每次退出登录时执行
默认情况下,用户宿主目录下的初始配置文件只对当前用户有效,而全局配置文件对所有用户有效
修改用户帐号的属性
usermod [选项]...用户名
参数选项含义
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
-a: append模式,若不加-a则删除其他附加组,通常和-G一起使用
例:usermod -aG组名用户名(将用户加入指定的附加组)
删除用户帐号
userdel [-r]用户名
添加-r选项时,表示连用户的宿主目录一并删除
管理密码
用于保存密码字串、密码有效期等信息
文件位置/etc/shadow
每一行对应一个用户的密码记录
字段1:用户帐号的名称
字段2:加密的密码字串信息
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认值为
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容
上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数
设置/更改用户口令
passwd [选项]...用户名
参数选项含义
-d:清空用户的密码,使之无需密码即可登录
-l:锁定用户帐号
-S:查看用户帐号的状态(是否被锁定)
-u:解锁用户帐号
“未设置密码”的用户帐号尚未完成初始化,处于不可登录状态,这与“空密码”的情况(已经为用户设置密码,但密码字串为空)是不同的,“未设置密码”的用户将被禁止登录系统,而拥有“空密码”的用户是可以在本地终端登录的
普通用户也可以使用passwd命令,但只能更改自己的密码,密码要求有一定的复杂性,不要直接使用英文单词,长度保持在6位以上,否则系统可能拒绝进行设置
被锁定的帐号也将无法登录系统
chage命令:修改用户密码的有效期
如:在下次登录时,chage -d 0username将强制更新密码
chage -l username将列出用户名的当前设置
组帐号文件—— group、gshadow
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号分隔
添加组帐号
groupadd [-gGID]组帐号名
添加、删除组成员
gpasswd [选项]...组帐号名
参数选项含义
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
使用“-M”选项时可以为指定组帐号定义成员列表(注意:会覆盖原有组成员),需要添加多个用户到指定的组中时非常方便
删除组帐号
groupdel组帐号名
用户和组帐号查询命令
id命令
用途:查询用户身份标识
格式:id [用户名]
groups命令
用途:查询用户所属的组
格式:groups [用户名]
finger命令
用途:查询用户帐号的详细信息
格式:finger [-l] [用户名]
users、w、who命令
用途:查询已登录到主机的用户信息
权限对照表
请注意:用户通常对只读目录具有read和exec权限,因此他们可以列出目录并访问其内容。如果用户仅对某目录具有read访问权限,可以列出其中文件的名称,但是其他信息(包括权限或时间戳)都不可用,也不可访问;
如果用户仅对某目录具有exec访问权限,则他们不能列出该目录中文件的名称,但是如果他们已知道对其具有读取权限的文件的名称,那么他们可以通过明确地指定文件名来访问该文件的内容。
编辑/Alex 美编/Mary