这章之前已经看过,不过当时理解的好少,这次是复习更是第二次学习,理解了更多!!真开心!!!
文件和进程的归属关系:
/etc/passwd
/etc/group
每个用户都有一个实际的GID和一个有效的GID,一个实际的UID和一个有效的UID。实际的是不能够改变的,不过当执行了“setuid”或“setgid”权限位的命令时,所得到的进程其有效UID或者GID可以设置为包含该程序的映像文件的UID或者GID。
利用linux的setuid功能,普通用户可以以一种受限的并被严格控制的方式来使用root帐号去运行程序。例如,用户修改其登录口令的passwd命令就是一个setuid程序。它以一种严格限定的方式去修改/etc/shadow或者/etc/passwd文件,然后退出执行。
超级用户:
UID为0.超级用户有权改变属主为root的进程的UID和GID
成为root用户:
su:替换用户身份
最好是键入su命令的完整路径名/bin/su,而不是依赖shell为你找到这个命令,这样从一定程度上防范已经流入到搜索路径下的名为su的程序。
sudo:受限的su
sudo读取文件/etc/sudoers,这个文件列出授权使用sudo的人以及允许他们在每台主机上运行的命令。文件sudoers的设计是仅一个版本就可以立即应用于许多不同的主机。下面是一个典型例子:
........
(好像还复杂呢,以后还的找资料搞清楚sudoers里面的语法)
注意,/etc/sudoers中的命令是采用完整路径来指定的,这样作是为了防止人们以root身份去执行他们自己的程序和脚本。要修改sudoers,应该使用visudo,这个命令进行检查以确定没有其他人正在编辑这个文件,再对文件调用一个编辑器,然后在安装它以前验证被编辑文件的语法。
sudo有以下好处:
1、有命令日志,极大改善了清查安全责任的能力
2、维护一个具有root特权的所有用户的规则规范表
3、可以使用单个文件来控制对整个网络的访问权限
其他的伪用户:
bin
daemon
nobody
习题:
1、使用带有-perm选项的find命令找到5个setuid文件。
答案:这个上次看的时候不知所云,现在终于懂!下面可以介绍两种方法:
1、观察ls -l的输出格式,发现设置了setuid之后,属主执行那位会变成s,即rws,设置了setgid之 后,属组执行那位也会变成s.所以可以输入命令如下:
ls -l | grep "^...s"
2、看过一篇博文之后,弄明白的find的-perm选项。
find . -perm 4755
下面介绍一下具体用法,-perm的权限匹配有几种模式的
4000 完全匹配,各位的权限位完全符合
+4000 化成二进制之后,权限位是1的要匹配,0的就无所谓,有点像子网掩码的感觉
-4000 化成二进制之后,权限位是1的只要有以为匹配就行了,别的无所谓
2、列举一系列修改某个用户口令的命令,展示如何掩饰修改过的踪迹。假定你只有sudo权利(允许使用除shell或者su之外的所有命令)
3、为sudoers配置文件创建两项:
a)一项让matt、adam负责在printserver这台机器上为打印机服务,消除夹纸,然后重启打印机的守护进程。
b)一项让drew、smith终止学生机房里机器上的任务并重启机器。
http://blog.chinaunix.net/u3/113700/showart.php?id=2234687
授权用户 主机=[(转换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(转换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(转换到哪些用户或用户组)] [是否需要密码验证] [命令3]....
User_Alias User=drew,smith
User ALL=/bin/reboot
4、安装sudo,配置成让它把有关误用的邮件发给你。以本地用户名和机器名来测试上一个问题中的sudo配置项;验证sudo是否能够正确的把日志写到syslog。检查测试在syslog中生成的日志项(需要root权限,很可能要调整/etc/syslog.conf)//
阅读(1310) | 评论(0) | 转发(0) |