当前位置:  开发笔记 > 编程语言 > 正文

sudo echo"something">>/etc/privilegedFile不起作用......有替代方案吗?

如何解决《sudoecho"something">>/etc/privilegedFile不起作用有替代方案吗?》经验,为你挑选了7个好方法。

对于Linux中的sudo权限,这是一个非常简单的问题,至少看起来应该是这样.

有很多的时候,我只是想将一些东西附加到/etc/hosts或类似的文件,但最终没有能够因为两者>>>不准,甚至有根.

有没有必要让这项工作无需susudo su进入root?



1> Yoo..:

使用tee --appendtee -a.

echo 'deb blah ... blah' | sudo tee -a /etc/apt/sources.list

请务必避免引号内的引号.

要避免将数据打印回控制台,请将输出重定向到/ dev/null.

echo 'deb blah ... blah' | sudo tee -a /etc/apt/sources.list > /dev/null


需要注意的一件重要事情:永远不要忘记-a!想象一下`echo'tmpfs/tmp tmpfs默认为0 0'| sudo tee/etc/fstab`会这样做
对于那些不明白@mic_e所说的内容:**没有`-a`**(`--append`)标志**该命令会用给定的字符串覆盖整个文件**而不是附加到结束.
在OS X下,这应该是`tee -a`而不是`tee --append`.
我同意.似乎比开始新的sh更整洁,特别是可能与环境等做事情.
我绝对喜欢这个.它只是最简单的(它让我想起了tee,它在其他场景中也很方便).

2> Matt P..:

问题是shell确实输出了重定向,而不是sudo或echo,因此这是以普通用户身份完成的.

请尝试以下代码段:

sudo sh -c "echo 'something' >> /etc/privilegedfile"



3> Incident..:

问题是它是你的shell处理重定向; 它试图用您的权限打开文件,而不是在sudo下运行的进程.

使用这样的东西,也许:

sudo sh -c "echo 'something' >> /etc/privilegedFile"


不适用于echo $ EVN_VARIBLE

4> Vinko Vrsalo..:
sudo sh -c "echo 127.0.0.1 localhost >> /etc/hosts"


不适用于echo $ EVN_VARIBLE

5> agnul..:

sudo sh -c "echo >> somefile"

应该管用.问题是>和>>由shell处理,而不是由"sudoed"命令处理,因此权限是你的权限,而不是你正在"sudoing"的用户权限.


不适用于echo $ EVN_VARIBLE

6> msanford..:

我会注意到,好奇的是,你也可以引用一个heredoc(对于大块):

sudo bash -c "cat <> /etc/ipfw.conf



  
    Label
    com.company.ipfw
    Program
    /sbin/ipfw
    ProgramArguments
    
      /sbin/ipfw
      -q
      /etc/ipfw.conf
    
    RunAtLoad
    
  

EOIPFW"



7> Vytenis Biva..:

在bash中,你可以tee结合使用> /dev/null来保持标准清洁.

 echo "# comment" |  sudo tee -a /etc/hosts > /dev/null

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有