AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 21985
In Process
JD Isaacks
JD Isaacks
Asked: 2011-01-18 08:27:23 +0800 CST2011-01-18 08:27:23 +0800 CST 2011-01-18 08:27:23 +0800 CST

php 用户 www-data 的默认文件权限

  • 772

我在我的 ubuntu 机器上安装了一个 php。网络根是/var/www

我像这样设置这个文件夹的权限:

sudo chown -R ftpuser:www-data /var/www

ftpuser 是我设置的用户,因此我可以从网络上的另一台机器 ftp 到 /var/www。www-data 是 php 使用的用户。whoami我使用来自 php 的仔细检查。

每当我 ftp 将新文件上传到机器时,该组都没有对该文件的权限。因此,当我尝试通过浏览器访问它时,machine-name/new-file.php我被告知权限被拒绝,我必须去chmod获取新文件。

我想知道是否有一种方法可以默认 www-data 用户/组具有对新文件的访问权限,这样我就不必保留每个新文件的 chmod 了?

permissions
  • 3 3 个回答
  • 37647 Views

3 个回答

  • Voted
  1. user8290
    2011-01-18T09:37:21+08:002011-01-18T09:37:21+08:00

    您可以使用 ACL。要为 Ubuntu 10.10 设置 ACL,首先使用 /etc/fstab 中的 acl 选项挂载文件系统。

    sudo vim /etc/fstab
    

    UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 默认值,acl 0 1

    sudo mount -o remount,acl /
    

    然后为此目的创建一个用户可能属于的组。

    sudo groupadd developers
    sudo usermod -a -G developers $username
    

    用户需要注销并再次登录才能成为开发人员组的成员。

    当然,如果 /var/www 目录中有您想要的内容,请不要这样做,这只是为了说明如何设置它以启动:

    sudo rm -rf /var/www
    sudo mkdir -p /var/www/public
    sudo chown -R root.developers /var/www/public
    sudo chmod 0775 /var/www/public
    sudo chmod g+s /var/www/public
    sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public
    

    然后在配置文件中用“/var/www/public”替换对“/var/www”的引用并重新加载。

    sudo vim /etc/apache2/sites-enabled/000-default
    sudo /etc/init.d/apache2 reload
    

    如果我们想限制除创建文件的用户之外的所有人的删除和重命名:

    sudo chmod +t /var/www/public
    

    这样,如果我们想为存在于 Apache 文档根目录之外的框架创建目录,或者可能创建服务器可写目录,这仍然很容易。

    Apache 可写日志目录:

    sudo mkdir /var/www/logs
    sudo chgrp www-data /var/www/logs
    sudo chmod 0770 /var/www/logs
    

    Apache 可读的库目录:

    sudo mkdir /var/www/lib
    sudo chgrp www-data /var/www/lib
    sudo chmod 0750 /var/www/lib
    
    • 6
  2. Mannuel
    2014-04-21T12:41:42+08:002014-04-21T12:41:42+08:00

    我确定你已经解决了这个问题,所以这适用于任何有类似要求的人

    在您的 webroot 文件夹上运行“更改所有权”命令:

    sudo chown manny -R www
    

    这将使您成为所有者用您的用户名替换“manny”,使您能够在 www 文件夹中写入/读取

    • 4
  3. Lekensteyn
    2011-01-18T09:06:57+08:002011-01-18T09:06:57+08:00

    如果您的网络服务器甚至无法读取文件,则很可能是new-file.php600 的权限(所有者可读写)。在您的 FTP 应用程序中搜索umask设置,并确保它类似于 007。

    如果您的 Web 应用程序需要 chmod 文件(或其他只能由文件所有者完成的操作),您需要另一种方法。如果您使用的是 Apache,则应考虑使用itk MPM。使用该模块,您可以使 Apache 使用与“ftpuser”相同的用户运行/打开文件。如果您需要有关此主题的更多信息,请添加评论。

    • 1

相关问题

  • 访问启用的虚拟主机时出现 403 禁止错误

  • WINE 用户配置

  • 无法更新雷鸟

  • Ubuntu 在什么许可证下?可以合法修改和分发吗?

  • 文件权限如何工作?文件权限用户和组

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve