无法在终端"bash: /etc/odbcinst.ini: Permission denied"中回声



我有一个大型安装程序,当我启动一台新机器时,它可以节省数小时,但是我现在无法让一件事工作。我想填写TD驱动程序所需的配置文件,由于它是一个特殊的受保护文件,所以我遇到了麻烦。我的蟒蛇看起来像:

#configure webapi driver
ODBC_PATH       = os.path.join(HOMEPATH, '/etc/odbcinst.ini')
ODBC_SETTINGS   = """
[FreeTDS]
Description = TD Driver (MSSQL)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1"""
call_sp('sudo echo "{}" > {}'.format(ODBC_SETTINGS, ODBC_PATH))

其中call_sp只是我调用子进程但允许参数的方式,就像 Popen 一样。我毫无头绪,因为它无声地失败了(直到我尝试运行服务器才知道),并且在 shell 中我没有收到提示输入我的 pw:

cchilders:~/scripts/setup_scripts/dimensional [master]$ sudo echo "[FreeTDS]
Description = TD Driver (MSSQL)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1" > /etc/odbcinst.ini 
bash: /etc/odbcinst.ini: Permission denied

cchilders:~/scripts/setup_scripts [master]$ sudo echo "somethin" > /etc/odbcinst.ini 
bash: /etc/odbcinst.ini: Permission denied

但是进入纳米作品,我可以手动完成:

cchilders:~/scripts/setup_scripts [master]$ sudo nano /etc/odbcinst.ini 
[sudo] password for cchilders: 

为什么我不能用终端中的文本填充这个 ini 文件,如果不可能,我如何自动填写 python 脚本?泰

我相信

这本质上是这个线程的副本。

您是否尝试过使用 T 恤?

$ echo '{}' | sudo tee --append //etc/odbcinst.ini 

相关内容

最新更新