Linux 帐号与权限
每个login user至少会获取两个ID, UID, GID。登录流程:
- check /etc/passwd, if no UID, exit
- get UID and GID, user home and login shell from /etc/passwd,/etc/group
- check password from /etc/shadow
/etc/passed 里每一行代表一个帐号。 0 为系统管理员,1-999 系统帐号,1000-60000 可登录帐号,在该文件里的gid为初始用户组id,当用户一登录就会获得该组的权限。
/etc/shadow 用户密码相关信息。 authconfig --test | grep hashing ,可以查询加密机制
/etc/group,每个行代表一个用户组,包含组信息及该组包含的用户信息。
有效用户组与初始用户组
- 新文件的用户组是有效用户组
- groups 输出的第一个用户组为有效用户组
- newgrp 可以修改有效用户组,该命令是以另一个新的shell来执行的,所以要在当前shell生效,需要exit回到当前shell.
- gpasswd,添加组管理员
帐号管理
- User
useradd
usermod
userdel, -r会连同用户home一起删除
passwd。设置密码。 echo ‘abc’ | passwd --stdin user1
id 列出相关的Id信息
finger,查看用户信息
SKEL=/etc/skel,用户家目录结构的参考基准。/etc/default/usr/add 添加用户时参考文件,/etc/login.defs
- group
groupadd
groupmod
groupdel
gpasswd,用户组管理员查看与设置。后面不加任何选项,则表示设置group password.-A将组管理权交给某个user.
ACL Access Control List
ACL 主要针对, User, Group, mask(默认权限), dmesg | grep -i acl,查看系统是否支持acl
- getfacl, 获取文件或目录的ACL设置选项
- setfacl,设置文件或目录 的ACL规范
setfacl -m:设置后面的参数给文件. -x 删除后面的acl参数设置 -k 删除默认的ACL参,-b 删除所有参数设置。 -d设置默认参数, -r 递归设置。
e.g: setfacl -m u:user1:rx m:r -g:grp1:rw file1
用户身份切换
- su - ,以Login shell的方式来切换。 -m 使用当前环境设置, -c 仅进行一次命令。如果需要root权限,需要输入密码
- sudo 给提定用户或用户组提权, -b 后台运行, -u 要切换的用户
visudo
user 登录主机=可切换的身份 可执行的命令
user1 All=(ALL) NOPASSWD: ALL 代表user1可以不要password执行任何命令
%group1 All=(ALL) NOPASSWD: !/usr/bin/passwd root 代表group1组里的用户不可以执行修改root password的命令
User_Alias xxxx, Cmnd_Alias可以以别名的方式指定用户或命令列表。然后在权限 设置的时候可以引用这些别名。
用户信息传递
- 查询用户:
- w, who
- last
- lastlog
- 用户对谈:(write, wall需要用户在线,接收用户可以通过mesg来决定是否要接收用户消息)
- write,针对某个用户发送消息
- wall,针对所有用户发送消息
- mall,以邮件方式 发送
帐号检查工具
pwck,检查用户的home,密码等数据有没有问题