为什么在这种情况下 chmod 不起作用?

为什么在这种情况下 chmod 不起作用?

我正在尝试设置一个小型网络服务器供个人使用。我有一个文件/srv/http/cgi-bin/,我想以普通用户而非超级用户的身份编辑它。我尝试按照上述方法对其进行 chmod这里。结果如下:

sudo chmod 755 /srv/http/cgi-bin/ -R
[yotam@myhost ~]$ echo "h" >> /srv/http/cgi-bin/h.py
bash: /srv/http/cgi-bin/h.py: Permission denied

编辑:
以下是根据评论和答案得出的一些数据:

[yotam@myhost ~]$ sudo chmod 760 -R /srv/http/cgi-bin 
Password: 
[yotam@myhost ~]$ echo "hh" >> /srv/http/cgi-bin/h.py
bash: /srv/http/cgi-bin/h.py: Permission denied
[yotam@myhost ~]$ ls -ld /srv/http/cgi-bin
drwxrw---- 2 root root 4096 May 20 15:54 /srv/http/cgi-bin

此外,服务器是运行 apache2 的 Ubuntu 桌面。据我所知,我没有修改任何用户设置,所以所有参数都应该是默认参数

答案1

模式字符串似乎错误。模式字符串 755 表示

  • 该文件的所有者可以读取(4)、写入(2)和执行(1)-4+2+1 = 7
  • 文件组中的任何成员都可以读取(4)并执行(1)- 4 + 1 = 5
  • 其他任何人都可以读取(4)并执行(1)-4 + 1 = 5

看起来你想要chmod -R 766 /src/http/cgi-bin,但这看起来像一个非常不安全的权限设置...

答案2

您可以暂时将所有权更改为您自己,然后编辑文件并将其改回来。

sudo chown -R yotam /srv/http/cgi-bin/ 

编辑文件(以用户身份,而不是您需要的超级用户身份)

sudo chown -R root /srv/http/cgi-bin/

相关内容