更改 /var/www/html 的权限

Mar*_*exa 15 server permissions directory sftp ownership

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

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

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

$ 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
Run Code Online (Sandbox Code Playgroud)

这是我输入的内容:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0
Run Code Online (Sandbox Code Playgroud)

然后我检查了 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
Run Code Online (Sandbox Code Playgroud)

从输出中可以清楚地看出 html 目录仍然只能由 root 修改。

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

我也测试过:

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

$ sudo chown tux foobar
Run Code Online (Sandbox Code Playgroud)

我从服务器输入:

sudo chown mark owner
Run Code Online (Sandbox Code Playgroud)

没有效果。

SDs*_*lar 16

您可以让自己成为该目录的所有者

sudo chown pi /var/www/html
Run Code Online (Sandbox Code Playgroud)

但你肯定想设置权限

chmod 755 -R /var/www/html
Run Code Online (Sandbox Code Playgroud)

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


每当您添加新脚本时,请务必也以这种方式设置它。

chmod 755 /var/www/html/cgi-bin/newscript.cgi
Run Code Online (Sandbox Code Playgroud)

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

Bestdam 网站访问者记录器 + 点击计数器

摘抄:

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

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

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

bdlogger.pl to 755
all other files to 666
Run Code Online (Sandbox Code Playgroud)

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

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->
Run Code Online (Sandbox Code Playgroud)


小智 14

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


Dee*_*pta 6

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

从您的终端,运行命令:

sudo chown -R your_system_username /var/www
Run Code Online (Sandbox Code Playgroud)

希望它有效!!


小智 5

虽然上面的答案几乎可以解决问题,但这是一种更健康的方法。您可能想要修改 /var/www/html 中的文件,因为您想要添加一个 Web 应用程序以在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意味着是一个递归函数,允许命令应用于所有子目录。我希望这可以帮助有需要的人。


Tur*_*tin 5

在你的情况下,我看到 root 拥有该文件,所以首先我们;

  1. sudo chown -R www-data:www-data /var/www/html允许 www-data 组获得文件夹的所有权。

2.然后sudo adduser username www-data 将您的用户添加到组 www-data 中,该组现在拥有文件夹 /var/www/hmtl/ 的所有权(注意:如果您不知道您的计算机用户名,请将用户名替换为您的计算机用户名whoami)您的终端将获取当前登录用户的用户名)

  1. sudo chmod -R 775 /var/www/html/ 现在将文件权限更改为 775,以便 (U)ser/所有者可以读取、写入和执行。(G)组可以读、可以写、可以执行。(O)其他人可以读,不能写,但可以执行。

  2. 如果步骤 3 失败,则sudo chmod -R 777 /var/www/html/释放所有用户来读取、写入和执行该文件夹。但我强烈建议不要在实时服务器上这样做,如果它是本地服务器或者您没有其他选择,请不要忘记将权限更改回更安全的设置,否则如果是在线服务器,则有被黑客攻击的风险。

我希望这有用