0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何解决sudo与重定向的权限拒绝的问题

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-09 17:46 次阅读

udo命令允许您以其他用户身份运行命令与程序,默认是root用户。如果您是个命令行用户,那么sudo是您将经常使用的命令之一。

使用sudo而不是以root用户身份登录会更安全,因为您可以为单个用户授予有限的管理权限,而无需让他们知道root用户密码。

sudo命令已预先安装在大多数Linux发行版中。要检查系统是否安装sudo命令,请使用快捷键ctrl+alt+t打开终端台,键入sudo,然后按Enter

如果您的系统已安装sudo,系统将显示一条简短的帮助消息,否则您将看到类似sudo command not found信息

如果你未安装sudo,则可以使用发行版的软件包管理器安装它,例如apt命令或者yum命令安装sudo。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint,则可以运行命令sudo apt install sudo安装sudo。

如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora,则可以运行命令yum install sudo安装sudo。

apt install sudo #for ubuntu and debian
yum install sudo #for CentOS and RedHat

sudo命令选项

sudo命令的基本语法是sudo OPTION.. COMMANDsudo命令有用于控制其行为的选项,但通常sudo都是以其最基本的形式使用,没有任何选项。

其中COMMAND是您要运行的命令。sudo将读取/etc/sudoers文件,并检查用户是否授予sudo的访问权限。

在第一次使用sudo时,系统会提示您输入当前用户密码,并且该命令将以root用户执行。

例如,要列出/root目录中的所有文件,请运行命令sudo ls /root

sudo ls /root
[sudo] password for myfreax:
.  ..  .bashrc	.cache	.config  .local  .profile

sudo 重定向

如果您尝试将sudo命令的输出重定向到用户没有写权限的文件,则会收到权限拒绝的错误消息permission denied

例如命令sudo echo "test" > /root/file.txt使用echo和重定向操作符> ,将标准输出重定向到/root/file.txt文件。

你将会收到错误消息bash: /root/file.txt: Permission denied。之所以会这样,是因为标准输出的重定向>是以您登录的用户而不是sudo指定的用户运行。

重定向在调用sudo命令之前发生。一种解决方案是使用sudo sh -c以root用户创建子shell进程运行命令。

另一种解决方是将普通用户的标准输出通过管道传递给到tee命令。

sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
sudo sh -c 'echo "test" > /root/file.txt'
echo "test" | sudo tee /root/file.txt

结论

至此,你已经理解如何解决sudo与重定向的权限拒绝的问题,如果您有任何疑问,请随时发表评论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
收藏 人收藏

    评论

    相关推荐

    求助:为什么对spy()的打印报告进行重定向,一直不好使,...

    /taskInfo.dat",O_CREAT|O_RDWR,0x644); ioTaskStdSet(taskIdSelf(),STD_OUT,fd); spy(0,0); close(fd); }运行程序,还是照常打印输出,没有重定向到文件taskInfo.dat,如何解
    发表于 05-18 21:08

    为什么对spy()的打印报告进行重定向,一直不好使

    /taskInfo.dat",O_CREAT|O_RDWR,0x644); ioTaskStdSet(taskIdSelf(),STD_OUT,fd); spy(0,0); close(fd); }运行程序,还是照常打印输出,没有重定向到文件taskInfo.dat,如何解
    发表于 05-23 21:10

    实现printf函数的重定向

    目录重定向函数属性设置重定向函数在配置好串口之后需要在相关文件中添加以下函数以实现printf函数的重定向//注意添加头文件#include "stdio.h"#ifdef
    发表于 08-24 07:09

    怎样去重定向fputc函数呢

    为什么要将fputc函数重定向呢?怎样去重定向fputc函数呢?
    发表于 11-30 07:02

    何解决STM32F103CBT6的printf重定向后%x输出16进制数的问题?

    何解决STM32F103CBT6的printf重定向后%x输出16进制数的问题?
    发表于 12-01 07:32

    STM32重定向printf的方法是什么?

    STM32重定向printf的方法是什么?如何解决在TIMER2中printf只能打印double类型的整数部分?
    发表于 12-01 06:00

    MDK的重定向与printf的重定向有什么不一样?

    MDK的重定向与printf的重定向有什么不一样?
    发表于 12-01 06:05

    如何对printf函数进行重定向

    为什么要对printf函数进行重定向呢?如何对printf函数进行重定向呢?
    发表于 12-01 07:26

    为什么STM8S105 printf函数重定向无法打印信息呢

    为什么STM8S105 printf函数重定向无法打印信息呢?有何解决办法?
    发表于 12-01 07:58

    串口重定向是什么意思?

    串口重定向是什么意思?
    发表于 12-08 06:57

    重定向printf() 函数

    ,结果是什么现象都没有。要想使用这个函数,常规方法是重定向 printf() 函数,结合串口来打印到串口助手上位机。这里的重定向就非常复杂了,你需要懂 printf() 函数内部实现机制。。。。。(参...
    发表于 01-11 07:01

    Keil下使用STlink重定向printf的配置

    Keil下使用STlink重定向printf的配置1. printf 重定向Keil默认下使用Micro LIB库,该库调用 fputs 实现 printf,所以需要重新定义fputs函数,以重定向
    发表于 12-27 18:43 18次下载
    Keil下使用STlink<b class='flag-5'>重定向</b>printf的配置

    Linux I/O重定向详解

    Linux I/O重定向可以定义为,更改从命令读取输入到命令发送输出的方式。你可以重定向命令的输入和输出。对于重定向符号,可以是 或者 | 。
    的头像 发表于 05-04 14:34 590次阅读

    在bash中如何进行各种文件重定向呢?

    本文会用以下测试程序,来演示在bash中,如何进行各种文件重定向
    的头像 发表于 08-25 09:31 695次阅读
    在bash中如何进行各种文件<b class='flag-5'>重定向</b>呢?

    2分钟搞懂输出重定向

    视频最后我们通过重定向把标准输出写到了文件中,但是错误输出还是留在了屏幕上。
    的头像 发表于 01-15 16:41 299次阅读