关于linux下布置网站的权限问题

相信刚做网站布置到linux服务器的伙伴们都会遇到,开发的使用没有任何问题。但布置到linux就各种问题…大部分原因是权限原因引起的,本人也是深受其害。今天就记录一下权限问题。

下面是上网上查的一篇资料说的挺有道理的。

为什么要给目录以777的权限呢?

  1. 这里的最后的那个7, 是针对other的, 而网站访问的人就是 other, 所以最后的这个7, 就是对web目录而言的;
  2. 目录的权限, 除了给以 write权限外, 还要给以 x 可执行 的权限, 因为: 目录的write权限 和 x权限 完全是不同的, 两者之间是不可以互相取代的:write权限是指: 在目录中, 可以add创建文件/目录;删除文件/文件夹(不管文件的本身的权限是什么, 也不管文件的所有者是谁?); 重命名文件/目录; 最后是可以移动文件/子目录.而x 可执行权限, 是指 其他用户是否可以 进入 该目录, 是否可以 使用 cd 命令 进入该目录. 为什么又叫 可执行 权限呢? 因为 只有当你 可进入 cd 到 这个目录后, 你才可以在这个目录下 “执行” 命令. … 如果你没有x命令, 那么即使你有read权限, 也是不能 读取目录里面的文件的!
  3. 事实上, 在任何地方 任何用户, 创建 目录的 时候, 默认的目录 权限就是 r-x, 也就是说, 默认的目录 对other 都是有 x 权限的, 否则, 你创建目录干 什么呢?
  4. 通常来说, 重要的, 最主要的, 还是通过 控制 写权限 来 控制目录的. 故目录的写权限 w 才是最重要的.
  5. 所以, 给目录 在原来的权限基础上: 755, 给以写权限, 就好了, 即777. 一点都不过分.
  6. 而对于文件, 就不同于目录的默认权限 755, 文件的默认权限是 644, 因为文件默认不会设置它为 可执行文件, 没有 x 权限. 所以它的默认权限是644.
  7. 而文件 即使它不是 可执行文件, 给它 以 x 权限, 让他成为可执行文件, 也没有什么额外影响. 所以 给全部 Appliatcion以777 权限是可以的.
  8. 但是, 如果你有洁癖, 确实是不想给文件 以执行的 权限,(或者是说 不想看到vim中 Nerdtree 可执行文件旁边的星号, ) …. 如果我们只是想给web(application目录下的 子目录, 以777 的权限, 而 web下的 文件 的权限本身 不要改变, 这时候, 可以参考下面的内容:先 chmod -R 777 /webpath,然后, 恢复目录下的文件 的原来的权限: find /webpath -type f -exec chmod 644 {} \;
  9. 理解以前的那么命令, 使用 find 命令和 其他命令 如ls 的 结合使用 : 就是上面的 , 使用 -exec …. {} \; 注意 这里 的{} \; 就相当于一个占位符, 代表前面的搜索到的 内容!
  10. 除了在终端下使用 chmod命令来修改文件的权限, 还可以 用php 提供的 chmod函数, 这里面的 权限参数, 就一定要使用 0777的 形式, 其中最前面的0 表示是 8 进制. 这个在 chmod函数只是不能省略的. chmod命令中其实 还是 0777, 仍然是八进制, 只是省略了而已!
  11. 注意, UID就是指的 文件的所有者. 在安全模式下, chmod函数, 会坚持所操作的文件, 和当前 脚本的文件 是否具有 相同的 UID. (即看它们是不是属于同一个所有者)…

来自开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux

所有后面总结,二话不说,先执行chmod -R 777 /webpath     再执行 find /webpath -type f -exec chmod 644 {} \;      如果有特殊文件再特殊调整