用户账户管理
理论
/etc/passwd 该目录用于保存用户名,宿主目录,登录shel等基本信息
/etc/shadow 该目录用于保存 用户密码,账户有效期等信息
图上每一行中都有用“:”隔断的字段
字段含义:
第1字段:用户账号的名称,也是登录系统时使用的识别名称
第2字段:经过加密的用户密码字符串,或者密码占位符“x”
第3字段:用户账号的 UID。
第4字段:所属基本组账号的 GID,
第5字段:用户全名,可填写与用户相关的说明信息,
第6字段:宿主目录,即该用户登录后所在的默认工作目录
第7字段:登录 Shell等信息,用户完成登录后使用的Shell。
Shadow 文件中的配置行格式
Shadow 文件的每一行包含9个“:”隔离字段
字段含义
第1个字段:用户账户名称
第2个字段:使用(SHA-512)加密的密码字符串信息
第3个字段:上次修改密码的时间,表示从1970年1月1日算起到最近一次修改密码时间间隔天数
第4字段:密码的最短有效天数。自本次修改密码后,必须在该天数后才能再次修改密码默认值为 0,表示不进行限制。
第5字段:密码的最长有效天数。自本次修改密码后,经过该天数以后必须再次修改密码否则密码将失效。默认值为 99999,表示不进行限制,
第6字段:提前多少天警告用户密码将过期,默认值为7.
第7字段:在密码过期之后多少天内禁用此用户
第8字段:账号失效时间。此字段指定了用户账号作废的天数(从1970年01月 01日起计算)默认值为空,表示账号永久可用。
第9字段:保留字段,目前没有特定用途
添加,修改,删除用户账户
格式:useradd [选项] 用户名 (添加用户账号)
选项:
- -u:指定用户的UID,要求该UID未被其他用户使用
- -d:指定用户的宿主目录位置(当与-M选项一起使用时,不生效)
- -e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
- -g:指定用户的基本组名(或使用GID)
- -G:指定用户的附加组名(或使用GID)
- -M:不建立宿主目录,即使/etc/ogin.defs系统配置中已设定要建立宿主目录
- -s:指定用户的登录Shell
格式:userdel [用户名]:删除用户账号
-r:同时删除宿主目录
创建用户示例
创建用户指定组示例
图上是创建一个新用户名为li并将li 添加到wheel组并附加到root组
Passwd 命令为用户添加密码
在root下修改其他用户密码示例
普通用户更改密码示例
普通用户更改密码需要输入旧密码验证
用户账号设置密码、锁定、解锁
格式:passwd [选项] [用户名]
选项:
- 空为设置密码
- -d:清空指定用户的密码,仅使用用户名即可登录系统
- -1:锁定用户账号
- -S:查看用户账号的状态(是否被锁定)
- -u:解锁用户账号
示例
Usermod 命令修改账户属性
格式:usermod [选项] [用户名]
选项:
- -u:修改用户的UID
- -d:修改用户的宿主目录位置
- -e:修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式
- -g:修改用户的基本组名(或使用GID)
- -G:修改用户的附加组名(或使用GID)
- -s:指定用户的登录Shell
- -l:更改用户账号的登录名称(Login Name)
- -L:锁定用户账户
- -U:解锁用户账号
用户账号的初始配置文件
配置文件都来自于账号模版目录/etc/skel/,基本上都是隐藏文件
- .bash_logout:文件中的命令将在用户每次退出登录时被执行
- .bash_profile:文件中的命令将在用户每次登录时被执行
- .bashrc:文件中的命令会在每次加载‘/bin/Bash’程序(包括登录系统)时被执行
如果希望为所有用户添加登录后自动运行的命令程序,修改/etc目录下的相似文件即可
组账户管理
组账号文件
配置文件
- /etc/group:保存组账号名称、GID、组成员等信息
- /etc/gshadow:保存组账号的加密密码字符串等信息
添加,管理,删除组账户、
格式:groupadd [组账号名称]
示例
创建lishi 组
gpasswd 命令添加,设置,删除成员
选项 -a 添加 -d 删除
示例 向lishi组添加用户并删除用户
示例同时添加多用户到组
groupdel 命令删除组
删除组后已经查看不到组了
管理目录和文件属性
权限字符在文件和目录中的含义
询文件信息
查询出来文件信息开头部分有11个字符
第1个字符 :表示文件类型
第2~4个字符:表示属主用户对该文件的访问权限
第5~7个字符:表示属组里的所有用户该文件访问权限
第8~10个字符:表示其他用户对文件夹的访问权限
第11个字符:表示扩展属性
权限 | 文件 | 目录 |
r(4) | 查看文件内容 | 查看目录内容(显示子目录、文件列表) |
w(2) | 修改文件内容 | 修改目录内容(在目录中新建、移动、删除文件或子目录) |
x(1) | 执行该文件(程序或脚本) | 执行cd命令进入或退出该目录 |
设置目录和文件的权限
chmod 命令更改文件权限
格式 chmod [ugoa...][+ - =][rwx] 文件或目录