sudo是unix/linux平台上的乙個非常有用的工具,它允許系統管理員分配給普通使用者一些合理的「權利」,讓他們執行一些只有超級使用者或其他特許使用者才能完成的任務,比如:執行一些像mount,halt,su之類的命令,或者編輯一些系統配置檔案,像/etc/mtab, /etc/samba/smb.conf等。這樣以來,就不僅減少了root使用者的登陸次數和管理時間,也提高了系統安全性。
sudo設計者的宗旨是:給使用者盡可能少的許可權但仍允許完成他們的工作。所以,sudo有以下特點:
who host=(runas) tag:command
樣例:
oracle all=(root) nopasswd:/usr/sbin/useradd, passwd:/usr/sbin/userdel
注:上面的意思就是:oracle使用者可以在任何地方以root身份無密碼執行useradd有密碼執行usermod。
此外sudo還支援別名的定義,我們通過引用定義好的別名可以提供工作效率:
who user_alias
which_hosts host_alias
runas runas_alias
command cmnd_alias
user_alias
host_alias
runas_alias
cmnd_alias
使用者名稱主機名
使用者名稱命令路徑(全路徑)
組名(%)
ip 位址
組名(%)
目錄其他user_alias
網路位址
其他runas_alias
其他cmnd_alias
其他host_alias
雖然我們可以使用vim直接來編輯sudo的配置檔案,但sudo提供了更加智慧型的編輯命令visudo,它能在編輯配置檔案的同時幫我們檢查語法錯誤,並在錯誤時提供快捷的返回功能,相當nice。
注意在你使用visudo命令前,你有必要設定下editor=vim來替換預設的vi,可以開啟的時候語法高亮,看起來起來舒服多了。
[root@centos74 ~]$ vim ~/.bash_profile #編輯profile檔案# 新增如下行
export editor=vim
[root@centos74 ~]$ source ~/.bash_profile # 讓其立即生效
/etc/sudoers是sudo的主配置檔案,如果我們想設定sudo設定,建議在/
etc/sudoers.d/下面建立檔案編輯。
[root@centos74 sudoers.d]$ visudo -f /etc/sudoers.d/oracle2 # 這裡我給oracle2使用者一些sudo許可權,命令會在sudoers.d目錄下建立乙個檔案的。這個檔名貌似使用.conf結尾貌似不可以的。
關於時間戳這個東西。我們預設使用sudo執行命令的時候,第一次是需要輸入密碼的,短時間內再次執行sudo命令是不需要再次輸入密碼的。這個時間是有時間戳控制的。我們可以指定-k修改時間戳為元年,下次在sudo執行命令就必須輸入密碼。
3.5.1 oracle使用者可以在任何地點以任何的身份執行所有命令,等同於root。
oracle all=(all) all
3.5.2 oracle2使用者可以在任何地點以root的身份執行命令useradd(無需密碼)和usermod(需要密碼).
oracle2 all=(root) nopasswd:/usr/sbin/useradd, passwd:/usr/sbin/userdel
這樣oracle2就可以免密碼useradd,有密碼(密碼為oracle2的自身密碼)使用userdel。
使用方式如下
[oracle2@centos74 ~]$ useradd test001 # 直接使用命令是不可以的。-bash: /usr/sbin/useradd: permission denied
[oracle2@centos74 ~]$ sudo
useradd test001 # 必須加sudo
[oracle2@centos74 ~]$ id
test001 # 檢視新增的使用者資訊
uid=1031(test001) gid=1032(test001) groups=1032(test001)
3.5.3 oracle3使用者只能在192.168.1.120主機遠端登入並以root身份執行ifconfig eth0命令。
cmnd_alias netcmnd = /sbin/ifconfigeth0
oracle3
192.168.1.120 = (root) nopasswd:netcmnd
3.5.4 oracle4使用者可以執行/usr/sbin下的所有命令除了/usr/sbin/userdel
oracle4 all=(all) /usr/sbin/,!/usr/sbin/userdel
3.5.5 oracle5使用者可以cat /var/log/secure*的檔案
oracle5 all=(all) /bin/cat /var/log/secure*,!/bin/cat /var/log/secure* *
注意這個如果不加!後面的內容,使用者可以執行如下命令cat /var/log/secure /etc/shadow 這樣的命令隨便檢視系統的檔案。很危險。
為了能夠明確的追究責任,sudo還提供了人性化的日誌功能,在/var/log/secure日誌檔案中可以檢視到,用於記錄所有sudo類使用者的所有動作。
Linux授權中的sudo配置和使用教程
sudo是openbsd的一部分,其作者是 todd c.miller。在 freebsd 中可以使用 ports 或 package 來安裝。在linux中預設是安裝好的。下面就來看看如何配置sudo授權。1 配置sudo sudo的配置檔案在 usr local etc sudoers裡面。su...
su和sudo的使用
普通使用者執行 su 命令的時候,會索要root使用者的密碼切換到root使用者。root使用者擁有最高許可權,就可以為所欲為的做了。su命令預設是請求切換到root使用者,如果使用 su 使用者 方式則可以切換到指定使用者。注意 su並不會真正切換使用者身份,也就是環境變數不變 只有 su 使用者...
sudo配置教程
1 sudo配置檔案是 etc sudoers 另外會自動包含 etc sudoers.d目錄下的檔案 etc sudoers檔案最後有一句 includedir etc sudoers.d 其中的 不是注釋不用取消 2 etc sudoers預設許可權440 r r 如果是要編緝要切換到root然...