开源 centos Windows linux命令 Python java mysql nginx php linux HTML5 shell 程序员 wordpress Android google 微软 Firefox apache Ubuntu

LAMP服务器网站根目录权限问题小议

CentOS上搭建的lamp环境经常碰到上传到htdocs目录权限不足的问题,每回像这种temp目录,runtime目录都得给个权限……

chmod 777 -R temp
chmod 777 -R runtime

烦……

setfacl命令就可以轻松搞定,下面介绍一下setfacl命令和chmod命令的区别:

setfacl命令可以用来细分Linux下的文件权限。chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。 比较常用的用法如下:

setfacl –m u:apache:rwx file 设置apache用户对file文件的rwx权限
setfacl –m g:market:rwx file 设置market用户组对file文件的rwx权限
setfacl –x g:market file 删除market组对file文件的所有权限
getfacl file 查看file文件的权限

现在进入主题,网站根目录权限的问题刚装好的环境apache的运行者为daemon用户组也是daemon。首先我们把apache所属用户给apache

groupadd mysql
useradd -g apache apache

当然在装的过程中apache用户已经存在了

vi /etc/httpd/httpd.conf
将
user daemon
group daemon
改成
user apache
group apache

然后敲命令

setfacl -m u:apache:rwx -R /usr/local/apache2/htdocs
setfacl -m d:u:apache:rwx -R /usr/local/apache2/htdocs

现在web服务器的运行就交给apache用户了,并且它对/usr/local/apache2/htdocs下所文件目录拥有权限,现在查看文件看和原来比有什么变化:

ll

总计 64
-rwxr-xr-x+ 1 zhengzs root 2205 2005-12-15 apache_pb22_ani.gif
-rwxr-xr-x+ 1 zhengzs root 2410 2005-12-15 apache_pb22.gif
-rwxr-xr-x+ 1 zhengzs root 1502 2005-12-15 apache_pb22.png
-rwxr-xr-x+ 1 zhengzs root 2326 2004-11-21 apache_pb.gif
-rwxr-xr-x+ 1 zhengzs root 1385 2004-11-21 apache_pb.png
-rwxr-xr-x+ 1 zhengzs root 44 2004-11-21 index.html.bak
-rwxr-xr-x+ 1 zhengzs root 17 02-01 23:18 phpinfo.PHP
drwxr-xr-x+ 19 zhengzs root 4096 02-02 00:25 ThinkPHP312

权限后面多了一个+(加号),说明acl已经生效了。*用acl来让apache用户对/usr/local/apache2/htdocs有所有权限,这样上传的文件就不用繁琐去chmod给权限,上传到根目录的文件网站都有权利运行,维护起来相当省事。

延伸阅读

评论