Linux 高级主题:用户、组和权限
一、用户和组ID号
1. 用户名映射到用户ID号
2. 组名映射到组ID号
3. 存储在硬盘上的数据将以数字方式存储
文件存储在计算机上时,有关文件的元数据将以数字方式存储。即,不会存储文件的用户名和组从属,而是存储用户ID号和组ID号。
[root@desktop24 tmp]# ls -ln
drwx------. 2 0 0 4096 Jul 26 15:19 keyring-97yqPG
二、/etc/passwd、/etc/shadow、/etc/group文件
1. 验证信息将存储在纯文本文件中:
/etc/passwd 用户名:密码占位符:uid:用户主组gid:GECOS字段(用户真实姓名):主目录:登录shell
/etc/shadow 用户名:哈希密码:密码最后一次变更时间(1970.1.1):密码最小存活期:密码最大存活期:警告
/etc/group 组名:组密码占位符:gid:组成员
/etc/gshadow
/etc/gdm/gdm.schemas 71行写入用户可在登录界面隐藏
三、用户管理工具
1. GUI:system-config-users
2. CLI:useradd,usermod,userdel [-r]
创建用户账户时,会从基本框架中自动复制一些文件(/etc/skel/)
四、系统用户和组
1. Web服务器或打印服务器等服务器程序通常会以未授权的用户身份运行,而不是以root身份运行。
示例:daemon,mail,lp,nobody
2.以这种方式运行程序可以限制任何单独程序可能对系统造成的损害。
五、监控登录
1. 已连接用户:w
用于显示已连接用户的信息,以及只要用户连接到tty或在后台时所运行的进程信息。也将显示平均负载和其他系统统计数据信息。
2. 登录和重新启动历史记录:last
显示连接和重新启动历史记录。可以将用户附加到last(last root),使用的/var/log/wtmp日志文件。
3. 登录尝试失败:lastb
显示失败的账户访问尝试(失败登录),使用的/var/log/btmp日志文件。
4. 最近登录:lastlog
全部用户或给定用户的最近登录信息。
六、默认权限
1. 目录的默认权限为777减去umask
2. 文件的默认权限是目录默认减去执行权限
3. umask由umask命令设置
4. 未授权用户的umask为002
文件将拥有的权限为664
目录将拥有的权限为775
5. Root的umask为022
系统默认umask为002,改umask为022执行命令:umask 022。通常通过在登录时运行脚本设置umask,/etc/bashrc定义全局,~/.bashrc定义用户。
七、可执行权限的特殊权限
1. 可执行文件的特殊权限
suid:使用命令所有者而不是命令执行者的权限运行命令
sgid:使用命令组的组从属运行额命令
除拥有者、拥有组和其他用户权限外,还要一组被成为特殊权限的权限。包括:1)4代表suid或设置用户ID、位,2)2代表sgid或设置组ID、位,3)1代表粘滞位
在长列表中,suid权限显示为小写“s”,其中的“x”将被视为用户权限存在(如果未设置底层可执行文件权限,那么将显示一个大写“S”)。
2. 目录的特殊权限
粘滞位:无论目录的写入许可如何,设置sticky bit 的目录中的文件仅可由拥有者和root删除。
sgid:在设置sgid bit 的目录中创建的文件拥有目录组的组从属。(即继承目录组)
附:umask 0022
1)如果在一个命令上(可执行文件)应用suid,那么任何人在执行该命令时会临时得到拥有者的权限。(u+s)
2)如果在一个目录上应用sgid,那么任何人在该目录中创建的文件会继承目录本身组。(g+s)
3)如果在一个目录上应用了sticky bit,那么仅root和文件拥有者才能删除该文件。(o+t)