使用tee,我失去了我的sudo特权


1

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

我可以去老上学>> /tmp/Solr_Install.log 2>&1并在后台开始尾部处理:tail -f installer.log &这个解决方案往往会在屏幕上复制或增加三倍,所以我选择了一个T恤 - 总计解决方案。

只需使用强大的力量,2>&1 | tee -a /tmp/Solr_Install.log使用此解决方案,我失去了我的sudo权限,脚本失败了。

问题:为什么尾部显示相同的线2-3次?(它与tail -f显示最后10行的事实有关吗?)

  • 这可以以某种方式修复吗?

  • 我开球的时候为什么会失去我的sudo?

  • 这可以避免吗?

  • 有没有其他方法可以同时将日志材料放入文件和屏幕上?


也许这可能是符合您需求的情况unix.stackexchange.com/questions/61931 / ...
Echoes_86

Echoes_86,我需要请求你的原谅。我是双重检查,你的解决方案,技术上,@ BatchyX解决方案的工作原理。我仍然不知道为什么我失去了我的sudo mojo,但是嘿,至少我有一个有效的解决方案。
Lefty G Balogh 2017年

我很高兴你找到了解决方案。对我来说,这种方法(我从你的问题中理解的)exec > >(tee "/tmp/Solr_Install.log") 2>&1对你来说是最好的。
回声_86 2017年

Answers:


1

sudo不是特定于会话的特权。 sudo是一个使用提升的权限运行其他命令的命令。所以,运行你teesudo

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

它不是不起作用的发球台,因为发球台,其余的脚本都失败了。请不要原谅这个答案,不要冒犯,因为这不是一个令人满意的答案。
Lefty G Balogh 2017年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.