文件及目录的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去掉这些属性再更改内
容。
8,疑惑!
不过有一种属性我是没有弄明白是什么意思,如下两文件夹,真不知"+"是什么意思??.
drwxrwx---+ user group folder2
drwxrwx---T+ user group Folder1
阅读(2437) | 评论(0) | 转发(0) |