使用 tee 后,我失去了 sudo 权限

使用 tee 后,我失去了 sudo 权限

我正在编写一个安装程序脚本,需要sudo在 AWS RedHat 实例上测试它时运行它,因此不能直接运行root。我想将日志写入文件以及屏幕上。没有什么比这更容易了,

我可以采用老式的>> /tmp/Solr_Install.log 2>&1方法,在后台启动尾部进程:tail -f installer.log &这种解决方案往往会使屏幕上的输出重复或增加三倍,所以我选择了一种更彻底的解决方案。

只需使用武力即可,2>&1 | tee -a /tmp/Solr_Install.log使用此解决方案,我失去了 sudo 权限,并且脚本失败。

tail -f疑问:为什么尾部会显示2-3次相同的行?(这与显示最后10行有关系吗?)

  • 可以以某种方式修复此问题吗?

  • 为什么我在 tee 时会丢失 sudo?

  • 可以避免这种情况吗?

  • 还有其他方法可以同时将日志材料放入文件并显示在屏幕上吗?

答案1

sudo不是会话特有的权限。 sudo是一个以提升的权限运行其他命令的命令。因此,只需tee使用以下命令运行sudo

2>&1 | sudo tee -a /tmp/Solr_Install.log W

相关内容