linux中安全和許可權那些事
導讀 | 眾所周知, 是一個分時多使用者作業系統,每個使用者都有獨立許可權且相互隔離。其中root使用者的許可權是最大的,其能夠操作所有的檔案以及執行所有的 。當然,正因為如此,使得其風險很大,若操作不當,就會產生嚴重的問題,更嚴重者可以導致系統崩潰。 |
因而在大多數的時候,我們並不會直接使用root使用者登入系統,而是使用一些有著特定許可權的普通使用者。因此在做某些操作的時候,就會遇到許可權不足的情況,比如修改其他普通使用者的密碼(當然這種操作有些不合理,只是為了舉例。
假定我們的系統中有有兩個普通使用者:user1和user2,當前登入系統的使用者為user1,此時需要修改user2的 ,如果直接執行如下命令,就會報許可權不足的提示:
此時有兩種方式可以解決,分別是:切換其他使用者執行和以其他使用者的許可權執行。
對於切換使用者而言,我們最先想到的就是,先退出當前的登入使用者,然後選擇目標使用者進行重新登入。但是這種方式操作起來有些麻煩,因而我們可以使用更簡潔的方式,也就是su命令來實現直接切換使用者。
以上面的例子來說,先使用su切換到root使用者,接著再次執行之前的操作,結果如所示:
如果我們想回退到之前的使用者,只需要執行exit命令,執行結果如下所示:
對於su來說,預設情況下是切換為root使用者,如果需要切換為指定的使用者,則可以在su後面指定使用者名稱。比如user1切換為user2,使用到的命令如下所示:
su user2
執行結果如下所示:
需要說明一點的是,如果從root使用者切換為普通使用者,則可以進行直接切換,而無需輸入對應使用者的密碼。比如從root使用者切換為user1使用者,執行結果如下所示:
對於su命令來說,其還可以加一個引數:"-"。加上該引數之後,不僅身份會變成對應的使用者,甚至對應的使用者環境也會跟著改變,當然最直觀的感受就是主目錄。
下面來分別演示一下這兩種情況:
- 帶“-”引數
使用user1使用者進行登入,執行“su -”命令切換後,使用pwd命令來檢視當前所屬的目錄:
- 不帶“-”引數
使用user1使用者進行登入,執行“su ”命令切換後,使用pwd命令來檢視當前所屬的目錄:
大多數時候,我們只是需要以某個使用者的許可權來執行對應的命令即可,而不是非要切換成對應的使用者。
對於以其他使用者許可權執行某個操作的命令為:sudo。比如上面提到的例子,此時可以使用如下命令:
sudo passwd user2
執行後如所示:
看到這大家是否會有所困惑呢?不是說使用sudo命令可以使用其他使用者的許可權做某些操作嗎?怎麼還提示錯誤了呢?
實際上執行該命令有一定的限制條件,那就是該使用者必須在/etc/sudoers中存在。也只有當使用者在/etc/sudoers配置檔案中被配置過時,才能夠擁有使用sudo命令的許可權,才能使用sudo以其他使用者的身份執行某些操作。
當然,作為普通使用者是沒有編輯/etc/sudoers配置檔案的許可權的,該操作必須使用root使用者登入系統,來將該使用者新增到/etc/sudoers配置檔案中。這種限制在一定程度上避免了安全風險,畢竟所有能夠使用sudo命令的人都是被root使用者進行過授權。
以root使用者登入系統後,就可以透過執行如下命令進入到/etc/sudoers配置檔案的編輯頁面:
vi /etc/sudoers 或 visudo
對於以上的兩個命令,推薦使用visudo,因為這種方式有自動的語法檢查功能。
執行命令的頁面如下所示:
接著在該配置檔案中新增一條配置資訊:
user1 ALL=(ALL) ALL ## 複製上一行的內容
如下所示:
接著儲存並退出。此時再次執行上面修改user2使用者的密碼的命令,結果如下所示:
也就是說,此時透過使用sudo命令,就可以使得普通使用者user1能夠以root使用者的許可權來完成修改其他普通使用者user2的密碼的操作。
透過觀察發現,每次執行sudo命令時都需要輸入當前登入使用者的密碼,這似乎讓人有點惱火,那麼是否有辦法避免這個事呢?解決方法就是使用root使用者來對剛才的配置進行修改,在user1的記錄的最後一個ALL前面增加一個引數:NOPASSWD,修改後的記錄為:
user1 ALL=(ALL) NOPASSWD:ALL
儲存退出後,再次重複之前的操作,發現這次無需再次輸入密碼:
到此,如何做自己許可權之外的操作的方法已經介紹完畢,希望可以對大家有所幫助。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2902329/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- 玩轉 K8s 許可權控制:RBAC + kubeconfig 搞定 kubectl 許可權管理那些事K8S
- Linux的檔案存取許可權和0644許可權Linux
- Linux 中的許可權管理Linux
- Linux-許可權管理(ACL許可權)Linux
- Linux許可權Linux
- Linux中的許可權機制Linux
- Linux中無許可權使用sudoLinux
- Linux中的檔案許可權Linux
- Linux中檔案的許可權Linux
- linux特殊許可權s和tLinux
- Linux 許可權管理之目錄許可權限制Linux
- Oracle中定義者許可權和呼叫者許可權案例分析Oracle
- Linux下Web目錄和檔案安全許可權設定LinuxWeb
- Android系統許可權和root許可權Android
- Linux許可權控制Linux
- linux 許可權 chownLinux
- 許可權管理[Linux]Linux
- Linux ACL 許可權Linux
- Linux 特殊許可權Linux
- Android安全—許可權模型Android模型
- linux中許可權對檔案和目錄的作用Linux
- linux基礎:檔案安全與許可權(轉)Linux
- 選單許可權和按鈕許可權設定
- Linux特殊許可權之suid、sgid、sbit許可權LinuxUI
- linux許可權補充:rwt rwT rws rwS 特殊許可權Linux
- 公有私有synonym中的許可權實際指向和dblink中global_names和許可權封裝封裝
- Linux提權-許可權升級Linux
- Linux檔案許可權Linux
- linux sudo許可權配置Linux
- Linux基本許可權管理Linux
- linux許可權詳解Linux
- Linux 檔案許可權Linux
- Linux的許可權控制Linux
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- mongoDB 3.0 安全許可權訪問MongoDB
- 資料安全之許可權控制
- Linux賬號安全——使用者登陸許可權Linux