OB2D主機伺服器使用【SUDO】,那什麼是:【SUDO】呢?
OB2D主機伺服器使用【SUDO】,那什麼是:【SUDO】呢?
SUDO是一個可以讓某些人暫時以root的身分執行某些經過允許的指令,也可說像是指派使用者至不同的群組給予特殊的檔案權限。
無論如何,他允許使用者於機器上使用特殊的指令,可以有效指派特殊權限的方法。
第一步,拿到SUDO軟體。
可以到Debian下載(副檔名.deb)於ftp://ftp.debian.org、或下"apt-get ins
tall sudo"
或於http://www.rpmfind.net/RPM尋得。
如果上面都行不通,到http://www.courtesan.com/sudo/拿Tar壓縮檔。
配置SUDO允許執行的使用者
現在SUDO裝好,我們於/etc找一個叫sudoers檔案編輯。
如果上面都行不通,到http://www.courtesan.com/sudo/拿Tar壓縮檔。
配置SUDO允許執行的使用者
現在SUDO裝好,我們於/etc找一個叫sudoers檔案編輯。
話說在前,你還要一個visudo軟體,他已置入SUDO軟體內,它提供安全檢查,
核對sudoers 的語法及斷句的錯誤,及禁止修改文件。
Visudo要Bash的VISUAL參數,設定文字編輯器的環境,請跟我下這個指令:
export VISUAL="pico -w"
在此,我們用PICO來做為文字編輯器的環境,我們現在輸入visudo,現在它打
開了/etc/sudoers供我們編輯。
在這,你會看到像這樣幾行的字:
注意:這是Debian的安裝方式,這裡有些參數我沒有著墨,我們是用預設值,
引以為例。這份是Sudo基本安裝指南,你可以輸入"man sudoers"或"man sudo
"看看我沒寫的地方。
#主機群列表
#使用群列表
#使用命令群
#設定某人能使用某命令
root ALL=(ALL) ALL
以下為範例,純屬虛構。不過你聽完我這一席話,你就知道設定的方法。
主機名稱,就是可以使用Sudo的主機或簡易機主機名,在這裡可以指定一個或
多群主機,看看下面設法:
I.主機群列表
這一部分為主機的名稱。格式為:
Host_Alias 主機群名稱 = 主機一,主機二,其他…
第一類就是設定使用群的定義,如果只有一台要用Sudo,就不用設定。
II.使用群列表
這一部分為使用者群組的名稱。格式為:
User_Alias 使用群名稱 = 使用者一,使用者二,其他…
II.使用群列表
這一部分為使用者群組的名稱。格式為:
User_Alias 使用群名稱 = 使用者一,使用者二,其他…
我們來試看看,設定三個群組:ADMINS、PARTTIME及LINUXGROUP,也可以包含
不同組別的使用者。
User_Alias ADMINS = netman, harrier, master
User_Alias PARTTIME = jalala, sonar , huge
User_Alias LINUXGROUP = lyte, SirPlaya
III.使用命令群
這一部分跟上面兩種格式相同:
User_Alias ADMINS = netman, harrier, master
User_Alias PARTTIME = jalala, sonar , huge
User_Alias LINUXGROUP = lyte, SirPlaya
III.使用命令群
這一部分跟上面兩種格式相同:
Cmnd_Alias 命令群 = 命令一,命令二,其他…
如果要加入特別參數,可以用[]通用參數使用指令,舉個例子,USERS 這群使
用/usr/sbin/adduser [A-z]*,後面可使用一至多個參數。
Cmnd_Alias BROWSE = /bin/ls, /bin/cd, /bin/cat
Cmnd_Alias KILL = /bin/kill
Cmnd_Alias USERS = /usr/sbin/adduser [A-z]*,/usr/sbin/userdel –
r [A-z]*
IV.設定某人能使用某命令
下面這行就是全部的指令都能執行,不過有個麻煩是「他什麼都能做」。
root ALL=(ALL) ALL
下一行就是設定ADMINS群組裡面的netman、harrier及master,給予權限。
ADMINS ALL=ALL
下一行就比較有趣了喔,我們來設定PARTTIME裡的這三位臨時工jalala、sonar
及huge,可以在所有伺服器中,使用USERS、KILL及BROWSE這三群指令,還可以
執行/usr/bin/passwd,可是我們現在不想讓他改密碼( 因為我怕他們信用太低
把我的主機吞了 ),那有什麼方法,來!看看我下面怎麼變魔術:
PARTTIME ALL=USERS,KILL,BROWSE,/usr/bin/passwd [A-z]*, !/usr/bin/pass
wd root
看到了嗎,我在/usr/bin/passwd我加了一個"!",這樣就Ok拉。
djg DJNET=ALL
那這一行又是什麼,就是讓DJNET主機群來的djg「開放所有權限」。
最後快大功告成了,我們來設定LINUXGROUP內的lyte及SirPlaya 執行KILL,USE
RS, and BROWSE命令群內,本機的www 使用者能用的指令表,讓LINUXHELP(lin
group1及lingroup2這兩台)使用。該使用者可暫時使用Root 身份執行該指令。
LINUXGROUP LINUXHELP=(www) ALL (root) KILL,USERS,BROWSE
好了,現在/etc/sudoers經過適當調整後,存檔並離開visudo,如果語法錯錯誤
他還會提示您。
使用SUDO
現在看看我怎麼用Sudo:
djg@localhost:~ $ sudo -l
Password: (在這輸入您的密碼)
如此一來,djg 就會按照/etc/sudoers的規則,來分配指令。
djg@localhost:~ $ sudo -u 使用者可以執行的指令 commandhere
Password: (在這輸入您的密碼)
(如果無誤就會執行「使用者可以執行的指令」)
如果您使用root指令,-u參數會為預設值,通常這不需要,最簡單的用法:
djg@localhost:~ $ sudo commandhere
sudo於五分鐘之內,不需重新輸入密碼。