PHP 取得 Group ID 并设定档案 Group 权限

..

PHP 在 Linux 的 Web 和 Cron 要执行的环境,常常会遇到权限不足的情况。

Debian / Ubuntu Linux 的 Apache / Nginx 使用的 User 是 www-data,通常这个 user 都是无法登入的,所以会建立一个帐号来另外存取执行,要怎么确保权限都是可以读写的呢?

PHP 取得 Group ID 并设定档案 Group 权限

帐号设定:

  • Apache / Nginx:www-data
  • Cron / Script:user

先将这两个 User 设定互为 Group

  • vim /etc/group # 中间数字是随便写的,请自行参照自己机器的设定
    • www-data:x:33:user
    • user:x:100:www-data

档案写入的时候,都会是自己 owner 的权限,要趁权限是自己 owner 的时候,把 group 的权限设定好,避免被默认的权限盖掉

所以范例步骤 与 测试程式 可以这样写:

  1. touch filename.txt # 使用 user 产生一个档案
  2. chown user.root filename.txt # 先故意设定一个不同的 group 做测试,看 root group 能不能修改成 user group
  3. vim change_group.php # 此程式在 script / Web server 都可以执行,产出档案应该都可以互相写入
  4. php change_group.php
  5. ls -lh filename.txt # user.user
想在手机阅读更多Linux资讯?下载【香港硅谷】Android应用
分享到Facebook