linux系統命令學習系列-用戶切換命令su,sudo
先復習一下上節內容:
- 用戶組添加groupadd
- 用戶組修改groupmod
- 用戶組刪除groupdel
- 作業創建一個id為501的組group1,然後改成group2, 同時id變為502,最後刪除這個組,命令分別如下:
groupadd –g 501 group1
groupmod –g 502 –n group2 group1
groupdel group2
這一節,我們來說一下用戶切換相關命令
為什麽要進行用戶切換?
在操作過程中需要使用特定的用戶進行特定的操作,多數情況下是因為權限,比如要修改一個文件,只有root用戶有權限修改,那麽就要切換到root用戶下進行操作。切換用戶一般有兩個命令:
1. su命令
su命令不加參數,默認切到root用戶,需要輸入root用戶密碼進行驗證,
exit命令可退出root用戶。
su命令可以加一個“-”再加上用戶名,此時,不但身份變化了,同時也擁有了此用戶的“用戶環境”,比如用戶家目錄以及此用戶的其它個性化設置。
普通用戶切換其它用戶需要知道其它用戶的密碼,root用戶使用su命令切換其它用戶,不需要知道用戶密碼
2. sudo命令
sudo的用法是,在sudo後面加上要執行的命令,表示用root身份執行此命令,比如
sudo useradd user1,表示用root身份執行添加用戶的操作。
此命令在系統中的動作流程是
- 檢查當前用戶是否有sudo的權限,通過檢查/etc/sudoers文件
比如我們用user1執行sudo useradd命令,會報錯
2. 在用戶輸入自己的密碼後,驗證用戶密碼
3. 密碼正確後,如果當前用戶有權限用sudo執行對就的命令,系統就會以root用戶身份執行相關命令
基於以上流程,我們需要先給用戶sudo的權限,此權限存儲在/etc/sudoers這個文件中,可以用vi或vim進行編輯(這兩個命令以面會講到),或是用sudoers文件的專用命令visudo,這裏我們用visudo進行編輯,可以看到root用戶的sudo權限:
這一行表示的意思是,root用戶(第一列),從任何地方登錄(第二列的ALL),可以執行任何人(第三列的ALL)的任何命令(第四列的ALL),根據這個定義,我們把user1的權限也加上
保存後退出,再次在user1中執行sudo useradd命令,此時要求輸入user1的密碼,證明權限生效了
還可以通過 %組名稱 的方式給用戶組分配權限,比如
%users ALL=(ALL) ALL
表示所有users組中的用戶都可以執行sudo命令。
如何不想每次都輸入密碼,可以使用NOPASSWD進行配置,如下:
再次執行sudo useradd命令
已不再要求輸入密碼。
再進一步,可以設置用戶有權限執行哪些命令,比如我們讓user1只能執行shutdown命令,可以做如下配置
保存退出後,在user1中再次執行sudo useradd命令
已沒有執行權限
更多文章關註微信公眾號“挨踢學霸”
linux系統命令學習系列-用戶切換命令su,sudo