Linux 系统上面的用户如果需要登陆主机以取得 shell 的环境来工作时,
系统都做了什么工作?
1、先找寻 /etc/passwd 里面是否有你输入的账号?如果没有则跳出,如果有的话则将该账号对应的 UID 与 GID (在 /etc/group 中) 读出来,另外,该账号的家目录与 shell 配置也一并读出;
2、再来则是核对口令表!这时 Linux 会进入 /etc/shadow 里面找出对应的账号与 UID,然后核对一下你刚刚输入的口令与里头的口令是否相符?
3、如果一切都 OK 的话,就进入 Shell 控管的阶段!
/etc/passwd 文件结构
1.账号名称
2.口令
3.UID
4.GID
5.用户信息说明栏
6.用户家目录
7shell
/etc/passwd 文件结构
1.账号名称
2.口令
3.最近更动口令的日期
4.口令不可被更动的天数
5.口令需要重新变更的天数
6.口令需要需要变更前的警告天数
7.口令过期后的账户宽限时间
8.账户失效日期
/etc/group 文件结构
1.组名
2.群组口令
3.GID
4.此群组支持的账号名称(多个账号用,隔开)
新增使用者: useradd
选项
-u:指定特定的UID
-g:接组名
-G:该账号还可以加入的的群组
-r:创建一个系统账号
-c:用户信息信息说明栏
-s:shell默认/bin/bash
移除使用者: userdel
-r:连同用户家目录一起删除
配置口令:passwd
--stdin:可以透过来自管线的数据,作为口令输入
-S:列出口令的相关参数
进行账号相关数据的微调:usermod
新增使用者: useradd
CentOS 这些默认值主要会帮我们处理几个项目:
在 /etc/passwd 里面创建一行与账号相关的数据,包括创建 UID/GID/家目录等;
在 /etc/shadow 里面将此账号的口令相关参数填入,但是尚未有口令;
在 /etc/group 里面加入一个与账号名称一模一样的组名;
在 /home 底下创建一个与账号同名的目录作为用户家目录,且权限为700
getfacl:取得某个文件/目录的 ACL 配置项目;
setfacl:配置某个目录/文件的ACL 规范
setfacl用法
-m:配置后续的参数给文件使用(不可与-x使用)
-x:删除后续的ACL参数
-b:移除所有ACL配置参数
-k:移除默认ACl参数
-R:递归配置ACL
-d:配置默认ACl参数
用法 setfacl -m u:[使用者账户列表]:[rwx] [目录/文件]
mask:[rwx]限制最大权限