关于linux:如何使用sudo将输出重定向到我无权写入的位置?

How do I use sudo to redirect output to a location I don't have permission to write to?我已经在我们的一个开发Redhat Linux设备上获得了sudo访问权,而且我似乎经常需要将输出重定向到我通常没有写访问权的位置。 问题是,这个人为的例子不起作用:
我刚收到回复:
我怎样才能让这个工作? 您的命令不起作用,因为重定向是由您的shell执行的,该shell没有写入 有多种解决方案:
感谢JD、Adam J.Forster和Johnathan提供第二、第三和第四个解决方案。 这里有人刚刚推荐了sudoing tee:
这也可以用于将任何命令重定向到您无权访问的目录。它之所以有效,是因为tee程序实际上是一个"回显到文件"程序,而重定向到/dev/null的目的是停止它输出到屏幕,使其与上面的原始人为示例保持一致。 我自己发现的一个诀窍是
问题是命令在
绕过这一点的通常方法是:
这一主题的另一个变化是:
当然,
他们的优势很小,你不需要记住任何关于 解释一下为什么选择发球 假设您有适当的权限执行创建输出的命令,那么如果您将命令的输出通过管道传输到tee,那么您只需要使用sudo提升tee的特权,并将tee直接写入(或追加)相关文件。 在问题中给出的示例中,这意味着:
对于几个更实际的例子:
在这些示例中,您将获取非特权命令的输出,并将其写入通常只能由根写入的文件,这是您问题的根源。 这样做是一个好主意,因为生成输出的命令不是用提升的特权执行的。这里对于 注意,您可以使用-a选项tee将append(如 让sudo运行一个shell,如下所示:
我处理这个问题的方式是: 如果需要写入/替换文件:
如果需要附加到文件:
写剧本怎么样? 文件名:myscript
然后使用sudo运行脚本:
我会这样做:
不是要打败一匹死马,但是这里有太多的答案使用
请注意,重定向是如何放在引号中的,以便由 每当我要做这样的事情时,我都会变得根深蒂固:
这可能不是最好的方法,但它有效。 这是基于涉及
如代码中的用法所示,您所要做的就是将输出通过管道传输到该脚本,然后使用所需的超级用户可访问的文件名,如果需要,它会自动提示您输入密码(因为它包括
注意,由于这是一个用于
它还具有一些简单的保护措施,防止向 也许你只允许sudo访问一些程序/路径?那就没有办法做你想做的事。(除非你以某种方式破解) 如果不是这样,那么您可以编写bash脚本:
按ctrl+d:
希望能有所帮助。
|
相关内容
电脑内存的插槽在哪|电脑内存的插槽在哪个位置
电脑内存的插槽在哪|电脑内存的插槽在哪个位置,,1. 电脑内存的...
手机qq上传到我的电脑桌面|手机qq上传到我的电
手机qq上传到我的电脑桌面|手机qq上传到我的电脑桌面找不到,,...
华硕电脑图|华硕电脑图标怎么自由位置
华硕电脑图|华硕电脑图标怎么自由位置,,华硕电脑图标怎么自由...
如何设置电脑桌面图标位置|怎么调电脑桌面图标
如何设置电脑桌面图标位置|怎么调电脑桌面图标位置,,1. 怎么调...
垃圾箱设置|垃圾箱设置位置基本原则
垃圾箱设置|垃圾箱设置位置基本原则,,1. 垃圾箱设置位置基本原...
电脑主机独立显卡位置插口|电脑主机独立显卡位
电脑主机独立显卡位置插口|电脑主机独立显卡位置插口在哪,,1. ...
电脑桌面位置|电脑桌面位置调整到别的盘怎么调
电脑桌面位置|电脑桌面位置调整到别的盘怎么调回来,,电脑桌面...
台式电脑的cpu在哪|台式电脑cpu在哪个位置
台式电脑的cpu在哪|台式电脑cpu在哪个位置,,台式电脑cpu在哪个...
我电脑关机能查到我的lp地址吗|电脑主机ip地址
我电脑关机能查到我的lp地址吗|电脑主机ip地址怎么查,,电脑主...
电脑主板上南北桥芯片位置|电脑主板上南北桥芯
电脑主板上南北桥芯片位置|电脑主板上南北桥芯片位置怎么看,,...
ae改变缓存位置|ae缓存文件默认在哪
ae改变缓存位置|ae缓存文件默认在哪,,ae改变缓存位置不会。因...
ae只显示位置快捷键|ae只显示有操作的项快捷键
ae只显示位置快捷键|ae只显示有操作的项快捷键,,1. ae只显示有...
09款奇瑞风云2发动机电脑图片|奇瑞风云2发动机
09款奇瑞风云2发动机电脑图片|奇瑞风云2发动机号位置图,,奇瑞...
平板电脑如何接网线|平板电脑接网线的位置叫什
平板电脑如何接网线|平板电脑接网线的位置叫什么接口,,平板电...
怎样设置位置共享|怎样设置位置共享对方不察觉
怎样设置位置共享|怎样设置位置共享对方不察觉,,1. 怎样设置位...