我一直在学习Python和Bash脚本,到目前为止我已经给我的脚本授予了777权限。了解了有关如何设置权限的更多信息并知道这是一个坏主意后,我运行了以下命令(在 Mac OSX,v10.6.8 上):
find / -type f -perm 0777
我本以为只会得到一小部分已分配 777 权限的文件列表,但结果却得到了一个巨大的列表。 (确切地说是 1,503 个。)其中包括我的少量脚本,以及我的所有图像文件、html 和 css 文件、电子书附带的示例代码,以及与 Adobe Flash Catalyst、Smith 等应用程序相关的文件Micro Anime Studio,称为 Microsoft Play Ready 的东西(我认为这是 Silverlight 的一部分),等等。
我对此有点陌生,但这不是一个问题吗?任何文件都应该有 777 权限吗?
答案1
给文件777
权限确实不正常。我想不出任何文件拥有此类权限的合法理由,但如果存在,最好有一个非常非常好的理由。
我建议您立即更改这些权限。
- 至少,删除其他人的写权限,
chmod -R o-w
- 您很可能还想删除该组的写权限,使用
chmod -R g-w
- 就我个人而言,我真的不喜欢看到带有可执行位的图像/音频/视频/文档文件。我也会删除那些,比如
find /path -name '*.png' -exec chmod a-x {} \;
以后要多加小心。安全性 101 不授予超出实际需要的权限。例如,您可以首先将所有文件0400
和所有目录设置为0500
,然后查看哪些内容不起作用,并逐渐添加最低限度的权限。
umask
你的系统的输出是什么?如果它比0022
那时更宽松,我认为您可能需要添加~/.bashrc
命令umask 0022
。默认情况下,这会导致您创建的新文件不具有组和其他人的写入权限。
答案2
权限 777 并不是所有文件都必需的。
权限为: rwxrwxrwx ,分为三组“rwx”,第一组为所有者用户,第二组为所有者组,第三组为其他组。
777 是 111 111 111 的二进制,因此: 777 -> rwxrwxrwx
另一个例子:760 ->rwxrw----
如果文件不可执行,则无需授予其执行权限,就像电子书一样。
如果你有一个像 bash 脚本这样的可执行程序,并且你不想让其他人执行该脚本,那么第三部分的第三个数字必须为零,我的意思是:??? ??? ??0
例如,您想让其他人读取您的脚本,但您不让他们编写或执行它,因此权限将是:??? ??? r-- =>??4