chmod引出的问题

薄洪涛6年前Linux1145

上传代码后,尝试访问

出现如下错误

TIM截图20181220160818.png

先尝试对文件修改权限

[root@host wechat.bohongtao.online]# chmod -R 755 ./wechat/
chmod: changing permissions of `./wechat/web/.user.ini': Operation not permitted
[root@host wechat.bohongtao.online]#

然后引出了这个问题,.user.ini是什么鬼,直接rm

[root@host web]# rm .user.ini
rm: remove regular file `.user.ini'? y
rm: cannot remove `.user.ini': Operation not permitted
[root@host web]#

厉害了,删不掉!!!!

然后我尝试打开编辑这个文件,无法保存,自带readonly属性

解决方法:

[root@host web]# lsattr -a
-------------e- ./index.php
-------------e- ./.
-------------e- ./index-test.php
-------------e- ./MP_verify_4k0CUUNDC98LBQU6.txt
----i--------e- ./.user.ini
-------------e- ./yii
-------------e- ./.user.ini~
-------------e- ./static
-------------e- ./uploads
-------------e- ./favicon.ico
-------------e- ./robots.txt
-------------e- ./..
-------------e- ./.gitignore

发现了么,这个文件有个i参数,去掉

[root@host web]# chattr -i .user.ini

打开这个文件,注释里面的内容

#open_basedir=/www/wwwroot/wechat.bohongtao.online/wechat/web/:/tmp/:/proc/

解释一下,open_basedir这个参数是指定一个目录树,当此网站要求访问目录树之外的文件时,会报错

然后返回修改权限,正常

[root@host wechat.bohongtao.online]# chmod -R 755 ./wechat/

接着,既然刚才去掉了i参数,这次要加上

[root@host web]# chattr +i .user.ini
[root@host web]# lsattr -a
-------------e- ./index.php
-------------e- ./.
-------------e- ./index-test.php
-------------e- ./MP_verify_4k0CUUNDC98LBQU6.txt
----i--------e- ./.user.ini
-------------e- ./yii
-------------e- ./.user.ini~
-------------e- ./static
-------------e- ./uploads
-------------e- ./favicon.ico
-------------e- ./robots.txt
-------------e- ./..
-------------e- ./.gitignore

再次解释:lsattr命令是查看文件属性,当带i时,文件不能被修改,删除,写入,改名,设定链接,所以i参数对系统安全作用极大;


标签: linux

相关文章

搭建SSH反向隧道

搭建SSH反向隧道

公司的数据库是通过端口转发来连接的,即需要ssh登录跳板机,然后通过隧道-端口转发,将数据库映射到跳板机(或者电脑本地)的某个端口,程序连接本地的端口就可以实现连接远程对的数据库;这种连接方式相比VP...

linux免密登陆

linux免密登陆

最近有些累,所以今天的教程就水一篇;所谓免密登陆,就是说我有一台服务器,不想让人家知道具体的ip或者用户名密码,只让使用者从跳板机登陆,通过ssh xxx@ip  这种来登陆;1、 首先跳板...

centos8 新增服务

我在centos8上部署了一个java服务,使用java -jar xx.jar来启动服务,但是对于停掉服务,就得使用kill命令,所以想着把它做成个服务原始命令如下:/www/server/java...

记录一次从日志中恢复mysql数据库数据

记录一次从日志中恢复mysql数据库数据

前因:有个大佬在update的时候,忘记加where条件,造成线上数据库中的某个状态值全部被修改,需要马上处理首先面对这种情况,我马上想到的就是从二进制日志文件中恢复,马上查看是否开启了日志,确定开启...

PHP调用不起来Python脚本

前几天做了个自动处理文件的python脚本,目前python脚本需要手动把文件放到特定文件夹下,自动去读取处理;但是老大觉得不方便,让我写了个文件上传页面,然后调用python的脚本,导出处理后的文件...

haproxy如何开启日志

默认haproxy是不记录日志的,但是调试的时候需要我们去记录日志,所以说一下日志的记录方法1.编辑 /etc/rsyslog.conf,放开如下代码,记住是udp# Provides&nb...

发表评论    

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