一、su命令安全
su命令能夠解決切換用戶身份的需求,使得當前用戶在不退出登陸的狀況下,順暢地切換到其餘用戶,好比從root管理員切換至普通用戶編輯器
[root@localhost Desktop]# su - lisi Last login: Wed Sep 12 23:47:44 CST 2018 on pts/0 [lisi@localhost ~]$ id uid=1001(lisi) gid=1001(lisi) groups=1001(lisi) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
上面的su命令與用戶名之間有一個減號(-),這意味着徹底切換到新的用戶,即把環境變量信息也變動爲新用戶的相應信息,而不是保留原始的信息。另外,當從root管理員切換到普通用戶時是不須要密碼驗證的,而從普通用戶切換成root管理員就須要進行密碼驗證了。ide
二、sudo服務ui
普通用戶能夠徹底切換到root管理員身份來完成相應工做,但這將暴露root管理員的密碼,sudo命令能夠把特定命令的執行權限賦予給指定用戶,這樣既可保證普通用戶可以完成特定的工做,也能夠避免泄露root管理員密碼。咱們要作的就是合理配置sudo服務,以便兼顧系統的安全性和用戶的便捷性。sudo服務的配置原則也很簡單—在保證普通用戶完成相應工做的前提下,儘量少地賦予額外的權限。spa
sudo命令用於給普通用戶提供額外的權限來完成本來root管理員才能完成的任務,格式爲「sudo [參數] 命令名稱」。code
sudo服務中的可用參數以及做用blog
參數 | 做用 |
-h | 列出幫助信息 |
-l | 列出當前用戶可執行的命令 |
-u 用戶名或UID值 | 以指定的用戶身份執行命令 |
-k | 清空密碼的有效時間,下次執行sudo時須要再次進行密碼驗證 |
-b | 在後臺執行指定的命令 |
-p | 更改詢問密碼的提示語 |
總結來講,sudo命令具備以下功能:it
限制用戶執行指定的命令:io
記錄用戶執行的每一條命令;table
配置文件(/etc/sudoers)提供集中的用戶管理、權限與主機等參數;
驗證密碼的後5分鐘內(默認值)無須再讓用戶再次驗證密碼。
可使用sudo命令提供的visudo命令來配置用戶權限。這條命令在配置用戶權限時將禁止多個用戶同時修改sudoers配置文件,還能夠對配置文件內的參數進行語法檢查,並在發現參數錯誤時進行報錯,只有root管理員纔可使用visudo命令編輯sudo服務的配置文件
使用visudo命令配置sudo命令的配置文件時,其操做方法與Vim編輯器中用到的方法一致,所以在編寫完成後記得在末行模式下保存並退出。在sudo命令的配置文件中,按照下面的格式將第99行(大約)填寫上指定的信息
誰可使用 容許使用的主機=(以誰的身份) 可執行命令的列表
在填寫完畢後記得要先保存再退出,而後切換至指定的普通用戶身份,此時就能夠用 sudo -l 命令查看到全部可執行的命令了
做爲一名普通用戶,是確定不能看到root管理員的家目錄(/root)中的文件信息的,可是,只須要在想執行的命令前面加上sudo命令就能夠了
[lisi@localhost ~]$ ls /root/ ls: cannot open directory /root/: Permission denied [lisi@localhost ~]$ sudo ls /root/ anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos
若是須要讓某個用戶只能使用root管理員的身份執行指定的命令,切記必定要給出該命令的絕對路徑,多個命令用逗號隔開,不然系統會識別不出來。