我来自 Windows 背景,几乎不知道如何操作 Linux(或 AWS)。因此,我开发了一个应用程序并将其部署在 AWS 上。我将总结我迄今为止所做的事情以及我所取得的成就。
- 我创建了一个 ec2 实例,安装了开发和生产所需的所有工具和环境。
- 安装并配置httpd守护进程,玛丽亚数据库和phpmyadmin控制板。
- 部署我的应用程序并使用命令更改所有权
chown root:apache ./path/to/directory/*
- 使用授予权限
chmod -R 775 ./path/to/directory/*
semanage
允许使用的应用程序的写入权限semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/directory(/.*)?"
- 最后执行了这个命令
restorecon -R /path/to/directory
(不完全确定它的作用,找到了权限指南这里)
完成所有这些后,我可以在 Web 上访问我的应用程序,并且工作正常。但是,当我尝试通过 FTP 传输文件时(使用档案)它给了我一个错误说:
错误:/var/www/Foo/bar.php:打开以进行写入:权限被拒绝
错误:文件传输失败
当我允许其他用户使用时,chmod -R 777 ./path/to/directory/*
我可以轻松上传文件。但我读到这里,777
并不总是一个好主意。
我的问题是,我如何使用现有权限通过 FTP 传输我的文件,如果我必须将我的权限更改为777
,如果我是该实例的唯一用户,这样做可以吗?
答案1
据我所知,chmod -R 777
这不是一个好主意,因为 777。每个人都可以读取、写入和执行您的文件和目录,因为这允许任何人都向您的服务器添加恶意代码。
chmod -R 755
常用于网络服务器。所有者拥有读取、写入和执行的所有权限。其他人只能读取和执行,但不能更改您的文件。
例子:
chmod -R 755 ./path/to/directory/*
chown -R $USER:$USER ./path/to/directory/*