Linux管理用户、用户组权限

用户和用户组帐号配置文件

/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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180730G05SEE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券