是否有任何新手系统pipe理员可能没有考虑到的“gotcha”权限问题。
基本上我在找什么,是经验丰富的Linuxpipe理员分享一些新手pipe理员可能忽略的权限“事故”。
(我是一个Linux新手,只是读取文件的所有权和权限,以及如何得到一些事情出错的真实存储的时间)
除非你确实知道你在做什么,否则不要使用chown。
我曾经在一个系统pipe理员(不是我,我是一个程序员)的地方决定在我们的源代码目录树上做一个“chown -R”(这是在SCCS的时代,所以每个人都看着同一个目录)并设法给SCCS目录下载,这样就没有人可以检查任何内容了。
重要的是要知道,如果你希望人们能够访问一个目录,必须在该特定用户的所有父目录上设置执行位。 例如:
user1@host$ mkdir -p one/two user1@host$ echo "hi" > one/two/readme user1@host$ chmod 700 one user1@host$ su user2 user2@host$ cd one/two bash: cd: one/two: Permission denied user2@host$ ls -al one/two/readme ls: cannot access one/two/readme: Permission denied user2@host$ cat one/two/readme cat: one/two/readme: Permission denied user2@host$ exit user1@host$ chmod +x one user1@host$ su user2 user2@host$ cat one/two/readme hi
这主要在networking服务器(Web服务器)中发挥作用,用户通常希望将文件呈现给大众(通常在〜/ public_html中),但是希望保持父目录的安全。 除非您希望您的用户能够执行目录列表,否则无需设置读取位。
作为一般规则,不要使文件或目录具有世界可写性。 (临时目录计算为例外,但一定要设置“粘”位)。
从dynamic链接器( /lib/ld*.so )中删除可执行权限是一种“有趣”的方式,可以在脚下自我拍摄。