我研究过这个话题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
没有效果。
答案1
您可以使自己成为该目录的所有者
sudo chown pi /var/www/html
但你肯定想设置权限
chmod 755 -R /var/www/html
使用 -R(递归)选项将确保您的脚本文件和 .htaccess 文件都设置相同。
每当您添加新脚本时,请确保也以这种方式进行设置。
chmod 755 /var/www/html/cgi-bin/newscript.cgi
请注意,一些 CGI 程序有自己的要求,例如
摘抄:
在文本编辑器中打开 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" -->
答案2
在这种情况下,我将保留目录所有权。要修改该特定目录的权限以便可以写入,请设置读/写权限,命令为sudo chmod 766 -R /var/www/html
。这将递归地7
为所有者分配完全权限,6
为组分配读/写权限,并为所有人6
分配读/写权限。
答案3
您需要将 www 文件夹所有者从“root”设置为“Me”。
从您的终端运行命令:
sudo chown -R your_system_username /var/www
希望它有效!
答案4
在您的情况下,我看到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) 用户 / 所有者可以读取、写入和执行。(G) 组可以读取、写入和执行。(O) 其他可以读取、不能写入但可以执行。如果步骤 3 失败,则
sudo chmod -R 777 /var/www/html/
释放所有用户对该文件夹的读取、写入和执行权限。但我强烈不建议在实时服务器上执行此操作,如果它是本地的或者您没有其他选择,请执行此操作,并且不要忘记将权限更改回更安全的设置,否则如果是在线的,则有被黑客入侵的风险。
我希望这有用