问一个关于文件权限的问题

比如:
我有一个目录good,里边有很多普通文档和目录。假如,普通文件的权限栏是-rw-r--r--,文件夹的权限是drwx-r-x-r-x,说明这个目录里边的东西是可以浏览,可以读取,组和其他用户不能写入。
如果我操作失误,用了chmod -R 777 ./good/*,把里边的所有文档和目录都变成了-rwxrwxrwx和drwxrwxrwx了,我怎么能够变回去?
因为目录要有x权限,文件却不能有x权限,这个该怎么处理?

作者: gogo11   发布时间: 2011-06-16

ms没有后退功能
只能一个个修改
前提是你知道原先的权限
一个类似的情况, 如果是对/作chmod 777
那就只能重装了

作者: age   发布时间: 2011-06-16

本帖最后由 gogo11 于 2011-6-16 16:02 编辑

只能一个个的改啊,那不很麻烦……

我在看http://www.linuxsir.org/main/?q=node/196

还有,如果rm权限:
gogo11@localhost:~/test$ ls -l /bin/rm
-rwsr-xr-x 1 root root 46756 2010-06-11 15:11 /bin/rm
s权限是让普通用户以管理员权限运行rm,大S是没有执行权限的意思,既然没有权限了,那还不如改成“-”,或者更改拥有者不更省事?还有-rwsr-s-r-x的权限,拥有者的权限带s,说是让普通用户拥有root权限,那组里边的s是怎么回事?让普通组拥有管理组的权限?
是不是应该这样描述:让其他用户以文件拥有者的权限运行程序。但如果这样讲,那组上的s权限更无法理解。
资料上讲的,这样会有管理漏洞,建议用su和sudo,有什么样的管理漏洞,你给了就给了,不给就不给,和sudo等差别哪儿?

作者: gogo11   发布时间: 2011-06-16

本帖最后由 age 于 2011-6-16 16:12 编辑

这是setuid, setgid问题
用户权限上有s, 就表示可以以该用户身份运行
组权限上有s, 就表示可以以该组身份运行
一般最常见的就是 passwd
  1. [allblue@MyLady samba]$ ll /usr/bin/passwd
  2. -rwsr-xr-x 1 root root 20K  3月  3 05:22 /usr/bin/passwd
复制代码
它的所有者是root.root, 如果没有s权限, 那么普通用户就没法运行passwd改密码了
如果原先有x权限, 那么加上后就是显示小写的 s
如果原先没有x权限, 那么加上后就显示大写的S

设置setuid/setgid必需非常小心, 万一对一些敏感的程序开放了s权限, 会给系统带来麻烦
而sudo要好上很多, 在visudo里可以设定用户允许执行的程序, 并能限制后面跟的参数, 危害要好很多
至于su, 更不安全了, 它需要root密码以通过验证. 而如果人人都知道root密码, 那还有什么安全性可言.

作者: age   发布时间: 2011-06-16

本帖最后由 gogo11 于 2011-6-16 16:26 编辑

自己能不能删掉自己的家目录,比如:
gogo11@localhost:/media/Backup$ pwd
/media/Backup
gogo11@localhost:/media/Backup$ rm -Rf /home/gogo11
为什么问这个问题,因为用windows2003作文件服务器的时候,共享文件夹,比如:业务部;业务部里边比如有一个文件夹user01,user01选择不继承业务部的权限,去掉everyone,添加user01用户为该文件夹可读可写,guest可读;共享业务部,共享权限业务组人可读可写,其他人可读。

这个时候user01文件夹能被业务组他自己删掉,后来+了拒绝本人删掉本文件夹才终结了这件事~~~

这个不知道会不会出现同样的事情,俺现在正在学习smb,上边说先建立文件夹,然后把用户的家目录指向过来。因此这个问题就先提出来……

作者: gogo11   发布时间: 2011-06-16

本帖最后由 age 于 2011-6-16 16:38 编辑

可以加上sticky权限, 只要用户不是该文件夹所有者就不能删, 只给他rw权限不会有事

作者: age   发布时间: 2011-06-16