Linux 伺服器系統管理第五章 帳戶管理  上一頁    下一頁

5-6 替代身份

內容:

  • 5-6-1 使用者身份替代 - su

  • 5-6-2 管理者身份替代 - sudo

5-6-1 使用者身份替代 -su

使用者登入系統後,可利用 su 命令替代其它帳戶身份,利用 exit 命令返回原登入身份。比較要注意的是,替代他人身份後,目前工作目錄並未改變,可利用 cd 命令切換到家目錄,操作如下:

$ whoami                      【查詢目前身份】

student01

$ pwd                         【查詢目前工作目錄】

/home/student01

$ su student02                   【替代身份 student02

密碼:                         【輸入 student02 密碼】

$ whoami                      【查詢目前身份】

student02

$ pwd                         【查詢目前工作目立】

/home/student01

$ cd                           【切換到家目錄】

$ pwd                         【顯示目前工作目錄】

/home/student02

$ exit                         【返回原身份】

exit

$ whoami                      【查詢目前身份】

student01

$ pwd                         【查詢目前工作目錄】

/home/student01

5-6-2 管理者身份替代 -sudo

利用 su 替代身份時不指定身份,則是替代 root 身份,如下:

$ su                        【替代身份】

密碼:                      【輸入 root 密碼】

# whoami                    【查詢目前身份】

root

上述操作最大的缺點是需要輸入 root 密碼root 享有最高權限,知道它的密碼就可以任意操作系統,因此它的密碼不可以隨便讓他人知道。但又有許多系統管理工作需授權與其他使用者操作,如何辦到呢?我們可以利用 sudo 命令將某些管理命令授權給某些帳戶使用。首先須先認識 sudo 的設定檔(/etc/sudoers),它不可以直接利用 vi 編輯,須利用 visudo 命令編輯,其為了預防兩人以上同時編輯該檔案,操作如下: (執行# visudo 進入 vi 再設定 set number 命令)

88 ## The COMMANDS section may have other options added to it.

     89 ##

     90 ## Allow root to run any commands anywhere

     91 root    ALL=(ALL)       ALL   【設定使用者權限】

     92 ## student02 ALL=(ALL)ALL       【設定使用者權限】

     93 ## Allows members of the 'sys' group to run networking, software,

     94 ## service management apps and more.

     95 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOC        ATE, DRIVERS

     96

     97 ## Allows people in group wheel to run all commands

     98 %wheel  ALL=(ALL)       ALL    【前面有 % 表設定群組權限】

     99

    100 ## Same thing without a password

    101 # %wheel        ALL=(ALL)       NOPASSWD: ALL

91 行內容是 root  ALL=(ALL)  ALL,其者 root 表示帳號名稱,第一個 ALL 表示可以在任何主機(可指定主機名稱),第二個(ALL)表示可以替代任何帳號(可指定其它帳號名稱,第三個 ALL 表示可操作任何管理命令(可指定其它管理命令)。另外,如第 98 行,有 % 記號表示授權給該群組使用者的權利。

假設,我們要授權給 student01 如同 root 般的權限,student02 有關機的權限(/sbin/shutdown),則利用 visudo 編輯如下:(操作#  visudo)

接著,我們再利用 student01 登入系統,看是否具有與 root 相同的權限,如下:(驗證 student01 是否有增加使用者的權限(useradd)

login as: student01                           【利用 student01 登入】

student01@120.118.165.120's password:

Last login: Fri Feb  3 10:35:06 2017 from 120.118.165.107

$ sudo useradd student03                      【執行 useradd 命令】

 

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

 

    #1) Respect the privacy of others.

    #2) Think before you type.

    #3) With great power comes great responsibility.

 

[sudo] password for student01:            【輸入 student01 密碼】

$ cat /etc/passwd |grep student03         【查閱是否產生 student03

student03:x:1002:1002::/home/student03:/bin/bash

$

 

翻轉工作室:粘添壽

 

Linux 伺服器系統管理 - CentOS:

 

 

 

翻轉電子書系列: