账号管理和ACL权限设置 —— 非常重要,部署在linux上的分布式系统HDFS/Alluxio等,都需要通过system call 来完成交互。
与前面篇章断节了,重新编号。
1、UID、GID
linux创建用户和组,尽量避免使用数字状态的id。计算机维护账户信息,也只是维护ID(一组号码)。
每个登录的用户,至少拥有2个ID,用户Id,组Id。
[root@gulonglong-bees-manager-2-normal-host-10-101-93-200-vm ttt]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
... 省略
app:x:504:504::/home/app:/bin/bash
[root@gulonglong-bees-manager-2-normal-host-10-101-93-200-vm ttt]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
... 省略
app:x:504:
[root@gulonglong-bees-manager-2-normal-host-10-101-93-200-vm ttt]# id app
uid=504(app) gid=504(app) groups=504(app)
2、/etc/passwd 和 /etc/shadow
登录linux主机,系统需要读取这两个文件。
/etc/passwd 管理用户的UID和GID相关参数,其中因为本文件是开放的,密码改写到/etc/shadow维护;
/etc/shadow 管理密码;
攻击者一般就是对这两个文件进行篡改,需要对这两个文件进行备份。
补充,/etc/group 管理组;
3、/etc/passwd 文件结构:
nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0:System Administrator:/var/root:/bin/sh
daemon:*:1:1:System Services:/var/root:/usr/bin/false
通过:进行分割,一共7个字段。
账户名称:密码:UID:GID:用户说明:用户的主目录:shell
最后一个shell字段,表示用户登录linux主机后,或获得一个shell和系统核心沟通,以进行用户的操作任务。
4、/etc/shadow 文件结构:
root:$1$RJ1B3Jdy$XgE97VaFzC.LLYTNX35VO.:17449:0:99999:7:::
bin:*:15980:0:99999:7:::
账户:密码:最近变更密码的日期:密码不可变更的天数:密码需要重置的天数:密码需要重置前的提醒天数:账户失效后的缓冲天数:账户失效日期:保留字段
注意:密码是单向运算的,无法看到密码的明文。
5、/etc/group 文件结构:
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
群组名称:群组密码:GID:群组下的用户
6、三个文件的关系: