即使以 root 身份也无法执行 bash 脚本?

     2023-02-19     256

关键词:

【中文标题】即使以 root 身份也无法执行 bash 脚本?【英文标题】:Unable to execute bash scripts even as root? 【发布时间】:2011-12-27 01:42:22 【问题描述】:

我有一个奇怪的问题,我无法执行 bash 脚本,即使是这样的基本脚本:

#!/bin/bash
echo "me"

我将它保存为 test.sh 然后执行 chmod 755 test.sh 并运行 ./test.sh 得到:

bash: ./test.sh: Permission denied

有什么可能导致这种情况的想法吗?

【问题讨论】:

你是在一个挂载noexec的文件系统中写的吗? 【参考方案1】:

如果您使用“noexec”选项挂载文件系统,就会发生这种情况。你应该删除它。

【讨论】:

另外,要快速了解您的文件系统是否已使用 'noexec' 选项挂载,请使用:mount 要删除 'noexec' 选项,只需将其从选项列表中删除以下文件中的文件系统:/etc/fstab。或者add 'exec' 选项到选项的末尾。 user 选项也可能导致此问题。删除它允许我执行有问题的二进制文件。 Ubuntu 中的另一个可能原因可能是默认的文件管理器行为。转到filemanager->edit->prefferences->behavior 并检查execute on double click【参考方案2】:

脚本需要是可执行的。使用这个:

chmod +x <script-name>

【讨论】:

这是为我做的+1 这重复了几年前的另一个答案。这可能是一个常见的初学者问题,但这个答案的这个特定实例不应该比原来的得到更多的支持,特别是因为问题已经提到原来的 OP 已经确保权限是正确的。【参考方案3】:

试试

ls -la

查看文件的实际权利和所有权。看看 chmod 命令是否真的有效。您可能希望更改所有权以及文件检查的模式:http://www.tuxfiles.org/linuxhelp/fileowner.html

【讨论】:

【参考方案4】:

虽然与这个特定线程没有直接关系;如果文件来自 Windows 系统,则行尾可能有 CR/LF。这会影响文件中的所有行,包括初始执行行,并且在您查看文件时将不可见。

$ ./test.sh 
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

要看到这个,你可以 cat -A 文件: $ cat -A ./test.sh #!/bin/bash^M$ 回声“我”^M$

要删除,请使用 dos2unix。

【讨论】:

【参考方案5】:

使用chmod +x ./test.sh 这应该允许您运行它。

【讨论】:

不错的主意,但 OP 已经注意到 chmod 755 不起作用。【参考方案6】:

另外,检查包含脚本的目录/文件系统是否已安装在 nfs 上。 root 不会从安装了 nfs 的位置运行脚本。

【讨论】:

你能解释一下吗??【参考方案7】:

在 macOS 中,如果存在 com.apple.quarantine 标志,则可能会发生这种情况。如果在脚本路径上运行ls -l后看到权限上有@后缀,执行ls -l@ *script_path*确认。然后运行xattred -d com.apple.quarantine *script_path* 删除隔离标志。

【讨论】:

【参考方案8】:

当你在该文件的目录中时,你需要使用./test.sh,如果你没有,试试PATH TO THE SCRIPT。或者你可以将它复制到/data的某个目录并chmod它为shell,然后做上面陡峭。如果你仍然失败,没关系,因为我有同样的问题,我只是成功了一次。

【讨论】:

Op 得到了“权限被拒绝”,而不是路径访问问题 如果你是 root 用户并且仍然有这个问题,所以你的 shell 坏了。我知道因为我无法执行 sh shell 的许多命令(类似于 bash),即使我以 root 身份尝试它说权限被拒绝,我无法更改权限。然后我尝试将它们复制到/data 中的目录,更改权限,我可以再次使用命令。但是当我尝试执行脚本时,它不是这样的文件或目录。 那么您可能遇到了noexec 问题,这里的其他几个答案中对此进行了解释。【参考方案9】:

对于默认使用noexec 挂载的文件系统,例如NFS,显式添加exec 在末尾​​strong> 会有所帮助,即使列表中前面提供的选项默认暗示noexec以及,例如user 选项。

因此,如果您有以下选项之一:

noexec user

将它们更改为:

execuser,exec

exec 放在最后很重要。在某些情况下,仅删除 noexec 可能会有所帮助,但如果您之前使用过 user 等其他选项,则并非完全如此。

【讨论】:

以root身份在脚本中间运行命令[重复]

】以root身份在脚本中间运行命令[重复]【英文标题】:Runacommandinthemiddleofascriptasroot[duplicate]【发布时间】:2019-04-0209:55:47【问题描述】:我需要在bash的脚本中间以root身份执行一行,我有以下代码:#!/bin/bash...EOFif[[$x=true]]||[[$y="On... 查看详情

MariaDB - 无法以 root 身份登录

...iaDB(10.0.29)。在我安装它并启动进程(sudoservicemysqlstart)后,即使我最初将密码设置为空白,我也无法以root登录。即mysql-uroot将拒绝我访问。我通过sudomysql登录 查看详情

sh确保以root身份执行脚本(代码片段)

查看详情

以 root 身份运行结构脚本

】以root身份运行结构脚本【英文标题】:Runningfabricscriptsasroot【发布时间】:2013-02-1308:31:48【问题描述】:我正在尝试使用结构来自动化我在几台服务器上执行的一些管理工作。一般流程如下:SSH与本地用户运行:sudosu-成为root... 查看详情

通过 ADB 以 root 身份启动脚本

】通过ADB以root身份启动脚本【英文标题】:LaunchascriptasrootthroughADB【发布时间】:2012-02-0410:16:07【问题描述】:我创建了一个脚本来挂载分区并在我的Android系统中执行一些操作。我将脚本作为install.sh保存在Android的/bin文件夹中... 查看详情

如何以用户而不是 root 用户身份运行 cron 作业 [关闭]

】如何以用户而不是root用户身份运行cron作业[关闭]【英文标题】:Howtorunthecronjobasauserinsteadofrootuser[closed]【发布时间】:2011-12-3123:43:07【问题描述】:我有几个bash脚本可以添加到指定时间的cron作业中,但它需要以root用户身份执... 查看详情

如何检查是不是在 bash 脚本中以 root 身份运行

】如何检查是不是在bash脚本中以root身份运行【英文标题】:Howtocheckifrunningasrootinabashscript如何检查是否在bash脚本中以root身份运行【发布时间】:2013-08-1511:24:30【问题描述】:我正在编写一个需要root级别权限的脚本,我想让它... 查看详情

Iexpress.exe 即使以管理员身份运行也无法打开报告文件

】Iexpress.exe即使以管理员身份运行也无法打开报告文件【英文标题】:Iexpress.exeUnabletoopenreportfileevenwhenranasadministrator【发布时间】:2017-12-1017:24:28【问题描述】:我正在创建一个Iexpress包,无论最后一步如何,它都会弹出消息“... 查看详情

即使具有管理员权限,批处理脚本访问也被拒绝

】即使具有管理员权限,批处理脚本访问也被拒绝【英文标题】:Batchscriptaccessdeniedevenwithadminprivileges【发布时间】:2017-12-0115:10:52【问题描述】:我在Windows7中有一个批处理脚本来更新失败的hosts文件。我以具有管理权限的用户... 查看详情

如何让shell脚本变成可执行文件

...术A在本教程中介绍创建bash脚本并使用chmod命令使脚本可执行,无需脚本前面加上sh或bash命令就可以运行它。创建脚本文件第一步是使用以下命令创建一个扩展名为.sh的新文件:[root@localhost~]#touchhello_script.sh写一个简单的脚本使用... 查看详情

用户身份切换及提权(代码片段)

用户身份切换如何在普通用户的情况下,完成日常工作?1)su切换用户,使用普通用户登录,然后使用su命令切换到root。优点:简单,方便缺点:需要知道root密码,不安全,切换到root没有日志审计功能2)sudo提权,当需要使用root... 查看详情

用户身份切换及提权(代码片段)

用户身份切换如何在普通用户的情况下,完成日常工作?1)su切换用户,使用普通用户登录,然后使用su命令切换到root。优点:简单,方便缺点:需要知道root密码,不安全,切换到root没有日志审计功能2)sudo提权,当需要使用root... 查看详情

centos使用root登陆却无法修改文件属性

...rmitted”问题在于./vmware-install.pl文件本身是否有执行权限.即使是root用户也不能执行没有执行权限的文件.追问不要在别的地方复制答案好吗?你的回答很明显是其他问题的答案参考技术A先用lsattr命令看一下要删除的文件,如果其... 查看详情

在pycharm中以管理员身份运行/调试脚本(howtorun/debugprogramsasrootinpycharm)(代码片段)

如果想要在pycharm中以root的身份运行python脚本,因为pycharm本身好像没有这个特性,目前只能通过一些额外的手段来实现。思路就是让pycharm以root身份执行python编译器。这篇文章主要面向linux环境。具体可以这样做:1.建立一个可以... 查看详情

执行 sudo 和 chmod 命令的 bash 脚本无法正常工作

】执行sudo和chmod命令的bash脚本无法正常工作【英文标题】:bashscriptexecutingsudoandchmodcommandnotworkingproperly【发布时间】:2014-02-0806:25:17【问题描述】:我正在尝试创建一个以用户执行sudo-s命令开始的bash脚本。这是我的脚本:#!/bin/b... 查看详情

使用更多用户执行脚本

...一个调用许多其他脚本的bash脚本。几个脚本必须以user_1身份执行,但有几个脚本必须以user_2身份执行。脚本应按严格的顺序调用。我以user_1身份启动我的脚本,并多次使用su成为user_2。这些时候su需要密码,所以我必须重新输入... 查看详情

MySQL:升级到 5.5 后我无法以 root 身份登录

】MySQL:升级到5.5后我无法以root身份登录【英文标题】:MySQL:Icannotloginasrootafterupgradingto5.5【发布时间】:2011-12-1705:44:10【问题描述】:我已经按照tutorial升级到mysql5.5。完成所有步骤后,我执行$mysql-uroot-pXXXX并显示:Error1045(28000)... 查看详情

嵌入式linux如何以root身份自动登录如何开机自动执行脚本文件

...文件下操作,那我应该如是实现呢?嵌入式Linux如何以root身份自动登录并开机自动执行脚本文件下面操作步骤记录如下:要设置自启动程序需要解决两个问题:1、 查看详情