如果我尝试
pkexec echo -e '\nwl2k something\n' >> /etc/ax25/axports
在终端中让用户向文件添加一行,我得到一个
bash: /etc/ax25/axports: 权限被拒绝
我该如何使整个命令转到 pkexec - 也就是说,要求用户 sudo 进行更改?
答案1
pkexec echo -e '\nwl2k something\n' >> /etc/ax25/axports bash: /etc/ax25/axports: Permission denied
输出重定向具有调用 shell 的用户的权限,而不是生成输出的命令的权限。看https://unix.stackexchange.com/a/6714/411962。
相反,通过管道echo
将输出pkexec tee -a file
附加到需要提升权限的文件中:echo -e '\nwl2k something\n' | pkexec tee -a /etc/ax25/axports