Mar*_*exa 15 server permissions directory sftp ownership
我已经研究了这个主题https://help.ubuntu.com/community/FilePermissions一段时间,但由于某种原因无法让它工作。
特别是,这些行最让我感兴趣:
要一次更改指定目录下每个文件和文件夹的所有权限,请使用 sudo chmod 和 -R
Run Code Online (Sandbox Code Playgroud)$ 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
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:
Run Code Online (Sandbox Code Playgroud)$ sudo chown tux foobar
我从服务器输入:
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 程序有自己的要求,例如
摘抄:
在文本编辑器中打开 bdlogger.pl 文件,如有必要,修改 shebang 行。
在服务器上,在您的 cgi-bin 目录下创建一个 bdlogger 子目录,并使用 ASCII 模式将脚本和数据文件通过 FTP 传输到其中
如果您使用 UNIX/Linux 服务器,请 chmod 文件:
Run Code Online (Sandbox Code Playgroud)bdlogger.pl to 755 all other files to 666将以下 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。
您需要将 www 文件夹所有者从“root”设置为“Me”。
从您的终端,运行命令:
sudo chown -R your_system_username /var/www
Run Code Online (Sandbox Code Playgroud)
希望它有效!!
小智 5
虽然上面的答案几乎可以解决问题,但这是一种更健康的方法。您可能想要修改 /var/www/html 中的文件,因为您想要添加一个 Web 应用程序以在Apache2. 要实现此目标,您需要执行以下步骤
www-data具有文件夹默认所有权的用户组。为什么?因为如果您打算动态对 Web 应用程序进行任何更改,即使它位于 中wordpress,您也需要该组中的用户具有写入权限。为此,只需编写:sudo adduser username grouptoadd在我们的例子中,它将是sudo adduser username www-data。read/write permissions使用chmod命令。请记住,现在您是用户组的一部分,不需要使用 更改所有权chown。为此,只需运行:sudo chmod -R 766 directory,在本例中它将是sudo chmod -R 766 html。如果您喜欢运动,您可以获得完整的写入权限(777),具体取决于您的应用程序的安全性。这-R意味着是一个递归函数,允许命令应用于所有子目录。我希望这可以帮助有需要的人。
在你的情况下,我看到 root 拥有该文件,所以首先我们;
sudo chown -R www-data:www-data /var/www/html允许 www-data 组获得文件夹的所有权。2.然后sudo adduser username www-data
将您的用户添加到组 www-data 中,该组现在拥有文件夹 /var/www/hmtl/ 的所有权(注意:如果您不知道您的计算机用户名,请将用户名替换为您的计算机用户名whoami)您的终端将获取当前登录用户的用户名)
sudo chmod -R 775 /var/www/html/
现在将文件权限更改为 775,以便 (U)ser/所有者可以读取、写入和执行。(G)组可以读、可以写、可以执行。(O)其他人可以读,不能写,但可以执行。
如果步骤 3 失败,则sudo chmod -R 777 /var/www/html/释放所有用户来读取、写入和执行该文件夹。但我强烈建议不要在实时服务器上这样做,如果它是本地服务器或者您没有其他选择,请不要忘记将权限更改回更安全的设置,否则如果是在线服务器,则有被黑客攻击的风险。
我希望这有用
| 归档时间: |
|
| 查看次数: |
124690 次 |
| 最近记录: |