1. 账号管理
1.1 用户信息管理
1.1.1 /etc/passwd
此文件记录系统账号信息,每行代表一个账户,使用“:”分隔,共7个字段。
字段1: 用户账号,与UID对应。
字段2: 用户密码,为防止泄漏此处置为x,实际密码放在/etc/shadow文件中。
字段3: UID。
0:root
1-499:系统账户,通常不可登录
500-65535:普通账户,一般用户登录的
字段4: GID,用户组编号,与/etc/group对应。
字段5: 用户信息说明列。
字段6: 主文件夹,默认在/home/xxx中。
字段7: 用户登录系统后取得的shell。
1.1.2 /etc/shadow
此文件记录系统用户密码,每行代表一个账户,使用“:”分隔,共9个字段。各程序需要读取此文件来了解不同账号的权限。
cat /etc/shadow | head -4
root:qw2387gb:14126:0:99999:7:::
bin:*:14226:0:99999:7:::
daemon:*:14226:0:99999:7:::
adm:*:14226:0:99999:7:::
字段1: 账号名称 与/etc/passwd对应。
字段2: 密码(已加密)。
字段3: 最近变更密码日期,距离1971.1.1的天数。
字段4: 密码不可被变更的天数。
字段5: 密码需要重新更改的天数。
字段6: 密码需要更改期限前的警告天数。
字段7: 密码过期后的账号宽限时间(密码失效日)。
字段8: 账号失效日期。(此日期之后,该账号将无法使用)
字段9: 保留
1.2 用户组管理
1.2.1 /etc/group
记录GID与组名的对应,使用“:”分隔,共4个字段。
字段1: 用户组名称。
字段2: 用户组密码。(与/etc/gshadow对应)
字段3: GID
字段4: 此用户组支持的账号名称。
groups : 支持和有效用户组(新建文件)
newgrp : 有效用户组的切换
1.2.2 /etc/gshadow
字段1: 用户组名。
字段2: 密码列,开头为!表示无合法密码,所以无用户组管理员。
字段3: 用户组管理员账号
字段4: 此用户组的所属账号。(与/etc/group对应)
2. 账户切换
2.1 su
1. 完整的切换到新用户环境(环境变量也会切换)
su -username
或
su -l username
2. 仅想执行一次root命令
su - -c "命令串"
3. 使用root切换成为任何用户时,并不需要输入新用户的密码。
缺点: 每个人都要知道root的密码
2.2 sudo
仅需要自己的密码,(甚至可以设置不需要密码即可执行sudo),但仅有/etc/sudoers内的用户才能够执行sudo命令。
sudo 执行流程
1. 当用户执行sudo时,系统于/etc/sudoers文件中查找该用户是否有执行sudo的权限;
2. 若用户具有可执行速冻权限,便让用户输入自己的密码来确认;
3. 输入密码成功,开始进行sudo后接命令(root则不需要);
4. 若要切换的身份与执行者身份相同,也不需密码。