欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

Linux培訓之系統(tǒng)sudo命令十個技巧方法

2018-04-23 13:39:12 1475瀏覽

sudo表示“superuserdo”。它允許已驗證的用戶以其他用戶的身份來運行命令。其他用戶可以是普通用戶或者超級用戶。然而,大部分時候我們用它來以提升的權(quán)限來運行命令。

sudo命令與安全策略配合使用,默認安全策略是sudoers,可以通過文件/etc/sudoers來配置。其安全策略具有高度可拓展性。人們可以開發(fā)和分發(fā)他們自己的安全策略作為插件。



與su的區(qū)別

在GNU/Linux中,有兩種方式可以用提升的權(quán)限來運行命令:

使用su命令

使用sudo命令

su表示“switchuser”。使用su,我們可以切換到root用戶并且執(zhí)行命令。但是這種方式存在一些缺點:

我們需要與他人共享root的密碼。

因為root用戶為超級用戶,我們不能授予受控的訪問權(quán)限。

我們無法審查用戶在做什么。

sudo以獨特的方式解決了這些問題。

首先,我們不需要妥協(xié)來分享root用戶的密碼。普通用戶使用他們自己的密碼就可以用提升的權(quán)限來執(zhí)行命令。

我們可以控制sudo用戶的訪問,這意味著我們可以限制用戶只執(zhí)行某些命令。

除此之外,sudo用戶的所有活動都會被記錄下來,因此我們可以隨時審查進行了哪些操作。在基于Debian的GNU/Linux中,所有活動都記錄在/var/log/auth.log文件中。

本教程后面的部分闡述了這些要點。

實際動手操作sudo

現(xiàn)在,我們對sudo有了大致的了解。讓我們實際動手操作吧。為了演示,我使用Ubuntu。但是,其它發(fā)行版本的操作應該是相同的。

允許sudo權(quán)限

讓我們添加普通用戶為sudo用戶吧。在我的情形中,用戶名為linuxtechi。

1)按如下所示編輯/etc/sudoers文件:

$sudovisudo

2)添加以下行來允許用戶linuxtechi有sudo權(quán)限:

linuxtechiALL=(ALL)ALL

上述命令中:

linuxtechi表示用戶名

第一個ALL指示允許從任何終端、機器訪問sudo

第二個(ALL)指示sudo命令被允許以任何用戶身份執(zhí)行

第三個ALL表示所有命令都可以作為root執(zhí)行

以提升的權(quán)限執(zhí)行命令

要用提升的權(quán)限執(zhí)行命令,只需要在命令前加上sudo,如下所示:

$sudocat/etc/passwd

當你執(zhí)行這個命令時,它會詢問linuxtechi的密碼,而不是root用戶的密碼。

以其他用戶執(zhí)行命令

除此之外,我們可以使用sudo以另一個用戶身份執(zhí)行命令。例如,在下面的命令中,用戶linuxtechi以用戶devesh的身份執(zhí)行命令:

$sudo-udeveshwhoami[sudo]passwordforlinuxtechi:devesh

內(nèi)置命令行為

sudo的一個限制是——它無法使用Shell的內(nèi)置命令。例如,history記錄是內(nèi)置命令,如果你試圖用sudo執(zhí)行這個命令,那么會提示如下的未找到命令的錯誤:

$sudohistory[sudo]passwordforlinuxtechi:sudo:history:commandnotfound

訪問rootshell

為了克服上述問題,我們可以訪問rootshell,并在那里執(zhí)行任何命令,包括Shell的內(nèi)置命令。

要訪問rootshell,執(zhí)行下面的命令:

$sudobash

執(zhí)行完這個命令后——您將觀察到提示符變?yōu)榫?#)。

技巧

這節(jié)我們將討論一些有用的技巧,這將有助于提高生產(chǎn)力。大多數(shù)命令可用于完成日常任務。

以sudo用戶執(zhí)行之前的命令

讓我們假設(shè)你想用提升的權(quán)限執(zhí)行之前的命令,那么下面的技巧將會很有用:

$sudo!4

上面的命令將使用提升的權(quán)限執(zhí)行歷史記錄中的第4條命令。

在Vim里面使用sudo命令

很多時候,我們編輯系統(tǒng)的配置文件時,在保存時才意識到我們需要root訪問權(quán)限來執(zhí)行此操作。因為這個可能讓我們丟失我們對文件的改動。沒有必要驚慌,我們可以在Vim中使用下面的命令來解決這種情況:

:w!sudotee%

上述命令中:

冒號(:)表明我們處于Vim的退出模式

感嘆號(!)表明我們正在運行shell命令

sudo和tee都是shell命令

百分號(%)表明從當前行開始的所有行

使用sudo執(zhí)行多個命令

至今我們用sudo只執(zhí)行了單個命令,但我們可以用它執(zhí)行多個命令。只需要用分號(;)隔開命令,如下所示:

$sudo--bash-c'pwd;hostname;whoami'

上述命令中

雙連字符(--)停止命令行切換

bash表示要用于執(zhí)行命令的shell名稱

-c選項后面跟著要執(zhí)行的命令

無密碼運行sudo命令

當?shù)谝淮螆?zhí)行sudo命令時,它會提示輸入密碼,默認情形下密碼被緩存15分鐘。但是,我們可以避免這個操作,并使用NOPASSWD關(guān)鍵字禁用密碼認證,如下所示:

linuxtechiALL=(ALL)NOPASSWD:ALL

限制用戶執(zhí)行某些命令

為了提供受控訪問,我們可以限制sudo用戶只執(zhí)行某些命令。例如,下面的行只允許執(zhí)行echo和ls命令。

linuxtechiALL=(ALL)NOPASSWD:/bin/echo/bin/ls

深入了解sudo

讓我們進一步深入了解sudo命令。

$ls-l/usr/bin/sudo-rwsr-xr-x1rootroot145040Jun132017/usr/bin/sudo

如果仔細觀察文件權(quán)限,則發(fā)現(xiàn)sudo上啟用了setuid位。當任何用戶運行這個二進制文件時,它將以擁有該文件的用戶權(quán)限運行。在所示情形下,它是root用戶。

為了演示這一點,我們可以使用id命令,如下所示:

$iduid=1002(linuxtechi)gid=1002(linuxtechi)groups=1002(linuxtechi)

當我們不使用sudo執(zhí)行id命令時,將顯示用戶linuxtechi的id。

$sudoiduid=0(root)gid=0(root)groups=0(root)

但是,如果我們使用sudo執(zhí)行id命令時,則會顯示root用戶的id。

從這篇文章可以看出——sudo普通用戶提供了更多受控訪問。使用這些技術(shù),多用戶可以用安全的方式與GNU/Linux進行交互。最后想要了解更多關(guān)于Linux發(fā)展前景趨勢,請關(guān)注扣丁學堂Linux培訓官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權(quán)威的Linux視頻教程系統(tǒng),通過千鋒扣丁學堂金牌講師在線錄制的Linux視頻教程課程,讓你快速掌握Linux從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂Linux技術(shù)交流群:422345477。


扣丁學堂微信公眾號



關(guān)注微信公眾號獲取更多的學習資料



查看更多關(guān)于“Linux培訓資訊的相關(guān)文章>>

標簽: Linux命令 Linux視頻教程 Linux培訓 Linux在線學習 Linux在線視頻 Linux系統(tǒng)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部