分类: LINUX
2008-10-31 15:27:23
文件及目录的suid/guid和t属性 |
---|
|
1. 4000---调整用户号
2000---调整组号 1000---粘着置位 2. suid/guid程序 当一个程序的用户或组被置位的时候,即4000或2000时,可实现某些特殊的功能一般来说, 一个运行中的程序为运行这个程序的用户所拥有,但如果该程序是suid/guid程序,则运行 的程序则为文件所有者拥有,运行中的程序在程序运行期间拥有文件所有者的全部权限 如果一个普通用户运行了一个属于根用户的带s标志的程序,则该程序不考虑用户权限, 自动拥有在系统中读/写任何文件及目录的特权,对于guid程序也是一样的。 最典型的要数/usr/bin/passwd程序了,-r-s--x--x ,可帮助普通用户更改在系统中的密码, 利用的就是suid的作用。 但也要严格设置这种权限,避免破坏性, 因为如果你的suid程序是/bin/bash的话,则会导致严重后果,一个普通用户若在某个短时间 取得过root权限,他就能设置一个suid程序/binb/bash来取得根特权。 (若拿它来破坏别人的系统,后果自负) # cp /bin/bash /home/jephe/.backdoor # chmod 4755 /home/jephe/.backdoor 这样当攻击者执行了/home/jephe/.backdoor后就得到了根特权,可用id命令显示suid=0 因此一个管理员应定期运行检查程序检查系统内有无异常的suid/guid程序:象下面这样的命令 #find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \; >suid-sguid-results 把上面的命令放入cron job并邮递文件suid-guid-resuilts给管理员邮箱帐号. 3. 程序的t属性 粘着位 告诉系统在程序完成后在内存中保存一份运行程序的备份,如该程序常用,可为系统 节省点时间,不用每次从磁盘加载到内存 4.目录的s属性 目录的S属性使得在该目录下创建的任何文件及目录属于该目录所拥有的组。 例如在apache中为个人设置WEB目录的时候,如果给apache分配的组名为httpd. 则: #chown -R jephe.httpd ~jephe/public_html #chmod -R 2770 ~jephe/public_html 确保在public_html中创建新的文件或子目录时,新创建的文件设置了组ID。 另外如有两个用户a和b都属于组c,则希望在某目录下a创建的文件也能被b修改,则 可设置该目录chmod +s属性,同时设置a和b的默认umask为770。 5. 目录的T属性 设置了目录的T属性后1000,由只有该目录的所有者及root才能删除该目录,如 /tmp目录就是drwxrwxrwt 6. 文件及目录的三种时间位 每个Linux文件有三种保存着的时间日期标志。 文件建立时间 (实际上是文件I节点建立时间) 文件最后访问时间 文件最后修改时间 默认ls -l时显示的是文件最后修改时间,也可用ls -l --time=atime(文件最后访问时间) ls -l --time=ctime(文件建立时间) 可用touch命令改变时间日期标志,从而可隐蔽攻击者对文件放置特洛伊木马后对文件时间 的修改 7。可用chattr改变文件及目录的属性。 有时你会发现对某个文件即使是root用户也不能修改或添加新内容,那很可能是该文件被 用chattr命令设置成不可更改或附加新内容了。你必须先用chattr去掉这些属性再更改内容。 |