无法在终端“bash:/etc/odbcinst.ini:权限被拒绝”中回显[重复]
Posted
技术标签:
【中文标题】无法在终端“bash:/etc/odbcinst.ini:权限被拒绝”中回显[重复]【英文标题】:can't echo in terminal "bash: /etc/odbcinst.ini: Permission denied" [duplicate] 【发布时间】:2016-04-28 06:29:02 【问题描述】:我有一个大型安装程序,当我启动一台新机器时,它可以节省大量时间,但我现在无法让一件事正常工作。我想填写一个 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
只是我调用子进程但允许 args 的方式,就像 Popen 一样。我一无所知,因为它默默地失败了(直到我尝试运行服务器我才知道)并且在 shell 中我没有提示我输入密码:
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
但是 sudo 进入 nano 可以,我可以手动完成:
cchilders:~/scripts/setup_scripts [master]$ sudo nano /etc/odbcinst.ini
[sudo] password for cchilders:
为什么我不能用终端的文本填充这个ini文件,如果不可能,我怎样才能自动填充python脚本?类型
【问题讨论】:
类似于***.com/questions/84882/…。总之,请尝试sudo sh -c "echo 'something' > /etc/odbcinst.ini"
【参考方案1】:
我相信这本质上是 thread 的复制品。
你试过用 tee 代替吗?
$ echo '' | sudo tee --append //etc/odbcinst.ini
【讨论】:
以上是关于无法在终端“bash:/etc/odbcinst.ini:权限被拒绝”中回显[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在ubuntu的终端上我无法输入自己的password 咋办?