shell - 有管道时,sudo如何处理权限

标签 shell permissions pipe

如果命令是带管道的,sudo如何处理权限问题 以下命令

sudo -u liy echo "update moz_cookies set value='f1=40000000&f3=40000&fv=11.2.202' where name='PREF' and host='.youtube.com';"|sqlite3 /user/liy/home/.mozilla/firefox/dd1pkryp.default/cookies.sqlite

导致问题:

cannot open directory /user/liy/home/.mozilla/firefox/: Permission denied

如何处理?谢谢

最佳答案

sudo 放在执行修改的命令上:

echo 'some SQL' | sudo sqlite3 /some/database.db

您甚至可以考虑使用 heredoc:

sudo sqlite3 /some/database.db <<ENDOFSQL
    -- SQL here; you can even use multiple lines!
ENDOFSQL

关于shell - 有管道时,sudo如何处理权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13327677/

相关文章:

c - 关于函数和参数的几个问题

linux - 想要从具有页眉页脚的文件中获取分隔数据,以便进行数据处理以进行性能分析

linux - rsync 正在覆盖只读文件。我该如何防止这种情况?

c - 查看管道的读取端当前是否阻塞

python - 使用通配符从子进程调用 rm 不会删除文件

node.js - `fs.mkdir` 正在创建与指定权限不同的目录

sql - Oracle 更改表权限不足

c - Linux C 使用信号和管道在进程间通信

python - 实时 subprocess.Popen 通过 stdout 和 PIPE

C 拆分 CMD 参数