Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1075937
  • 博文数量: 242
  • 博客积分: 10209
  • 博客等级: 上将
  • 技术积分: 3028
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 09:27
文章分类

全部博文(242)

文章存档

2014年(1)

2013年(1)

2010年(51)

2009年(65)

2008年(124)

我的朋友

分类: LINUX

2008-10-09 16:17:11

Sudo 是一個允許系統管理員授權讓普通用戶執行部分或全部root命令的工具。這樣可以減少root登陸提高系統安全性。

Sudo特點:

1.可以限制特定的用戶在特定的主機上運行指定的命令

2.有非常詳細的日誌紀錄

3.sudo使用時間戳文件來執行類似"檢票"系統。當用戶使用sudo並且輸入密碼後,用戶默認獲得了一張存活期為5分鐘的票(這個數值可以在編譯的時候更改),超過5分鐘不用的話就需要重新輸入密碼才能使用

sudo安裝過程:一般系統都默認有安裝

配置文件/etc/sudoers:

以下簡略介紹該文件的配置項(root使用visudo編輯該文件)

第一部分:# Host alias specification(主機別名定義,用於定義多臺住機)

格式:Host_Alias SERVER = 192.168.0.1/255.255.255.0

Host_Alias SERVER1 = 172.17.1.1

第二部分:# User alias specification(用戶別名定義,用於定義多組用戶)

格式:User_Alias ADMIN = test,jack,tom

User_Alias TEST = user1

第三部分:# Cmnd alias specification (命令別名定義,定義用戶執行命令列表)

格式:Cmnd_Alias CAT = /bin/cat /etc/sudoers

Cmnd_Alias Ls = /bin/ls /root

第四部分:# Override built in defaults(增加日誌紀錄功能)

Defaults@SERVER log_host, logfile=/var/log/sudo.log

#為host alise裏的主機增加一個附加日誌,如果這個日誌需要保存多年,則可使用log_year,這樣在日誌紀錄的時候將紀錄詳細的年份

解釋配置實例:

[test@redflag test]$ sudo cat /etc/sudoers

# sudoers file.

#

# This file MUST be edited with the 'visudo' command as root.

#

# See the sudoers man page for the details on how to write a sudoers file.

#

# Host alias specification

Host_Alias SERVER = 172.17.196.10 #配置主機172.17.196.10別名SERVER;Host_Alias前不能有空格

# User alias specification

User_Alias ADMIN = test,jack #配置用戶組ADMIN,所屬用戶test,jack

# Cmnd alias specification

Cmnd_Alias CT = /bin/cat /etc/sudoers,/bin/cat /etc/shadow

Cmnd_Alias CA = /bin/ls /root

#配置命令別名CT,可以執行cat etc/sudoers,cat /etc/shadow 命令,CA可執行 la /root命令

# Defaults specification

# User privilege specification

root ALL=(ALL) ALL

test SERVER=CT,CA #配置test用戶可以在SERVER執行cat /etc/sudoers,/cat /etc/shadow,ls

/root 命令

# test ALL=(ALL) NOPASSWD: ALL(配置test可以執行所有的root命令,且使用sudo時不需要輸入密碼)

# Override built in defaults

Defaults@SERVER log_host, logfile=/var/log/sudo.log

#配置日誌紀錄到主機SERVER的/var/log/sudo.log文件

# Uncomment to allow people in group wheel to run all commands

# %wheel ALL=(ALL) ALL

# Same thing without a password

# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples

# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom

# %users localhost=/sbin/shutdown -h now

日誌文件:

截取/var/log/sudo.log的一段紀錄如下:

Mar 3 15:13:14 : test : HOST=redflag : command not allowed ; TTY=pts/0 ;

PWD=/home/test ; USER=root ; COMMAND=/bin/ls /root

Mar 3 15:13:18 : test : HOST=redflag : command not allowed ; TTY=pts/0 ;

PWD=/home/test ; USER=root ; COMMAND=/bin/su -

Mar 3 15:13:56 : test : HOST=redflag : TTY=pts/0 ; PWD=/home/test ; USER=root ;

COMMAND=/bin/cat /etc/sudoers

Mar 3 15:14:10 : test : HOST=redflag : TTY=pts/0 ; PWD=/home/test ; USER=root ;

COMMAND=/bin/ls /root

Mar 3 16:27:30 : test : HOST=redflag : TTY=pts/0 ; PWD=/home/test ; USER=root ;

COMMAND=/bin/cat /etc/sudoers

Mar 3 16:29:47 : test : HOST=redflag : command not allowed ; TTY=pts/0 ;

PWD=/home/test ; USER=root ; COMMAND=/bin/cat /var/log/sudo.log

配置中碰到的問題:

1、主機名配置錯誤導致sudo不能執行和日誌紀錄。

錯誤提示:Sorry, user test is not allowed to execute '/bin/cat /etc/sudoers' as root on

localhost.localdomain.

解決:將其中的localhost改為真實主機名字或IP即可

test localhost=/sbin/cat /etc/sudoers

Defaults@localhost log_host /var/log/sudo.log

2、命令別名列表中命令錯誤導致sudo不能執行

錯誤提示:[jackyu@localhost jackyu]$ sudo cat /etc/sudoers

Sorry, user jackyu is not allowed to execute '/bin/cat /etc/sudoers' as root on

localhost.localdomain.

解決:由於在Cmnd alias裏定義的時候命令書寫有誤(Cmnd_Alias CAT = /bin/cat -n /etc/sudoers).

執行:sudo cat -n /etc/sudoers

[注]: 不管在Cmnd alias裏還是在# User privilege specification中指定命令,使用sudo運行時必須一摸一樣,否則將出錯。比如在Cmnd alias裏指定某用戶職能運行 /bin/cat /etc/sudoers,如果該用戶登錄後運行 sudo /cat -n /etc/sudoers將會出錯!

阅读(1423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~