在我的服务器中安装硬盘驱动器后,我遇到了大问题,一切都工作正常,但在我测试后,bash 文件中的执行 bash 文件在安装前工作正常,但在安装后,它说 root 模式下权限被拒绝。
ls -alt /var/www/test/bin/change-sys-hostname
-rwxrwx--- 1 www-data www-data
我的代码在example.sh
/var/www/test/bin/change-sys-hostname $servername
结果 :
permission denied
答案1
权限被拒绝意味着您正在尝试不允许的操作。您的问题缺乏一些基本信息,无法确定哪些内容是不允许的。
从头开始:example.sh
.你如何运行这个脚本?作为bash examle.sh
?作为./example.sh
?如果是后者:您的脚本必须可由您执行。您可以执行该脚本吗?使用ls -l
来验证这一点。
作为旁注:您应该以以下行开始脚本
#!/bin/bash
确保使用 bash 来执行它。
第二个旁注:$server
应该设置。它可能是在您的 shell 环境中设置的,但您必须确定。但是:没有设置$server
正确的值可能会给出不同的错误消息。$server
为了确定起见,您可能会回应 的值。
下一篇:你能执行/var/www/test/bin/change-sys-hostname
吗?该脚本可由组执行www-data
。你在那个组里吗?检查id
是否www-data
在您的群组集中。
其次是change-sys-hostname
里面是否有不可以做的事情。 change-sys-hostname
可能还会调用一些其他程序,您应该被允许执行这些程序。特别是:该脚本可能会写入一些只能由 root 写入的文件。所以,sudo
可能会需要。
我已经完成了您需要执行的一些基本步骤来找到解决方案。您会注意到,这些步骤中的很多信息并不在您的问题中,并且需要这些信息来评估正在发生的情况。