Ubuntu 服务器文件权限问题

Ubuntu 服务器文件权限问题 1. php项目文件目录文件夹和文件归属 www-data:www_data# 修复整个项目的归属 sudo chown -R www-data:www-data /path/to/project # 修复目录权限 find /path/to/project -type d -exec chmod 755 {} \; # 修复文件权限 find /path/to/project -type f -exec chmod 644 {} \; # 给特殊目录写权限 sudo chmod -R 777 /path/to/project/storage /path/to/project/logs2.SVN文件目录首先确认你的 SVN 服务是以哪个系统用户身份运行的这是权限设置的目标用户。# 如果使用 svnserve 服务 ps aux | grep svnserve # 输出示例svnuser 1234 ... /usr/bin/svnserve -d -r /var/svn # 如果通过 Apache mod_dav_svn 运行常用 ps aux | grep apache2 # 输出示例www-data 1234 ... /usr/sbin/apache2 -k start绝大多数通过 Apache 提供的 SVN 服务运行用户是www-data。下面以www-data为例。第二步将操作账户加入 www-data 组如未操作如果你需要用 ubuntu 账户去管理仓库文件拷贝、删除、修改需要把 ubuntu 加入 www-data 组bash sudo usermod -a -G www-data ubuntu # 重新登录或执行 newgrp www-data 使组权限生效第三步统一修改仓库目录的所有者和组假设你的仓库根目录是 /var/svn/myrepo执行以下命令将整个仓库的所有权递归地赋予 www-data 用户和组sudo chown -R www-data:www-data /var/svn/myrepo第四步设置目录和文件的读写权限核心SVN 仓库的正常运行需要特定的权限组合目录和文件的权限要求不同# 1. 设置目录权限755所有者可读写执行组和其他用户可读执行 find /var/svn/myrepo -type d -exec sudo chmod 755 {} \; # 2. 设置文件权限644所有者可读写组和其他用户只读 find /var/svn/myrepo -type f -exec sudo chmod 644 {} \; # 3. 特别关键让新创建的文件/目录自动继承组权限设置 setgid 位 sudo chmod gs /var/svn/myrepo3. crontab 文件php文件的所有者和组都是www-dataWeb服务器对它拥有完整的控制权。所以要编辑www-data用户的crontab文件去执行定时任务以免出现权限问题。sudo crontab -u www-data -eroot 用户的 crontab文件保存在/var/spool/cron/crontabs/rootDebian/Ubuntu或/var/spool/cron/rootCentOS/RHELwww-data 用户的 crontab文件保存在/var/spool/cron/crontabs/www-dataDebian/Ubuntu或/var/spool/cron/www-dataCentOS/RHEL每个系统用户都有自己的独立 crontab 文件用-u参数指定操作哪个用户。