即使以具有适当权限的用户身份登录,echo ‘{file}’ > path/file.dat 的权限也被拒绝

问题描述 投票:0回答:1

我正在编写一个 Python 脚本以管理员用户身份登录远程 Linux 服务器(dev),然后:

  1. 在名为 Archive

    的目录中创建文件备份
    dev.sudo(“bash -c ‘cd /path/; cp file.dat Archive/file.dat)
    
  2. 读取文件并保存为变量

    read_file = dev.sudo(“bash -c ‘cd /path/; cat file.dat)
    
  3. 然后我将一个新值插入到文件中,并希望覆盖服务器上的现有文件

    dev.sudo(f”echo ‘{new_file}’ > /path/file.dat)
    

    然而,最后一步将返回“权限被拒绝”错误。我登录的用户具有适当的权限,如果我要在服务器的命令行上手动执行此步骤,则此步骤有效。

我不确定是什么原因导致此权限错误。

我正在使用面料库,以获取更多信息。

我尝试在 bash -c 中运行命令,但没有进一步的运气。

我已确认备份已成功完成,并添加了打印(new_file)以确保将正确的内容输入到服务器中。

python linux bash fabric
1个回答
0
投票

请检查您的文件权限。之后您会收到类似的错误

touch /tmp/acz
chmod 444 /tmp/acz
echo "Something" > /tmp/acz
# Returns
-bash: /tmp/acz: Permission denied

请尝试

echo '{new_file}' > /path/file.dat

© www.soinside.com 2019 - 2024. All rights reserved.