Linux——账号和权限管理
一、管理用户账号
1.1 用户账号概述
1.1.1 用户账号分类
- 超级用户: root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的。
- 普通用户: 由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
- 程序用户: 在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。
1.1.2 用户标识UID(User IDentity ,用户标识号)
- root用户账号的UID固定值0
- 程序用户账号的UID默认为Centos5,6: 1~499,Centos7: 1~ 999
- 普通用户的UID默认为Centos5, 6: 500~ 65535,Centos7: 1000~ 65535
1.1.3 用户账号文件
作用: 保护用户名称、宿主目录、登录shell等基本信息
每一行对应一个用户的账号记录
文件位置:
- /etc/passwd :保存用户名称、宿主目录、登录shell等基本信息
- /etc/shadow :保存用户的账号、密码等有效信息
- 每一行对应一个用户的账号记录
/etc/passwd: 超级用户root及程序用户的账号信息
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能修改。passwd文件的每一行内容中,包含了7个用冒号“:”分割的配置字段,从左到右各配置字段的含义分别如下述:
root:x:0:0:root:/root:bin/bash
- 用户账号名称
- 用户密码占位符
- 用户的UID号
- 所属基本组账号的GID账号
- 第二个root:用户描述,用户全名
- 第三个/root;宿主目录
- bin/bash :登录Shell信息(/bin/bash为可登录系统,/sbin/nologin和bin/false为禁用户登录系统)
/etc/shadow: 各用户账号的密码信息
shadow文件又被称为“影子文件”,其中保存有各用户账号的密码信息,默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件的内容。
shadow文件的每一行内容中,包含了7个用冒号“:”分割的配置字段,从左到右各配置字段的含义分别如下述:
root:$6$H9GTEb2qZL3lhJZd$Y0HeF0G.szysNM3OZ/2ZyiiNU888yUhCuqcVUps9yQ3.cX4oGY8qNBAcSraTkZWn25KM.TdOXotNn9y8wyKAr0::0:99999:7:::
- 字段1:用户账号的名称; (root)
- 字段2:使用SHA512加密的密码字串信息,当为“*”或“!!”时表示此用户不能登陆到系统。若该字段内容为空,则该用户无需密码即可登录
- 字段3:上次修改密码时间,表示从1970年01月01日算起到最近一次修改密码是间隔的天数;
- 字段4:,密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限时;
- 字段5:
- 字段6:提前多少天警告用户密码将过期,默认值为7;每次登录系统都会向用户发出修改密码警告;
- 字段7:在密码过期多少天之后禁用此用户;
- 字段8:账年号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用;
- 字段9:“保留字段(未使用)”,没有特殊用途。
1.2 用户账号管理
1.2.1修改账号和密码期限——chage
总结 | ||
---|---|---|
第一字段 | 密码最后一次修改时间 | chage -d |
第四字段 | 密码最小修改间隔时间 | chage -m |
第五字段 | 密码的有效期 | chage -M |
第六字段 | 密码需要变更前的警告天数 | chage -w |
第七字段 | 密码过期后的宽限天数 | chage -I |
第八字段 | 账号失效时间 | chage -E |
chage范例
- 设置时间
- 如果普通用户忘记密码的时候怎么办呢?
1.2.2 添加用户账号——useradd
使用useradd添加账户完成以下任务:
- 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
- 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿主目录,并在该目录建立用户的各种初始配置文件
- 若没有明确指定用户所属的主,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group和/etc/shadow 文件中
选项 | 作用 |
---|---|
-u | 指定用户的UID号,要求该UID号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M一起使用时,不生效)只能用绝对路径指定目录,且不需要实现创建目录 |
-e | 指定用户的账户失效时间,,可使用YYYY-MM-DD的日期格式 |
-g | 指定用户的基本组名(或使用GID号),对应的组名必须存在 |
-G | 指定用户的附加组名(或使用GID号)对应的组名必须存在 |
-M | 不建立宿主目录(一般用于系统用户账号) |
-s | 指定用户的登录shell(比如/bin/bash为可登录系统,/sbin/nologin和/bin/false为禁止用户登录系统) |
useradd 创建用户
[root@kiro kiro]# useradd xuet //添加一个名为xuet的用户
[root@kiro kiro]# tail -1 /etc/passwd //查看/etc下paswwd文件最后一行
xuet:x:1003:1003::/home/xuet:/bin/bash
[root@kiro kiro]# tail -1 /etc/shadow //查看/etc 下shadow文件最后一行
xuet:!!:19077:0:99999:7::: //以xuet开头代表创建成功
[root@kiro kiro]# cd /home //所有的用户都是在/home里边
[root@kiro home]# ls //查看xuet用户是否在里边
kiro ky17 ky18 ky19 pengxw xuet
[root@kiro home]# cd xuet //进入xuet用户
[root@kiro xuet]# ls //查看到无文件
[root@kiro xuet]# ls -a //-a 遍历所有文件和目录,可查询隐藏文件
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@kiro xuet]# ls -A //不包括当前和上一层目录