chmod:更改“my_script.sh”的权限时出现“操作不允许”的错误。

22

当我尝试编写Shell脚本时出现了错误,应该怎么办?

 [rehamadel@localhost bin]$ sudo vi my_script.sh
[sudo] password for rehamadel: [rehamadel@localhost bin]$ ls -l my_script.sh 请输密码: 列出my_script.sh的详细信息:
-rw-r--r--. 1 root root 52 Jul 30 19:25 my_script.sh
[rehamadel@localhost bin]$ chmod u+x my_script.sh
chmod: changing permissions of ‘my_script.sh’: Operation not permitted

1
除非您需要将脚本作为“root”运行,否则请更改所有者为您的所有者和组,例如sudo chown youruser:yourgoup my_script.sh,然后确保它是可执行的,例如chmod 0754 my_script.sh。然后您就可以执行您的脚本了。(或者最开始使用bash调用它,例如bash my_script.sh(如果由“root”拥有,则使用su -c“bash my_script.sh” - David C. Rankin
3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
24

解决"operation not permitted"错误:

sudo chmod u+x my_script.sh

您通过以下方式创建了该文件:

sudo vi my_script.sh
# editing

这意味着,该文件的所有者和组都是root。默认情况下,您不被允许更改其文件。您需要更改权限(可以使用chmod命令)或更改所有者:

sudo chown you:yourgroup my_script.sh

这样应该可以了。不需要通过sudo创建文件,免去麻烦。


9
你已经使用sudo命令创建了文件my_script.sh,使其所有者为root用户,因此你无法以自己的身份更改权限。

因此,请使用sudo chmod u+x my_script.sh命令,但请注意,这将使该文件仅对root用户可执行。

如果要使该文件对所有人都可执行,请使用sudo chmod a+x my_script.sh命令。


1

我遇到了这个错误,因为我通过winscp上传文件,并尝试在Linux窗口更改权限。 我能够通过winscp更改权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,