我没有太多使用过服务器的经验,但我已经尝试过做某事;) 我在亚马逊EC2和我的WP网页上 我想通过filezilla(sftp)编辑php.ini中的一些设置但是我必须为我的用户设置权限:
sudo chown -R ec2-user:ec2-user /etc
但现在我甚至无法重启apache或将权限设置为root 如果我尝试做这样的事情:
sudo chown -R root:root /etc
或
sudo systemctl restart apache2.service
我看到这个信息: " sudo:/etc/sudo.conf由uid 500拥有,应该是0 sudo:/ etc / sudoers归uid 500所有,应该是0 sudo:找不到有效的sudoers来源,退出sudo:无法初始化政策插件"
我该怎么办?
答案 0 :(得分:2)
你永远不应该sudo chown -R ec2-user:ec2-user /etc
。您已修改整个/etc
目录的权限设置。
/etc
是您操作系统的一个非常重要的文件夹,这就是您收到错误的原因。
启动新实例并从之前的实例备份源代码并重新上传代码。如果您有任何问题,请告诉我。
我不明白为什么您无法修改php.ini
文件?您需要ssh到服务器并编辑文件。如果您不能这样做,则需要将文件移动到允许的ftp文件夹中,修改文件并将文件放回原来的位置并重新启动{{1} }。
此外,我建议您使用apache
作为Wordpress服务器,而不是使用Ubuntu
或Centos
Flavor of Linux。
答案 1 :(得分:1)
以ec2-user
登录puttysudo su
[root @ ip-yoursite- home]
现在用于php 5.0 sudo vim /etc/php.ini
for php 7.0使用sudo vim /etc/php-7.0.ini
按i,然后搜索 upload_max_filesize = 100M, post_max_size = 100M (根据您的要求改变)
按esc,现在保存并退出使用此命令:wq
重启你的apache服务器
sudo service httpd restart
答案 2 :(得分:0)
您可以选择两个选项。
在亚马逊上创建新实例。检查新计算机上的文件权限。
cd /etc
ls -lrt
这应该给出这样的结果
-rw-r--r-- 1 root root 2064 Nov 24 2006 netscsid.conf
-rw-r--r-- 1 root root 1343 Jan 10 2007 wodim.conf
-rw-r--r-- 1 root root 624 Aug 8 2007 mtools.conf
-rw-r--r-- 1 root root 2570 Aug 5 2010 locale.alias
-rw-r--r-- 1 root root 356 Jan 2 2012 bindresvport.blacklist
-rw-r--r-- 1 root root 349 Jun 26 2012 zsh_command_not_found
逐个设置旧EC2 实例的相同权限。
示例强>
chown -R root:root netscsid.conf
PS:将来,您可以使用此命令更改php.ini文件,而不是更改所有者或权限。
sudo vim /etc/php5/apache2/php.ini
答案 3 :(得分:0)
简短的回答是chown -R
是递归的,并且各种操作需要大量实用程序和其他文件和程序,包括sudo
和su
。 Root
是uid 0
的特殊用户,该用户具有更高的权限,并且能够执行ec2-user
无法执行的某些操作。这意味着撤消你所做的事情并不简单或直截了当。
这就是为什么到目前为止提供的答案都集中在重新安装操作系统上,这也是我也建议的。它可能更快。
这个答案的另一部分是不要尝试和sftp进入服务器来更改核心文件。它需要在根(或/ etc)目录中具有sftp登录域,这不是常见配置。
相反,使用sftp或scp将更改的文件复制到用户目录,然后从命令提示符(ssh / bash shell)移动它们。对于简单的文本文件编辑,使用命令行文本编辑器(例如nano
)比使用一些较旧的编辑器更加用户友好,这样更容易。
同样,文件本身也不会更改其权限,而是在登录后使用sudo
或su
来执行操作。例如:
ssh ec2-user@host.domain.tld
sudo su
nano /etc/php.ini
答案 4 :(得分:0)
想象一下,你有一系列的盒子,里面各有两个数字。这些数字大多为0:0,但可以是任何整数,最多为2 ^ 31-2。
数字是独立的,所以0:0和0:42都是可能的。您的 -R 标记会将所有框中的所有这些数字递归更改为相同的对。
这会丢失信息。 (没有备份)在运行命令之前,没有简单的方法可以知道框中的数字是什么。
如果您有匹配的(或非常相似的)服务器,您可以使用rsync恢复大多数权限,或者使用脚本将工作服务器上的每个文件的uid:gid记录到日志文件中然后使用它来更正损坏的服务器上的权限。
ls -n
将显示uid和gid的数值(我的linux服务器上的第3和第4列。)
答案 5 :(得分:-3)
无需更改包含php.ini文件的文件夹的所有权。
目标:授予用户'ec2-user'权限,以便FileZilla可以写入包含php.ini文件的/ etc文件夹。
这样做我们可以重命名原始的php.ini文件并用修改后的副本替换php.ini文件。
<强> 步骤: 强>
导航到包含php.ini文件的文件夹 例如:
cd ../
使用:
ls -l </ p>
列出具有权限的文件和文件夹
查找显示包含php.ini文件的文件夹的行 像这样的somthinng:
drwxr-xr-x 80 root root 4096 Jul 11 08:15等
更改此文件夹的权限:
sudo chmod 777等
(注意:稍后将其更改回原始权限)
使用:
ls -l </ p>
查看更改
重启Apache:
sudo service httpd restart
现在FileZilla将拥有该文件夹的权限, 重命名原始php.ini文件以在将来恢复 用修改后的副本替换php.ini文件
一分钟后检查您的网站(有错误的页面),将显示错误。