免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 607 | 回复: 0
打印 上一主题 下一主题

sudo使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-20 12:11 |只看该作者 |倒序浏览
[翻譯] DJG's Sudo Guide
譯者﹕Jalala
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於五分鐘之內,不需重新輸入密碼。
你可以從Sudo使用說明書得到你需要的資訊,我抽空還會修一修這份文件。
現在,你大概對使用者給予特殊權限,已經有個譜了,還有問題的話,你可以來
LinuxHelp.net on DALnet問問題吧 :D
本文作者DJG, djg@linuxhelp.net於2000年一月一日編寫。
譯者Jalala@TFUG,Jalala放棄本篇文章利益,僅供各大教學網站及網中人站長
做教學使用,本文絕對不擔保引起之衍生利益損失或意外損失擔保責任。
Jalala於2002年 7月 9日翻譯


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/20141/showart_143097.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP