LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: shaohao

如何创建一个只有root才能删除的文件

[复制链接]
发表于 2008-5-17 15:36:58 | 显示全部楼层
我也无意针对宗教说什么, 仅是想讨论技术本身的问题. 所以啦, 不是有某位人士说过, "所有的比喻都是蹩脚的" 嘛, 不必深究
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-17 18:55:54 | 显示全部楼层
谢谢大家的回复(包括扯淡的^_^)
我试过了,改变文件所在目录的属性的话,按照Unxi的原理,应该是可以的,但是这样一来,那个目录所在的目录,也就是父目录,还有父父目录——也就是爷目录,父父父目录,父父父父目录……全都要改权限吧,这样才能确保不被删除,否则其他非root用户直接把那个目录删除了就行。
那么,如果我要在sh的工作目录(/home/sh)下建立一个只有root用户才能删除的文件不就是不可能得了吗?
回复 支持 反对

使用道具 举报

发表于 2008-5-18 14:09:05 | 显示全部楼层
chown root ...
chmod 000 ...
这样?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-18 14:43:48 | 显示全部楼层
Post by fallening;1851361
chown root ...
chmod 000 ...
这样?


没用的,晕,你可以试一下行不行在发啊!
评经验下结论,害死人。
回复 支持 反对

使用道具 举报

发表于 2008-5-19 08:59:06 | 显示全部楼层
楼主什么系统? 我是 2.6.17 的 kernel, 对于普通用户来说, 只要文件对自己没有 w 权限, 那么就是删不了的. 之前只顾着 YY 了, 都没留意具体的讨论内容
回复 支持 反对

使用道具 举报

发表于 2008-5-19 10:46:37 | 显示全部楼层
Post by remote fish;1851650
楼主什么系统? 我是 2.6.17 的 kernel, 对于普通用户来说, 只要文件对自己没有 w 权限, 那么就是删不了的. 之前只顾着 YY 了, 都没留意具体的讨论内容


但是这个文件在你的$HOME目录下呢?你试试看。
回复 支持 反对

使用道具 举报

发表于 2008-5-19 10:49:46 | 显示全部楼层
Post by shaohao;1850956
谢谢大家的回复(包括扯淡的^_^)
我试过了,改变文件所在目录的属性的话,按照Unxi的原理,应该是可以的,但是这样一来,那个目录所在的目录,也就是父目录,还有父父目录——也就是爷目录,父父父目录,父父父父目录……全都要改权限吧,这样才能确保不被删除,否则其他非root用户直接把那个目录删除了就行。
那么,如果我要在sh的工作目录(/home/sh)下建立一个只有root用户才能删除的文件不就是不可能得了吗?

不是所有上层目录都要改,你可以做这样一个实验,在你的用户目录(也就是你提到的/home/sh)下用root身份创建一个目录test01,然后在test01下用root身份创建一个文件或目录都可以,然后用这个叫sh的用户试试干掉这个目录或目录下的东西。
回复 支持 反对

使用道具 举报

发表于 2008-5-19 11:08:57 | 显示全部楼层
的确是的,再home下用root建立一个文件夹,再在这个文件夹下建立个属于root的文件,那么普通用户不能删除这个文件夹和里面的文件,但是如果只是在home下建立文件(如lz的sh家目录中),当然是属于root的了,这个文件是可以被普通用户(如sh)删除的。
   很奇怪,权限不是最小化原则吗,取交集,那可写和不可些共存时应该取不可写这个权限的阿, 另外现在大家用的内核基本都在2.6.24以上了, 内核版本过低这个理由不能成立的了。
回复 支持 反对

使用道具 举报

发表于 2008-5-19 11:11:48 | 显示全部楼层
Post by 狱卒;1851694
但是这个文件在你的$HOME目录下呢?你试试看。


原来是说在 $HOME 目录下, 没注意到

如果是这样的话, 恐怕就只能

chown root.root ~someone
chmod 7777 ~someone

不过这样做不太好吧

还是应该使用非空目录来避免删除比较好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-19 20:53:17 | 显示全部楼层
Post by remote fish;1851650
楼主什么系统? 我是 2.6.17 的 kernel, 对于普通用户来说, 只要文件对自己没有 w 权限, 那么就是删不了的. 之前只顾着 YY 了, 都没留意具体的讨论内容


这……怎么可能??
我的是2.6.24 64位版本的Arch。
即使文件的所有属性都为0照样能删除
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表