1. 程式人生 > >linux 許可權管理sudo 許可權

linux 許可權管理sudo 許可權

大家都知道 ,Linux 許可權 管理 非常重要, 特別是一些 sudo 這樣的一些許可權。

Ubuntu預設為一次時長15分鐘。 su : 切換到某某使用者模式,提示輸入密碼時該密碼為切換後賬戶的密碼,用法為“su 賬戶名稱”。如果後面不加賬戶時系統預設為root賬戶,密碼也為超級賬戶的密碼。沒有時間限制。 sudo -i: 為了頻繁的執行某些只有超級使用者才能執行的許可權,而不用每次輸入密碼,可以使用該命令。提示輸入密碼時該密碼為當前賬戶的密碼。沒有時間限制。執行該命令後提示符變為“#”而不是“$”。想退回普通賬戶時可以執行“exit”或“logout” 。 其實,還有幾個類似的用法: sudo /bin/bash   : 這個命令也會切換到root的bash下,但不能完全擁有root的所有環境變數,比如PATH,可以擁有root使用者的許可權。這個命令和 sudo -s 是等同的。 sudo -s : 如上 sudo su  : 這個命令,也是登入到了root,但是並沒有切換root的環境變數,比如PATH。 sudo su - :  這個命令,純粹的切換到root環境下,可以這樣理解,先是切換到了root身份,然後又以root身份執行了 su - ,這個時候跟使用root登入沒有什麼區別。這個結果貌似跟sudo -i 的效果是一樣的,但是也有不同,sudo 只是臨時擁有了root的許可權,而su則是使用root賬號登入了linux系統。 所以,我們再來總結一下: sudo su -  約等於  sudo -i sudo -s  完全等於  sudo  /bin/bash  約等於 sudo su sudo 終究被一個"臨時許可權的帽子"扣住,不能等價於純粹的登入到系統裡。

舉個例子看看
可以在root 使用者下面 使用 visudo 開啟配置檔案,加入以下幾行,(如果沒有這個命令 yum install visudo )

biaoge
  ALL=(ALL)    ALL
這裡簡單解釋一下, 這個配置檔案有三列 ,
第一列 使用者名稱,
 第二列 ALL=(ALL) 代表 ALL代表host ,即 biaoge 這個使用者從哪臺機器登入的, (ALL) 就是臨時擁有的身份,這裡ALL 就是 所有的使用者 (當然 這裡也可以配置成root),
第三列,代表擁有 biaoge 這個使用者可以使用的命令,ALL 就代表所有的命令。 這biaoge 這個使用者就可以(以root 身份)執行一些命令了。



這樣 就可以 以 臨時root的身份 去訪問root 的家目錄了。 當然這樣每次都要輸入密碼。第一次要輸入之後 就不用輸入密碼了。

把配置檔案 改一下, 這樣就不用輸入密碼 了,可以直接使用 命令了。
biaoge  ALL=(root)    NOPASSWD:ALL

但是這樣 有時候 也不是特別好, 因為這樣 一些普通使用者通過一些命令 就可以 切換到 root 使用者下面, 比如通過
sudo /bin/bash , sudo -i , sudo -s , sudo su
看下面截圖:


這樣相對是比較危險的,所以 要想法限制 這些特殊的命令,這些命令 可以 提升 普通使用者的許可權

通過 修改 配置檔案,也是可以做到的,
biaoge  ALL=(root)    NOPASSWD:ALL,!/bin/su ,!/bin/bash

這裡限制 su ,和/bin/bash 就可以了。


看看效果 ,此時 普通使用者想要切換到root 使用者,就不可能了。