1. 程式人生 > >su與sudo

su與sudo

su與sudo

su的使用
切換使用者:linux當中可以使用su來切換不同的使用者角色
su root 表示我們需要切換成其他使用者,需要使用密碼
新增使用者組:groupadd rax表示我們自己添加了一個rax的組
su 用於使用者之間的切換。但是切換前的使用者依然保持登入狀態。如果是 root
向普通或虛擬使用者切換不需要密碼, 反之普通使用者切換到其它任何使用者都需要密
碼驗證。
su 在不加任何引數,預設為切換到 root 使用者,但沒有轉到 root 使用者根目
錄下; su 加引數 - ,表示預設切換到 root 使用者,並轉到 root 使用者根目錄下。

su 不足: 如果某個使用者需要使用 root 許可權、則必須要把 root 密碼告訴此
使用者。
退出返回之前的使用者

sudo使用
sudo 是為所有想使用 root 許可權的普通使用者設計的。可以讓普通使用者具有臨
時使用 root 許可權的權利。只需輸入自己賬戶的密碼即可。當然這個普通使用者必
須在/etc/sudoers 檔案中有配置項、才具有使用 sudo 的權利。
沒有配置許可權之前,普通使用者無法進行 root 許可權操作

使用 root 使用者編輯/etc/sudoers 檔案,給普通使用者授權
命令列輸入 visudo,開啟/etc/sudoers 檔案,加入如下的內容,儲存。
zhangsan ALL=(ALL) ALL

這樣普通使用者就可以使用 sudo 執行 root 許可權的命令了。

sudo 的工作過程如下:
1.當用戶執行 sudo 時,系統會主動尋找/etc/sudoers 檔案,判斷該使用者是
否有執行 sudo 的許可權
2. 確認使用者具有可執行 sudo 的許可權後,讓使用者輸入使用者自己的密碼確認
3. 若密碼輸入成功,則開始執行 sudo 後續的命令

如果想要更加精準的控制,就需要理解配置中的含義。
zhangsan ALL=(ALL) ALL
第一個 ALL 是指網路中的主機, 我們可以指定主機名, 這樣 zhangsan 只可以在此主機上執行後面的命令。第二個括號裡的 ALL 是指目標使用者,也就是以誰的身份去執行命令。最後一個 ALL 是指命令名了。
例如,我們想讓 zhangsan 使用者在 node-23 主機上以 allen 的身份執行 kill 命令, 就這樣編寫配置檔案:
zhangsan node-23=(allen) /bin/kill
案例:只允許 zhangsan 使用者以 root 身份在 node-23 上執行 ls 、 cat 命令,
並且執行時候免輸入密碼。
配置檔案中:
zhangsan node-23=NOPASSWD: /bin/ls, /bin/cat

執行非 ls 、 cat 命令也會禁止。

而 cat 命令就可以執行。