更改/ var / www / html的权限


12

我已经研究了这个主题https://help.ubuntu.com/community/FilePermissions一段时间,由于某种原因而无法使其正常工作。

特别是,这些行最让我感兴趣:

要一次更改指定目录下每个文件和文件夹的所有权限,请使用带有-R的sudo chmod

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

这是我输入的内容:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

然后我检查了sftp中的任何更改:

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

从输出中很明显,html目录仍然只能由root修改。

如何更改我(非root用户)可以将文件上传到html目录的方式?

我还测试了:

可以使用chown命令更改文件的所有者。例如,要将foobar文件的所有者更改为tux:

$ sudo chown tux foobar

我从服务器输入:

sudo chown mark owner

没有效果。


您缺少用于递归的-r选项。而777永远是正确的更改(除非您还设置了t选项(粘性位)。问题:为什么在第二个命令中该目录为空,而在第三个命令中填充为index.html?这些命令不是在相同情况下发出的通知,该sudo chown mark owner怎么办?您怎么在那引入一个名为“所有者”的文件或目录?
Rinzwind

要获得文件或目录的所有权,必须指定新所有者是谁,组(可选)和文件或目录。例如sudo chown user:user mydocs,新所有者和组在哪里,而user您要拥有的目录是mydocs
Gansheim '17

1
在这种情况下,我将独自保留目录所有权,以修改该特定目录的权限,以便您可以对其进行写入,设置读/写权限,该命令是sudo chmod 766 -r /var/www/html
Gansheim

@Rinzwind看起来他是ls -l从其主目录发出命令的。@Mark除非您在尝试查看/操作的目录中,否则需要指定路径,在这种情况下,您应该已将命令发布为ls -l /var/www/html
Gansheim,

1
就像伙计们指出的那样,chmod更改权限,chown更改所有者。755第一个数字(7)表示“所有者”具有所有权限,而第二个和最后一个数字(5)表示“组”和“其他”均具有读取和执行权限。您可以将用户添加到组中,也可以授予组的完全权限,这样就不必进行太多更改。
塞缪尔

Answers:


11

在这种情况下,我将不理会目录所有权。要修改该特定目录的权限,以便您可以对其进行写入,请设置读取/写入权限,命令为sudo chmod 766 -R /var/www/html。这将为7所有者分配完全权限,6为组分配读/写权限,并为每个人6递归分配读/写权限。


9

您可以将自己设为该目录的所有者

sudo chown pi /var/www/html

但是您肯定要设置权限

chmod 755 -R /var/www/html

使用-R(递归)选项将确保脚本文件和.htaccess文件都设置为相同。


每当您添加新脚本时,请确保也以这种方式进行设置。

chmod 755 /var/www/html/cgi-bin/newscript.cgi

请注意,某些CGI程序有其自己的要求,例如

Bestdam网站访客记录仪+点击计数器

摘抄:

在文本编辑器中打开bdlogger.pl文件,并在必要时修改shebang行。

在服务器上,在cgi-bin目录下创建一个bdlogger子目录,然后使用ASCII模式将脚本和数据文件通过FTP传输到该目录中。

如果使用的是UNIX / Linux服务器,请chmod文件:

bdlogger.pl to 755
all other files to 666

将以下SSI指令标记添加到您的网页:

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->

5

您需要将www文件夹所有者从“ root”设置为“ Me”。

在终端上,运行命令:

sudo chown -R your_system_username /var/www

希望它有效!


2

尽管以上答案几乎可以解决问题,但这是一种更有益于健康的方法。您可能想修改/ var / www / html中的文件,因为您想添加要在其中投放的网络应用Apache2。为此,您需要执行以下步骤

  1. 将用户添加到www-data具有该文件夹的默认所有权的用户组。为什么?如果您打算动态地对Web应用程序进行任何更改,即使它在中wordpress,也会导致该组中的用户具有写权限。为此,只需编写:sudo adduser username grouptoadd在我们的例子中将是sudo adduser username www-data
  2. 接下来,您需要read/write permissions使用chmod命令更改。请记住,您现在是用户组的一部分,不需要使用来更改所有权chown。为此,只需运行:sudo chmod -R 766 directory,在这种情况下将为sudo chmod -R 766 html。如果您喜欢运动,则可以(777)根据应用程序的安全程度获得完全的写权限。

-R意思是一个递归函数,允许该命令应用于所有子目录。我希望这可以帮助需要帮助的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.