从脚本而不是从Shell执行命令时,根获得权限被拒绝

SSS

我有一个简单的脚本,用于为几个开发人员同步测试环境。它不仅需要进行mysql转储,通过SSH检查哈希,然后进行更改(将转储移至新环境并将其转储),不需要任何复杂的操作。

我重写了它,以掩盖敏感信息,但这是我编写此脚本的要旨,直到遇到问题为止:

#!/bin/bash

mysqldump -h localhost testDB > dbPath/testdb.sql

hash1=$(md5sum dbPath/testdb.sql) | awk '{print $1}'

echo $hash1

执行脚本时:

sudo ./testScript.sh

我看到使用权限-rw-r--r--创建的mysqldump 1根根对我来说是正确的,但是,由于脚本继续执行md5哈希,我得到了:

./testScript.sh: line 5: dbPath/testdb.sql: Permission denied

当我从外壳程序(不在脚本中)执行md5sum命令时,即使没有使用sudo的普通用户也可以正常运行。当我更改为root并从shell执行命令时,它可以正常工作。当我以任何身份(从我的用户帐户,从我的用户帐户通过sudo或直接从root用户)运行脚本时,在md5sum行上出现权限被拒绝的错误。

我认为我的用户帐户的权限正在流失,而不是使用root的权限,除了以下事实:脚本无法在没有得到权限拒绝错误的情况下从root用户的shell中以root身份执行,据我所知, root不应拒绝任何权限。作为测试,我在md5sum命令之前和之后抛出了一个whoami,当使用sudo或root执行时,两个命令都以root用户身份输出。

根目录和我的用户帐户显然都具有在文件上执行md5sum的权限;从脚本运行的事实如何改变了我或root的执行命令或操纵文件的能力?

环境是RHEL 6。

罗伊马

根本的问题是这一行的解析错误:

hash1=$(md5sum dbPath/testdb.sql) | awk '{print $1}'

几乎可以肯定的是

hash1=$(md5sum dbPath/testdb.sql | awk '{print $1}')

您可以在https://shellcheck.net上检查类似的错误

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

执行shell脚本时权限被拒绝

来自分类Dev

Shell脚本:在“屏幕”中执行命令

来自分类Dev

在脚本中执行命令时出错

来自分类Dev

PHP执行shell命令权限被拒绝

来自分类Dev

PHP执行shell命令权限被拒绝

来自分类Dev

尽管在命令前使用了umask 000,Shell脚本仍获得“权限被拒绝”

来自分类Dev

在shell脚本中,仅当源比目标新时才执行命令

来自分类Dev

在不指定 shell 的情况下执行 bash 脚本时权限被拒绝

来自分类Dev

ssh:在远程主机而不是登录shell上执行命令

来自分类Dev

如果文件包含IP地址,则执行命令的Shell脚本

来自分类Dev

通过Shell脚本在动态目录中执行命令

来自分类Dev

如何使用Shell脚本在gnuplot中执行命令?

来自分类Dev

在bash shell脚本中使用反引号执行命令

来自分类Dev

如何制作连接到VM并执行命令的shell脚本?

来自分类Dev

如果文件包含 IP 地址,则执行命令的 Shell 脚本

来自分类Dev

创建Shell脚本时执行权限

来自分类Dev

在登录时执行命令/运行脚本的可靠方法?

来自分类Dev

无法从python子进程执行shell脚本:权限被拒绝

来自分类Dev

将SIGINT或SIGTERM发送给父脚本本身而不是子进程时执行命令或函数

来自分类Dev

使用NET View命令时拒绝获得访问权限

来自分类Dev

以sudo为根执行命令

来自分类Dev

当我尝试从bash执行python脚本时,权限被拒绝?

来自分类Dev

关于ansible,尝试执行脚本时权限被拒绝

来自分类Dev

从Java程序运行Shell脚本时权限被拒绝

来自分类Dev

授予cron执行命令的权限

来自分类Dev

在shell命令输出上执行命令

来自分类Dev

远程运行存储过程时,MySQL抛出“拒绝用户执行命令”

来自分类Dev

在shell命令(不是脚本)中获得“确保” /“最终”功能?

来自分类Dev

从脚本在子外壳中执行命令

Related 相关文章

  1. 1

    执行shell脚本时权限被拒绝

  2. 2

    Shell脚本:在“屏幕”中执行命令

  3. 3

    在脚本中执行命令时出错

  4. 4

    PHP执行shell命令权限被拒绝

  5. 5

    PHP执行shell命令权限被拒绝

  6. 6

    尽管在命令前使用了umask 000,Shell脚本仍获得“权限被拒绝”

  7. 7

    在shell脚本中,仅当源比目标新时才执行命令

  8. 8

    在不指定 shell 的情况下执行 bash 脚本时权限被拒绝

  9. 9

    ssh:在远程主机而不是登录shell上执行命令

  10. 10

    如果文件包含IP地址,则执行命令的Shell脚本

  11. 11

    通过Shell脚本在动态目录中执行命令

  12. 12

    如何使用Shell脚本在gnuplot中执行命令?

  13. 13

    在bash shell脚本中使用反引号执行命令

  14. 14

    如何制作连接到VM并执行命令的shell脚本?

  15. 15

    如果文件包含 IP 地址,则执行命令的 Shell 脚本

  16. 16

    创建Shell脚本时执行权限

  17. 17

    在登录时执行命令/运行脚本的可靠方法?

  18. 18

    无法从python子进程执行shell脚本:权限被拒绝

  19. 19

    将SIGINT或SIGTERM发送给父脚本本身而不是子进程时执行命令或函数

  20. 20

    使用NET View命令时拒绝获得访问权限

  21. 21

    以sudo为根执行命令

  22. 22

    当我尝试从bash执行python脚本时,权限被拒绝?

  23. 23

    关于ansible,尝试执行脚本时权限被拒绝

  24. 24

    从Java程序运行Shell脚本时权限被拒绝

  25. 25

    授予cron执行命令的权限

  26. 26

    在shell命令输出上执行命令

  27. 27

    远程运行存储过程时,MySQL抛出“拒绝用户执行命令”

  28. 28

    在shell命令(不是脚本)中获得“确保” /“最终”功能?

  29. 29

    从脚本在子外壳中执行命令

热门标签

归档