linux系統中su與sudo的用法

一般我們都會建議不要直接使用root賬號登陸服務器,建議使用普通賬號來登陸,等到必須使用root用戶來操作時,才進行身份切換。下面,就來講講兩個身份切換的命令su與sudo。

su

su命令用于從當前用戶切換到新的用戶,切換到新用戶身份時,需要輸入切換用戶的密碼。

一般用法:su?-?用戶名

-或-l:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變量;

下面來演示該命令的用法:

$?id?#?當前用戶是admin uid=1005(admin)?gid=1006(admin)?groups=1006(admin) $?su?-?#?不輸入用戶名則表示切換到root用戶 Password:?<p><strong><span style="font-size: 24px;">sudo</span></strong></p><p>使用su來切換用戶需要輸入新用戶的密碼,我們不可能把root密碼隨意給其他人。使用sudo可以來解決這個問題,下面我們來介紹sudo。</p><p>對比su需要知道新切換的用戶密碼(往往是root用戶密碼),sudo的執行只要輸入自己的密碼即可。甚至可以設置為不用密碼都行。想要用好sudo,那么就需要掌握/etc/sudoers這個配置文件。但這個文件是不能用vim或來修改,他需要用指定的命令,visudo來修改。</p><p>下面展示sudo的用法:</p><p>sudo [選項] 命令</p>
  • -b:將后續命令反正后臺運行

  • -u:指定用戶運行后續命令

  • sh -c執行多條命令

[root@bajiecxg?tmp]#?sudo?-u?gwx?touch?a.txt [root@bajiecxg?tmp]#?ll?a.txt? -rw-r--r--?1?gwx?gwx?0?10月?29?17:49?a.txt #?使用sh?-c執行多條命令 [root@bajiecxg?tmp]#?sudo?-u?gwx?sh?-c?"mkdir?gwx;cd?gwx; touch?1.txt" [root@bajiecxg?tmp]#?ll?gwx/ 總用量?0 -rw-r--r--?1?gwx?gwx?0?10月?29?17:53?1.txt

下面我們來看看/etc/sudoers這個文件,基本配置格式如下

root????ALL=(ALL)???ALL

使用者賬號 ?登錄者來源主機=可切換的用戶身份 ?可執行的命令

上面的意思死root用戶可以從任意主機登錄,能夠切換任意的身份,能夠執行任意的命令

現在,我們想添加一個用戶admin,讓他也能執行任意命令,那么,我們就需要使用visodu命令新增一行,如下:

admin?ALL=(ALL)?ALL

那如果我們有多個運維管理者,他們都需要能夠使用sudo來執行任意命令,那么就需要添加多條配置。那有沒有一種簡便的方法呢?有的,只要我們把用戶加入到wheel這個組就可以了。那么為什么加入到這個組就行了呢?看下/etc/sudoers,大概在99行:

%wheel??ALL=(ALL)???ALL

我們還可以讓用戶使用sudo時候,不需要使用密碼即可執行命令

%wheel????ALL=(ALL)???NOPASSWD:?ALL #?屬于wheel這個組的用戶執行sudo命令時,不需要輸入密碼

還可以賦予用戶有限的命令權限,讓用戶只能執行幾個命令

admin?ALL=(ALL)?/usr/bin/ls,/usr/bin/cd

除此之外,sudo還有許多其他的用法,比如用戶別名、命令別名等等,有興趣的童鞋可以自行查閱相關信息。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享