账号和权限管理
一.用户账户管理
1.用户账号和组账号概述
用户账号
超级用户:root用户是liunx操作系统中默认的超级用户账号,对主机拥有最高的操作权限,系统中超级用户是唯一的。
普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户:在安装liunx操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行。如bin,daemon,ftp,mail等。
组账号
基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。
附加组(公共组):用户除基本组以外,额外添加指定的组。
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
字段 | 作用 |
---|---|
字段1 | 用户账号名称 |
字段2 | 用户密码占位符“*” |
字段3 | 用户账号UID号 |
字段4 | 所属基本组的GID号 |
字段5 | 用户全名 |
字段6 | 宿主目录 |
字段7 | 登录shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统) |
用户密码文件/etc/shadow
字段 | 作用 |
---|---|
字段1 | 用户账号名称 |
字段2 | 使用MD5加密的密码字串信息,当为“*”或者“!!”时表示此用户不能登录到系统,若字段内容为空。则该用户无须密码即可登录系统 |
字段3 | 上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码的时间间隔天数。 |
字段4 | 密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制。 |
字段5 | 密码的最长有效天数。自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。 |
字段6 | 提前多少他警告用户密码将过期,默认值为7. |
字段7 | 在密码过期多少天后禁用此用户。 |
字段8 | 账号失效时间,此字段指定了用户作废天数(从1970年01月01日起计算)默认值为空,表示账号永久可用。 |
字段9 | 保留字段(未使用) |
2.添加用户(useradd)
useradd [选项] 用户名
选项 | 作用 |
---|---|
-u | 指定用户的UID号,要求该UID号未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M一起使用时不生效)。只能用绝对路径指定目录,且不需要事先创建目录 |
-e | 指定用户账号的失效时间,可使用xx年-x月-x日的日期格式 |
-g | 指定用户的基本组名(或使用GID号),对应的组名必须存在 |
-G | 指定用户的附加组名(或使用GID号)对应的组名必须存在 |
-M | 不建立宿主目录 |
-s | 指定用户的登录shell(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统) |
示例
3.修改用户账号属性(usermod)
usermod [选项] 用户名
选项 | 作用 |
---|---|
-u | 修改用户的UID号 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账号失效时间可使用xxx年-xx月-x日 |
-g | 修改用户的基本组名(或使用GID号) |
-G | 修改用户的附加组名(或使用GID号) |
-s | 修改指定用户的登录shell |
-l | 更改用户的登录名称 |
-L | 锁定用户账号 |
-U | 解锁用户帐号 |
示例
4.设置用户密码(passwd)
passwd [选项] 用户名
选项 | 作用 |
---|---|
-d | 清空指定用户的密码,仅使用用户名即可登录。 |
-l | 锁定用户账号,锁定的用户账号将无法在登录系统。 |
-S | 查看用户账号的状态(是否被锁定) |
-u | 解锁用户账号 |
示例
扩展设置用户密码
方法一:echo "密码" | passwd --stdin 用户名
方法二:echo <用户名>:<密码> | chpasswd
示例
5.删除用户(userdel)
userdel 用户名
userdel -r 用户名 表示连用户的宿主目录一并删除
二.用户账号初始配置文件
由来:
创建用户时,从/etc/skel/目录中的模板复制而来
应用范围:
/etc/profile /etc/bashrc 对所有用户有效
~/.bash_profile ~/.bashrc 只针对当前用户有效
功能:
profile:系统启动后用户登录执行文件里的命令或配置
bashrc:用户登录或者用户切换shell环境就会执行文件里的命令或配置
调用关系:
/etc/profile-->/etc/profile.d/xxx.sh
~/.bash_profile --> ~/.bashrc-->/etc/bashrc
~./bash_logout:用户退出时执行
三.组账号文件
1.添加组账号(groupadd)
group [-g GID] 组账号名
2.添加或删除组成员(gpasswd)
gpasswd [选项] 组账号名
选项 | 作用 |
---|---|
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
示例
3.删除组(groupdel)
groupdel 组账号名
4.查询账号相关信息的命令(groups,id,finger,w)
查询用户所属组(groups)
groups [用户名]
查询用户标识身份
id [用户名]
查询用户账号的登录属性
finger [用户名]
w,who.users命令
查询已登录主机的用户信息
五.文件/目录的权限和归属
1.设置目录与文件权限(chmod)
概述
chmod命令
chmod [ugoa] [+-=] [rwx] 文件或目录
chmod xxx 文件或者目录
xxx为三位八进制数
-R:递归修改指定目录下的所有子项的权限
2.设置目录文件归属(chown)
chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
-R:递归修改指定目录下所有文件,子目录的归属