首頁 >運維 >linux運維 >linux系統中su與sudo的用法

linux系統中su與sudo的用法

齐天大圣
齐天大圣原創
2020-09-10 15:50:532502瀏覽

一般我們都會建議不要直接使用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: <===输入root用户的密码

sudo

##使用su來切換用戶需要輸入新用戶的密碼,我們不可能把root密碼隨意給其他人。使用sudo可以來解決這個問題,下面我們來介紹sudo。

對比su需要知道新切換的使用者密碼(往往是root使用者密碼),sudo的執行只要輸入自己的密碼即可。甚至可以設定為不用密碼都行。想要用好sudo,那麼就需要掌握/etc/sudoers這個設定檔。但這個文件是不能用vim或來修改,他需要用指定的命令,visudo來修改。

下面展示sudo的用法:

sudo [選項] 指令

  • -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還有許多其他的用法,像是使用者別名、指令別名等等,有興趣的童鞋可以自行查閱相關資料。

以上是linux系統中su與sudo的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn