当前位置:首页 > Contributors > 正文内容

LNMP 修改wordpress 网站目录权限时提示 .user.ini: Operation not permitted 权限不够错误的解决方法

admin1年前 (2025-03-16)Contributors4287

最近迁移网站的时候遇到一个问题(当然也不是最近第一次遇到的 ,只不过最近想到记录一下),就是 LNMP 建站环境需要修改网站目录的权限,但是修改的时候一直会提示类似于“chown: changing ownership of ‘bandwagonhost.net/.user.ini’: Operation not permitted”这样的错误信息。简单来说就是 .user.ini 这个文件我们没有权限修改。这个问题其实不用管就行,但是本着追根究底的科研精神,我们还是需要搞清楚为什么会有这个问题,以及如何解决这个问题,知其然,也要知其所以然。

本文简单介绍一下 .user.ini 文件是什么,然后解释一下为什么会出现 Operation not permitted 问题,最后给出解决方法。

一、.user.ini 是什么文件

我们可以看一下 PHP 官方对于 .user.ini 文件的描述:

自 PHP 5.3.0 起,PHP 支持基于每个目录的 INI 文件配置。此类文件 被 CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果你的 PHP 以模块化运行在 Apache 里,则用 .htaccess 文件有同样效果。

除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER[‘DOCUMENT_ROOT’] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。

在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别。

两个新的 INI 指令, user_ini.filename 和 user_ini.cache_ttl 控制着用户 INI 文件的使用。

user_ini.filename 设定了 PHP 会在每个目录下搜寻的文件名;如果设定为空字符串则 PHP 不会搜寻。默认值是 .user.ini

user_ini.cache_ttl 控制着重新读取用户 INI 文件的间隔时间。默认是 300 秒(5 分钟)。

是不是感觉艰深晦涩,不要紧,简单来说:在 LNMP 这里,.user.ini 是用来实现防跨目录功能的,该文件在网站根目录下,可以修改 .user.ini 里面的 open_basedir 的值来设置限制访问的目录或删除来移除防跨目录的设置。

二、权限不够无法修改的原因

一般来说我们出现这个问题的时候有两种情况,一种是想修改网站目录权限,比如使用 chown -R www:www domain.com 的时候。另一种是想删除整个网站目录的时候。

那么 .user.ini 为什么无法修改呢,是因为这个文件被 chattr 命令锁定了。

chattr 命令:有时候你发现用 root 权限都不能修改某个文件,大部分原因是曾经用 chattr 命令锁定该文件了。chattr 命令的作用很大,通过 chattr 命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr 命令不能保护 /、/dev、/tmp、/var 目录。lsattr 命令是显示 chattr 命令设置的文件属性。

语法:

chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录

参数:

参数  描述
-R  递归处理所有的文件及子目录。
-V  详细显示修改内容,并打印输出。
–   失效属性。
+   激活属性。
=   指定属性。
A   Atime,告诉系统不要修改对这个文件的最后访问时间。
S   Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a   Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i   Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D   检查压缩文件中的错误。
d   No dump,在进行文件系统备份时,dump程序将忽略这个文件。
C   Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
s   Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u   Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。

举例:

用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf

用lsattr查询文件属性:
# lsattr /etc/resolv.conf
----i-------- /etc/resolv.conf #显示如上

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages

三、建议的解决方法

解决方法也可以参考 LNMP 官方文档给出的建议

  • .user.ini 文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini

  • 可以使用 winscp 文件管理、vim 编辑器或 nano 编辑器进行修改。

  • 删除的话 rm -f /网站目录/.user.ini 就可以。

  • 修改完成后再执行:chattr +i /网站目录/.user.ini

  • .user.ini 不需要重启一般 5 分钟左右生效,也可以重启一下 php-fpm 立即生效。

  • 如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!

以下操作不建议

  • LNMP 1.4 或更高版本如果不想用防跨目录除需要删除 .user.ini 的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的 fastcgi_param PHP_ADMIN_VALUE “open_basedir=$document_root/:/tmp/:/proc/”; 在该行行前添加 # 或删除改行,需要重启nginx。

  • LNMP 1.4或更高版本也可以直接使用lnmp安装包 tools/ 目录下的 ./remove_open_basedir_restriction.sh 进行移除。

此外,在 Thinkphp、codeigniter、Laravel 等框架下,网站目录一般是在 public 下,但是 public 下的程序要跨目录调用 public 上级目录下的文件,因为 LNMP 默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示 500 错误也可能是这个问题引起的。

最后,如果我们只是单纯的想修改一下网站目录的权限,那么完全可以忽略这个错误,不用管就行。

参考文献:


扫描二维码推送至手机访问。

版权声明:本文由博赚恋吧资源站发布,如需转载请注明出处。

本文链接:https://www.432l.com/post/9896.html

标签: lnmpwordpress
分享给朋友:

相关文章

【免费空间】FreeHost10 - 5G免费PHP空间

FreeHost10免费PHP空间,5G存储空间,50G月流量限制,有文件类型和文件大小限制,支持FTP、Web方式上传管理文件。FreeHost10免费空间支持PHP5、提供5个MySQL数据库,采用LayeredPanel管理面板,管理面板中可一键安装WordPress、phpBB2、Xoops、Joomla、Mambo等十几种热门PHP程序,不是最新版程序,仅供学习参考。FreeHost10...

Retect 1G/15G流量可绑米cPanel面板免费PHP空间

Retect 1G/15G流量可绑米cPanel面板免费PHP空间  Retect 来自国外的免费空间.一G的容量.还是很大的.每月15G流量也还可以.对一般的博客来说还是够用了.用的是的知名CP控制面板.相当不错.可以绑米.有mysql.支持php5.retect注册还是比较简单的.注册后不是马上开通.要等几个小时或一天左右.所以请大家不要急.此空间注册地址:http://www.re...

最有效查找H球(h-sphere)方法整理

H球(h-sphere)空间就是国外类似商业空间的(相当于是国内的试用收费空间)免费试用空间,一般都是有独立IP的。国外的商业空间一般都是很稳定的。对于H球(h-sphere)空间而言,只要大家尽可能地控制在一定的知情范围,始终保持一个小圈子的氛围,绝不泄露出去,再加上一点运气的话,找到能用上一年两年的H球(h-sphere)空间并非是件难事。H球(h-sphere)空间不等同于其它普通空间,是绝...

恋吧吐血推荐美国3G/不限流量/一键安装100种程序免费空间,现已恢复访问

                   前段时间这个网站时而访问不了!现已恢复访问,又需要的赶紧啊! Free-Web-Host是来自美国的虚拟空间托管服务商,提供高性能的免费空间,个人感觉有点像000webho...

无语,自动安装100种网站程序的免费空间,现已恢复访问!

无语了,一个强大的自动安装100种网站程序的免费空间,现已恢复访问!继站长上篇文章“美国3G大小/不限流量/无限MySQL/高速免费空间,站长吐血推荐/”推出后,站长就认真的尝试了这个超级无敌的免费空间。登陆到后台后,下面是进入进行文件管理的两个随便哪个进入就行,用户名密码最初就是你登陆该网站用户名和密码,我用2082登进去的,如图示:可以通过FTP上传文件不过站长今天要是...

1G/无限流量/支持外链/速度快的免费空间及申请教程

本文来自于免费吧论坛!1G免费空间,无限流量,数据库未知多大,应该也是无限。速度还不错,空间不够可以发EMAIL跟管理员说,可以增加空间!不是国内的!绑米+外链!老规矩,请珍惜资源!在这里谢谢免费吧的猴子提供信息以及会员qzwl 提供的开通教程,申请地址:http://www.twrpowersystem.com/hosting 演示:http://8838.org.ru探针:http://883...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。