在linux中su用於切換使用者1--su USERNAME改命令是在切換使用者後不開啟一個新的環境變數shell,也就是說仍然處在切換前使用者的shell,具有切換前使用者的許可權。2--su – USERNAME在su 命令後加上“-”表示開啟一個新的變數。Root使用者在切換到普通使用者時不需要輸入密碼。 3--sudo 是在不切換使用者的情況下,以其他使用者的身份執行一個命令。它能夠限制指定使用者在指定的主機上運行某些指定的命令。/etc/sudoers是sudo命令的編輯文檔命令格式 User_Alias Host_Alias=(Runas_Alias) Commd_Alias ----註:1. User_Alias可以是單個或多個使用者,系統組(以%標識),網路組(以+標識)2. Runas_Alias 可以是單個或多個使用者,系統組(以%標識),網路組(以+標識),ID號(以#開頭標識)3. Host_Alias 使用主機名稱或IP,或一個網段4. Commd_Alias :1命令;2目錄(必須以/結尾)最好使用全路徑;3other aliases允許嵌套;允許使用萬用字元。 測試 sudo 命令1 建立兩個普通使用者 liv poppy 添加到組stu 切換到liv 測試fdisk –l 2 在root使用者下使用visudo命令編輯 /etc/sudoers檔案添加如下命令。讓liv具有root使用者使用fdisk的許可權。 liv station73=(root) /sbin/fdisk(註:使用sudo命令時加上命令的全路徑) 3 下面在添加幾個命令列 使liv能執行更多的命令1.liv station73=NOPASSWD:/sbin/service,/sbin/ifconfig,/bin/mount上訴命令都不輸入密碼(註:在普通使用者使用sudo命令時,系統會提示輸入密碼,驗證身份,密碼要輸入的是普通使用者的密碼。系統確定使用sudo命令的是哪個使用者,並記錄至日誌。若不想在使用某個命令時輸入密碼,在命令列前加上NOPASSWD: 預設是PASSWD ) 2 liv station 73=/sbin/service/,NOPASSWD:/sbin/ifconfig,/bin/mount執行service命令需輸入密碼,ifconfig,mount 不需要2.liv station73=(poppy) /sbin/service,NOPASSWD:(root) /bin/mount一個使用者可以執行多個使用者的某些命令3.%stu station=NOPASSWD:NETWORKING./bin/Stu組中的使用者可以不輸入使用者密碼執行檔案中定義的NETWORKING ,以及目錄/bin下的命令。還記得嗎?目錄後面必須加上/結尾4 poppy ALL=(ALL) ALL這個命令很危險 它是是poppy使用者可以在任何主機上以任何使用者執行任何命令。測試方法相同。Sudo 的特點是:給使用者儘可能少的許可權,但能完成他們的工作,所有在編輯SUDOERS檔案時,注意不要讓非法使用者截取root許可權。本文出自“2454790”