linux_sudo重定向输出权限不足(permission denied)

sudo重定向输出权限不足(permission denied)

references

一般情况下的文本重定向

  • 类似于 echo "test" >> test(这和powershell不同,powershell可以不加echo)
  • 直接再echo 前面加sudo 不改变权限效果

使用sudo bash -c

cxxu_kali➜~» sudo bash -c "echo test >> /etc/apt/testbysudo" [17:39:04]
cxxu_kali➜~» cat /etc/apt/testbysudo [17:39:16]
test

sudo + cat 创建文件

cxxu_kali➜~» sudo bash -c "cat > /etc/apt/testbysudo" [17:42:39]
lines by `sudo bash -c cat >`

同样也是可以的

但是输入重定向(<<,here-document)变得不太好用

使用tee

tee - read from standard input and write to standard output and files

  • 利用 tee 来代替重定向输出 >
    • tee经常和管道符一起使用,但却不是必须
  • 例如执行 ifconfig | tee ifinfo
    • 该命令会将网卡信息即写入到文件,也打印到终端
    • 又比如: echo "service sshd start" |sudo tee -a /etc/rc.local
      • 该命令可以配置linux 开机自己启动ssh服务
      • 将sudo 作用于tee命令

再比如:

cxxu_kali➜~» sudo tee fileBytee << eof [18:07:17]
heredoc> line1
heredoc> line2
heredoc> eof
[sudo] password for cxxu_kali:
line1
line2
cxxu_kali➜~» nl fileBytee [18:08:38]
1 line1
2 line2

tee -a 追加

cxxu_kali➜~» sudo tee -a \etc\apt\fileBytee << eof [18:15:47]
heredoc> &&iioopp
heredoc> sdfl
heredoc> eof
&&iioopp
sdfl
cxxu_kali➜~» cat etcaptfileBytee [18:16:09]
line1
line2
&&iioopp
sdfl

临时切换到管理员sudo -i

覆盖法

在别处创建文件然后通过sudo mv覆盖掉
这比较绕,但是编写脚本的时候也是是一种选择

  • 例如,您可以将/etc/apt/下的文件读取到出来,
  • 通过管道符在用户家目录创建一个有对应内容的文件,
  • 然后在家目录中修改该文件,
  • 再将该文件通过sudo mv 覆盖到原位置;
  • 注意备份文件
posted @   xuchaoxin1375  阅读(37)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-08-28 math_消除根式:椭圆的标准式方程推导&坐标系平移&整理多项式
点击右上角即可分享
微信分享提示