0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何解決sudo與重定向的權(quán)限拒絕的問題

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-09 17:46 ? 次閱讀

udo命令允許您以其他用戶身份運(yùn)行命令與程序,默認(rèn)是root用戶。如果您是個(gè)命令行用戶,那么sudo是您將經(jīng)常使用的命令之一。

使用sudo而不是以root用戶身份登錄會(huì)更安全,因?yàn)槟梢詾閱蝹€(gè)用戶授予有限的管理權(quán)限,而無需讓他們知道root用戶密碼。

sudo命令已預(yù)先安裝在大多數(shù)Linux發(fā)行版中。要檢查系統(tǒng)是否安裝sudo命令,請(qǐng)使用快捷鍵ctrl+alt+t打開終端臺(tái),鍵入sudo,然后按Enter。

如果您的系統(tǒng)已安裝sudo,系統(tǒng)將顯示一條簡(jiǎn)短的幫助消息,否則您將看到類似sudo command not found信息。

如果你未安裝sudo,則可以使用發(fā)行版的軟件包管理器安裝它,例如apt命令或者yum命令安裝sudo。

如果你的計(jì)算機(jī)運(yùn)行的是基于Debian的Linux發(fā)行版,例如Ubuntu,Linux mint,則可以運(yùn)行命令sudo apt install sudo安裝sudo。

如果你的計(jì)算機(jī)運(yùn)行的是基于RedHat的Linux發(fā)行版,例如CentOS,F(xiàn)edora,則可以運(yùn)行命令yum install sudo安裝sudo。

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

sudo命令選項(xiàng)

sudo命令的基本語法是sudo OPTION.. COMMAND。sudo命令有用于控制其行為的選項(xiàng),但通常sudo都是以其最基本的形式使用,沒有任何選項(xiàng)。

其中COMMAND是您要運(yùn)行的命令。sudo將讀取/etc/sudoers文件,并檢查用戶是否授予sudo的訪問權(quán)限。

在第一次使用sudo時(shí),系統(tǒng)會(huì)提示您輸入當(dāng)前用戶密碼,并且該命令將以root用戶執(zhí)行。

例如,要列出/root目錄中的所有文件,請(qǐng)運(yùn)行命令sudo ls /root。

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

sudo 重定向

如果您嘗試將sudo命令的輸出重定向到用戶沒有寫權(quán)限的文件,則會(huì)收到權(quán)限拒絕的錯(cuò)誤消息permission denied。

例如命令sudo echo "test" > /root/file.txt使用echo和重定向操作符> ,將標(biāo)準(zhǔn)輸出重定向到/root/file.txt文件。

你將會(huì)收到錯(cuò)誤消息bash: /root/file.txt: Permission denied。之所以會(huì)這樣,是因?yàn)闃?biāo)準(zhǔn)輸出的重定向>是以您登錄的用戶而不是sudo指定的用戶運(yùn)行。

重定向在調(diào)用sudo命令之前發(fā)生。一種解決方案是使用sudo sh -c以root用戶創(chuàng)建子shell進(jìn)程運(yùn)行命令。

另一種解決方是將普通用戶的標(biāo)準(zhǔn)輸出通過管道傳遞給到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

結(jié)論

至此,你已經(jīng)理解如何解決sudo與重定向的權(quán)限拒絕的問題,如果您有任何疑問,請(qǐng)隨時(shí)發(fā)表評(píng)論。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209521
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    684

    瀏覽量

    22027
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    為什么對(duì)spy()的打印報(bào)告進(jìn)行重定向,一直不好使

    /taskInfo.dat",O_CREAT|O_RDWR,0x644); ioTaskStdSet(taskIdSelf(),STD_OUT,fd); spy(0,0); close(fd); }運(yùn)行程序,還是照常打印輸出,沒有重定向到文件taskInfo.dat,如何解
    發(fā)表于 05-23 21:10

    實(shí)現(xiàn)printf函數(shù)的重定向

    目錄重定向函數(shù)屬性設(shè)置重定向函數(shù)在配置好串口之后需要在相關(guān)文件中添加以下函數(shù)以實(shí)現(xiàn)printf函數(shù)的重定向//注意添加頭文件#include "stdio.h"#ifdef
    發(fā)表于 08-24 07:09

    怎樣去重定向fputc函數(shù)呢

    為什么要將fputc函數(shù)重定向呢?怎樣去重定向fputc函數(shù)呢?
    發(fā)表于 11-30 07:02

    何解決STM32F103CBT6的printf重定向后%x輸出16進(jìn)制數(shù)的問題?

    何解決STM32F103CBT6的printf重定向后%x輸出16進(jìn)制數(shù)的問題?
    發(fā)表于 12-01 07:32

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

    STM32重定向printf的方法是什么?如何解決在TIMER2中printf只能打印double類型的整數(shù)部分?
    發(fā)表于 12-01 06:00

    MDK的重定向與printf的重定向有什么不一樣?

    MDK的重定向與printf的重定向有什么不一樣?
    發(fā)表于 12-01 06:05

    如何對(duì)printf函數(shù)進(jìn)行重定向

    為什么要對(duì)printf函數(shù)進(jìn)行重定向呢?如何對(duì)printf函數(shù)進(jìn)行重定向呢?
    發(fā)表于 12-01 07:26

    串口重定向是什么意思?

    串口重定向是什么意思?
    發(fā)表于 12-08 06:57

    重定向printf() 函數(shù)

    ,結(jié)果是什么現(xiàn)象都沒有。要想使用這個(gè)函數(shù),常規(guī)方法是重定向 printf() 函數(shù),結(jié)合串口來打印到串口助手上位機(jī)。這里的重定向就非常復(fù)雜了,你需要懂 printf() 函數(shù)內(nèi)部實(shí)現(xiàn)機(jī)制。。。。。(參...
    發(fā)表于 01-11 07:01

    DNS 重定向的缺陷

    DNS 重定向的缺陷 這一種路由解決方案,由于充分利用了現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu),結(jié)構(gòu)簡(jiǎn)單,因而被人們認(rèn)為是一種有效的技術(shù),是現(xiàn)階段CDN 應(yīng)用中主
    發(fā)表于 03-25 10:25 ?2284次閱讀

    實(shí)現(xiàn)重定向printf()和scanf() 函數(shù)案例分析

    要想printf()和scanf() 函數(shù)工作,我們需要把printf()和scanf() 重新定向到串口中。重定向是指用戶可以自己重寫C 的庫函數(shù),當(dāng)連接器檢查到用戶編寫了與C 庫函數(shù)相同
    發(fā)表于 06-23 08:26 ?9223次閱讀
    實(shí)現(xiàn)<b class='flag-5'>重定向</b>printf()和scanf() 函數(shù)案例分析

    單片機(jī)printf重定向的函數(shù)免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)printf重定向的函數(shù)免費(fèi)下載。
    發(fā)表于 07-03 17:42 ?0次下載
    單片機(jī)printf<b class='flag-5'>重定向</b>的函數(shù)免費(fèi)下載

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

    Keil下使用STlink重定向printf的配置1. printf 重定向Keil默認(rèn)下使用Micro LIB庫,該庫調(diào)用 fputs 實(shí)現(xiàn) printf,所以需要重新定義fputs函數(shù),以重定向
    發(fā)表于 12-27 18:43 ?18次下載
    Keil下使用STlink<b class='flag-5'>重定向</b>printf的配置

    Linux I/O重定向詳解

    Linux I/O重定向可以定義為,更改從命令讀取輸入到命令發(fā)送輸出的方式。你可以重定向命令的輸入和輸出。對(duì)于重定向符號(hào),可以是 或者 | 。
    的頭像 發(fā)表于 05-04 14:34 ?836次閱讀

    2分鐘搞懂輸出重定向

    視頻最后我們通過重定向把標(biāo)準(zhǔn)輸出寫到了文件中,但是錯(cuò)誤輸出還是留在了屏幕上。
    的頭像 發(fā)表于 01-15 16:41 ?565次閱讀