首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ubuntu、文件夹perms、drwxrwx

ubuntu、文件夹perms、drwxrwx
EN

Server Fault用户
提问于 2016-12-14 21:52:04
回答 1查看 892关注 0票数 0

我卡住了&需要帮助理解文件,为组成员创建权限。

在php中,我希望在mysql:mysql拥有的文件夹中打开/创建一个文件(用于将数据导入mysql)。

文件夹-ld

代码语言:javascript
复制
drwxrwx--- 2 mysql mysql 4096 Dec 14 14:33 /var/lib/mysql-files

php作为用户www-data

运行。

我在组“mysql”中添加了“www-data”用户。

代码语言:javascript
复制
sudo usermod -a -G groupName userName 

已验证

代码语言:javascript
复制
sudo groups www-data
    www-data : www-data mysql

看来我的php用户帐户'www-data‘通过组成员身份对文件夹具有写权限,但是我得到了一个错误13’拒绝权限‘。

键入这个问题时,有一个类似的问题(https://serverfault.com/a/534000/65092)

有一个答案是父文件夹(/var和/var/lib)需要对用户或组具有'x‘权限,我理解这意味着:

php用户'www-data‘需要能够查看/var内部,读取/lib,读取/mysql-文件。

代码语言:javascript
复制
/var = drwxr-xr-x 16 root root 
/var/lib = drwxr-xr-x 62 root root 

现在看来已经启用了。

有什么建议或意见吗?谢谢。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-12-15 16:59:56

解决方案:

我应用了Mike建议的链接解决方案

代码语言:javascript
复制
sudo chmod g+s /var/li/mysql-files

(它应该设置任何新创建的文件的组id,与其父文件夹的组相等),但我仍然无法使用php在该文件夹中创建文件。

在进一步的阅读中,我了解到权限是在登录后应用的(当然,也是这样),但是由于用户www-数据没有密码并且无法登录,我需要重新启动服务器,以查看新的权限是否会生效。

接下来,我从终端上测试了通过php创建文件的过程,但是它仍然无法工作。我很快意识到php的cli是从终端上的我的用户帐户中启动的,因此它没有以用户www-data的形式运行,因此权限被拒绝。我从终端启动了php,在sudo -u www-data php -a和Viola的用户www-数据下运行!文件是创建的。

创建后检查文件权限,所有者为www-data,组被正确设置为其父文件夹的组,但未设置写入权限。关于umask的进一步阅读使我使用了sudo setfacl -d -m group:mysql:rwx /var/lib/mysql-files (设置访问控制列表,以便为在文件夹中创建的新文件启用组的写权限)。似乎文件夹的写权限已经为组启用了,所以我不知道为什么需要这个额外的步骤。)

当用户'www-data‘通过时,运行php的命令行将进行进一步的测试。

使用完整php脚本的测试通过了。

谢谢!

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/820761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档