在ubuntu中使用root用户执行bash文件中的文件后权限被拒绝

在ubuntu中使用root用户执行bash文件中的文件后权限被拒绝

在我的服务器中安装硬盘驱动器后,我遇到了大问题,一切都工作正常,但在我测试后,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可能会需要。

我已经完成了您需要执行的一些基本步骤来找到解决方案。您会注意到,这些步骤中的很多信息并不在您的问题中,并且需要这些信息来评估正在发生的情况。

相关内容