文章目录
用户账号和组账号的概述
用户账号
- 超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,
对本主机拥有最高的权限。系统中超级用户是唯一的。 - 普通用户:由root用户或其他管理员用户创建,
拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。 - 程序用户:在安装Linux操作系统及部分应用程序时,
会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅
用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等。
组账号
-
基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。
在/etc/passwd文件中第4字段记录的即为该用户的基本组 GID 号。 -
附加组(公共组):用户除了基本组以外,额外添加指定的组,可有可无,可以有多个。
ID
- UID:用户标识号
- GID:组标识号
root用户账号的UID和GID号为固定值0
程序用户账号的UID和GID默认号为Centos5,6:1~ 499,Centos7:1~999
普通用户的UID和GID为Centos5,6:500~ 60000,Centos7:1000~60000
用户账号管理
文件位置:/etc/passwd 存放保存用户名称、宿主目录、登录 Shell 等基本信息
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x”。
字段1:用户帐号的名称
字段2:用户密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
文件位置:/etc/shadow 存放用户密码的文件
默认只有 root 用户能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容。
字段1:用户帐号的名称
字段2:使用MD5加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统
字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用。
字段9:保留字段(未使用)
useradd、adduser 添加用户账号
- 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。
- 若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
- 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow 文件中。
常用命令
选项 | 说明 |
---|---|
-u | 创建用户时设置uid |
-g | 创建用户时设置基本组 |
-G | 创建用户时设置附加组 |
-d | 创建用户时设置指定家目录 |
-e | 创建用户时设置账户失效时间 |
-s | 创建用户时设置shell登录环境 |
-M | 创建用户时不创建用户的宿主目录 |
usermod 修改用户账号属性
选项 | 说明 |
---|---|
-u | 修改用户的 UID 号。usermod -u uid号 用户名 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式 |
-g | 修改用户的基本组名(或使用 GID 号) |
-G | 修改用户的附加组名(或使用 GID 号) |
-s | 指定用户的登录 Shell |
-l | 更改用户账号的登录名称。usermod -l 新名称 旧名称 |
-L | 锁定用户账户 |
-U | 解锁用户账户 |
userdel 删除用户
-r 将宿主目录一起删除
passwd 给用户账号设置密码
passwd [用户] 可以修改指定用户的密码
选项 | 说明 |
---|---|
-l | 锁定用户密码使其无法登陆 |
-u | 解除用户密码的锁定状态 |
-s | 可以查看当前密码的状态是否被锁定 |
-d | 可以清除密码使用户登录不需要输入密码 |
groupadd 添加组
groupadd -g 可以在创建组的时候设置组ID
gpasswd [选项] [用户] [组] 添加组成员
选项 | 说明 |
---|---|
-a | 添加组成员 |
-q | 删除组成员 |
-M | 定义组成员 |
文件/目录的权限
读 | 写 | 执行 |
---|---|---|
r | w | x |
4 | 2 | 1 |
chmod nnn 目录或文件 ,修改目录或文件的权限
chmod [-R] nnn 目录 , -R 递归修改所有子目录的权限
选项 | 格式 |
---|---|
-u | 属主权限 |
-g | 属组权限 |
-o | 其它用户权限 |
-a | 全部(属主,属组,其它用户)权限 |
+ | 添加权限 |
- | 删除权限 |
= | 设置(定义)权限 |
r | 可读 |
w | 可写 |
x | 可执行 |
- “ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户(缺省时为a)。
- “±=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=”代表仅设置对应的权限。
- “rwx”是权限的字符组合形式,也可以拆分使用,如“r”“rx”等。
chown 设置目录和文件的归属
-R:递归修改指定目录下所有子目录及文件的归属
umask 设置目录和文件的默认权限
- 指定目前用户在新建文件或目录时的权限默认值
- 新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)
- 文件权限的奇数会往前加1,目录不影响