自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

系統(tǒng)管理員指南:使用sugroup控制su訪問(wèn)

運(yùn)維 系統(tǒng)運(yùn)維
系統(tǒng)管理員可以向用戶提供 su 訪問(wèn)權(quán),讓用戶能夠切換為另一個(gè)用戶,而不需要注銷當(dāng)前賬戶。使用 sugroup 讓系統(tǒng)管理員能夠通過(guò)組成員限制誰(shuí)可以使用 su 訪問(wèn)哪個(gè)賬戶。sugroup 可以簡(jiǎn)化 su 權(quán)限的管理,因?yàn)樘幚淼氖墙M而不是大量單獨(dú)的用戶。

使用 sugroup 讓系統(tǒng)管理員能夠通過(guò)組成員限制誰(shuí)可以使用 su 訪問(wèn)哪個(gè)賬戶??梢允褂?NOT 操作符對(duì)訪問(wèn)控制進(jìn)行進(jìn)一步限制。在接受審計(jì)時(shí),需要報(bào)告 sugroup 中有哪些成員以及他們可以使用 su 訪問(wèn)哪些賬戶。這包括生成 sugroup 成員訪問(wèn)報(bào)告,這一般是遵從性任務(wù)。

sugroup 概述

系統(tǒng)管理員可以向用戶提供 su 訪問(wèn)權(quán),讓用戶能夠切換為另一個(gè)用戶,而不需要注銷當(dāng)前賬戶。通常,通過(guò)設(shè)置 su 賬戶讓用戶可以臨時(shí)切換為另一個(gè)賬戶,例如 root 用戶或應(yīng)用程序所有者。但是,隨著應(yīng)用程序支持工作量的增長(zhǎng),系統(tǒng)的維護(hù)開銷也會(huì)增加??梢允褂?sugroup 簡(jiǎn)化 su 權(quán)限的管理,因?yàn)樘幚淼氖墙M而不是大量單獨(dú)的用戶。

使用 sugroup 讓系統(tǒng)管理員可以把某些用戶分組在一起,向他們授予通過(guò) su 訪問(wèn)不同賬戶的權(quán)力。用戶是否是某個(gè) AIX® 組的成員決定他是否有 su 訪問(wèn)權(quán)。在創(chuàng)建用戶時(shí),可以通過(guò)用戶屬性指定一個(gè) sugroup;只有這個(gè)組的成員才能通過(guò) su 變成這個(gè)用戶。當(dāng)然,執(zhí)行 su 的用戶需要知道密碼。不屬于指定的 sugroup 的其他用戶不能通過(guò) su 變成此用戶,即使知道用戶的密碼也不行。

某些系統(tǒng)的安全策略可能不允許向其他用戶泄露密碼。在這種情況下,可以使用 sudo。稍后討論此問(wèn)題。

#p#

需要了解的命令

可以使用以下命令判斷目前有哪些 sugroup:

  • lsuser
  • lsgroup

在下面的示例中,使用 lsuser 命令輸出所有用戶的所有 sugroup。根據(jù)系統(tǒng)上配置的用戶數(shù)量,這個(gè)列表可能非常長(zhǎng):

# lsuser -a sugroups ALL
 

在創(chuàng)建用戶時(shí),如果沒(méi)有指定 sugroup,AIX 就采用默認(rèn)設(shè)置 ALL。這意味著任何組都可以通過(guò) su 變成此用戶。為了篩選出默認(rèn)的 ALL,可以使用 'grep -v' 列出 sugroups 屬性設(shè)置為默認(rèn)值 ALL 的所有用戶。把 ALL 替換為系統(tǒng)上的默認(rèn) sugroup:

/etc/security/user:

# lsuser -a sugroups ALL|grep -v ALL
 

使用以下代碼列出單一用戶(在這里是用戶 pinky)及其 sugroups 屬性:

# lsuser -a sugroups pinky
pinky sugroups=wasgrp,websp
 

在上面的輸出中,可以看到用戶 pinky 的 sugroup 是 wasgrpwebsp。

使用以下代碼列出 sugroup wasgrpwebsp 的成員:

# lsgroup -a users wasgrp
admin users=dxtans,pxcon,jgena
# lsgroup -a users websp
admin users=dcand,
 

現(xiàn)在,我們知道用戶 pinky 的 sugroup 是 wasgrpwebsp,這兩個(gè)組的成員可以通過(guò) su 變成用戶 pinky

dxtans,pxcon,jgena,dcand
 

可以使用 grep 工具在文件中搜索系統(tǒng)用戶屬性默認(rèn)值。根據(jù)在文件中放置注釋的方法不同,以下命令之一可以提取出默認(rèn)值小節(jié):

grep -p "default:" /etc/security/user
grep -v ^"*" /etc/security/user| grep -p "default:"
 

更好的方法是使用 grep 只提取出默認(rèn)值小節(jié)中的 sugroups 屬性:

# grep -p "default:" /etc/security/user| grep sugroups
        sugroups = ALL

 

#p#

使用 sugroup

下面通過(guò)一個(gè)示例了解如何實(shí)現(xiàn) sugroup。

# lsuser -a sugroups dxtans
dxtans sugroups=ALL
 

在前面的輸出中可以看出 sugroups 屬性設(shè)置為 ALL。這意味著任何用戶(即任何組的成員)都可以通過(guò) su 變成用戶 dxtans,只要他們知道用戶 dxtans 的密碼。現(xiàn)在,我們來(lái)修改 sugroups 屬性,讓它只包含組 smoke

# chuser sugroups=smoke dxtans
# lsuser -a sugroups dxtans
dxtans sugroups=smoke
 

看看組 smoke 的成員,其中只有一個(gè)成員:papa

# lsgroup -a users smoke
smoke users=papa
 

如果不屬于組 smoke 的另一個(gè)用戶嘗試執(zhí)行 su,就會(huì)發(fā)生以下情況:

$ whoami
bravo
$ su – dxtans
dxtans's Password:
3004-307 You are not allowed to su to this account.
3004-501 Cannot su to "dxtans" : Account is not accessible.
 

如果用戶 papa 嘗試通過(guò) su 變成 dxtans 而且他知道密碼,那么授予訪問(wèn)權(quán):

$ whoami
papa
$ su - dxtans
dxtans's Password:
$ id 
uid=203(dxtans) gid=1(staff)
 

執(zhí)行 su 的嘗試被記錄在 /var/adm/sulog 中。

經(jīng)過(guò)前面的兩次 su 操作嘗試之后,日志文件中有兩個(gè)條目。加號(hào)表示用戶 papa 通過(guò) su 變成用戶 dxtans 的嘗試成功了。減號(hào)表示用戶 bravo 通過(guò) su 變成用戶 dxtans 的嘗試失敗了:

$ tail /var/adm/sulog
SU 04/17 19:51 + pts/1 papa-dxtans
SU 04/17 19:52 - pts/1 bravo-dxtans
 

如果用戶嘗試通過(guò) su 變成另一個(gè)用戶,但是收到了 'Account is not accessible' 消息,而您確定通過(guò) sugroups 或 su 執(zhí)行的身份驗(yàn)證是正確的,那么應(yīng)該檢查目標(biāo)用戶是否有不成功的登錄嘗試記錄??赡苁敲艽a到期了,或者沒(méi)有設(shè)置初始密碼。

#p#

在任何系統(tǒng)上都必須有的 sugroup

到目前為止,我已經(jīng)證明了創(chuàng)建 sugroup 比創(chuàng)建許多具有 su 權(quán)限的用戶更方便。即使您不打算使用 sugroup,至少應(yīng)該創(chuàng)建一個(gè) sugroup,用它管理切換為 root 賬戶的 su 操作。通常,系統(tǒng)管理員用自己的賬戶登錄,然后通過(guò) su 變成 root 用戶?,F(xiàn)在演示如何只允許以下用戶(他們是系統(tǒng)管理員)通過(guò) su 變成 root 用戶:

john,peter,jane
 

第一步是創(chuàng)建一個(gè)組。我們把它命名為 sysadmin,其成員是上面列出的用戶。只允許這個(gè)組的成員通過(guò) su 變成 root 用戶。

創(chuàng)建包含成員 john,peter,jane 的組:

# mkgroup -A users="john,peter,jane" sysadmin
 

確認(rèn)組成員:

# lsgroup -a users sysadmin
sysadmin users=john,peter,jane
 

把 root 用戶的 sugroups 設(shè)置為 sysadmin

# chuser sugroups=sysadmin root
# lsuser -a sugroups root
root sugroups=sysadmin
 

現(xiàn)在,只有 sysadmin 的成員能夠通過(guò) su 變成 root 用戶。

應(yīng)該不允許 root 用戶通過(guò) telnet 直接登錄。 root 用戶應(yīng)該只能通過(guò)直接控制臺(tái)登錄。盡管如此,當(dāng)處理更新和文件/腳本分發(fā)時(shí),需要使用 root 用戶賬戶跨系統(tǒng)執(zhí)行 ssh 操作。好方法是只允許 root 用戶從部署服務(wù)器執(zhí)行 ssh 操作。

#p#

最初拒絕

有時(shí)候,在系統(tǒng)上創(chuàng)建新用戶時(shí),希望禁止任何用戶通過(guò) su 變成此用戶。一種實(shí)現(xiàn)方法是創(chuàng)建一個(gè)沒(méi)有成員的組。然后,使用這個(gè)組名作為此用戶的 sugroups 屬性。例如,假設(shè)有一個(gè)名為 brown 的用戶。由于用戶環(huán)境的敏感性,應(yīng)該不允許任何用戶( root 用戶除外)通過(guò) su 變成此賬戶??梢詣?chuàng)建一個(gè)沒(méi)有成員的 none 組:

# mkgroup -A none
# lsgroup -a users none
none users=
 

然后,把用戶賬戶的 sugroups 屬性改為這個(gè)組:

# chuser sugroups=none brown
# lsuser -a sugroups brown
brown sugroups=none
 

因?yàn)闆](méi)有任何用戶屬于組 none,而這個(gè)組作為 sugroups,所以所有普通用戶都無(wú)法通過(guò) su 變成用戶 brown

如果希望讓這成為持久的特性,可以編輯 /etc/security/user 文件。在默認(rèn)值小節(jié)的 sugroups 條目中,設(shè)置剛才創(chuàng)建的組:

sugroups  =  none
 

 

可以在默認(rèn)值小節(jié)的 sugroups 條目中設(shè)置任何名稱。當(dāng)創(chuàng)建新用戶時(shí),AIX 會(huì)采用這個(gè)值,并不通過(guò)檢查 /etc/group 確認(rèn)組名是有效的。但是,仍然會(huì)應(yīng)用名稱長(zhǎng)度和有效字符方面的一般限制。如果以后通過(guò) smit 或 chuser 修改用戶的 sugroups 屬性,并嘗試使用不存在的組名,那么會(huì)檢查 /etc/group,命令會(huì)失敗。

 

現(xiàn)在,當(dāng)創(chuàng)建所有新用戶時(shí),在默認(rèn)情況下他們的 sugroups 設(shè)置為這個(gè)組(因此任何用戶都無(wú)法通過(guò) su 變成此用戶)。請(qǐng)注意,已經(jīng)把 sugroups 設(shè)置為 ALL(默認(rèn)值)的所有用戶現(xiàn)在的 sugroups 屬性值是 'none'。以后可以根據(jù)安全策略的要求逐漸放松此用戶的安全限制。

#p#

sugroup 限制

正如前面提到的,除非修改默認(rèn)的 sugroups 值,否則所有用戶都使用默認(rèn)值 (ALL)。為了進(jìn)一步限制 sugroup 訪問(wèn),AIX 提供了 NOT 操作符 '!'。規(guī)則的格式如下:

!<group_name >
 

通過(guò)在 sugroups 屬性中使用這個(gè)規(guī)則,前面有 NOT 操作符的組就不允許通過(guò) su 變成此用戶。您可能會(huì)問(wèn) “為什么要這么做?” 對(duì)于普通用戶,可以通過(guò)組指定哪些用戶不允許通過(guò) su 變成特定的用戶。還可以使用這種方法臨時(shí)限制某些組。這樣就不需要通過(guò)創(chuàng)建許多個(gè)組來(lái)控制對(duì)不同賬戶的訪問(wèn),可以大大提高 su 管理的靈活性。

下面通過(guò)一個(gè)示例看看使用 NOT 操作符的 sugroups 的效果。假設(shè)有一個(gè)名為 sun 的組??梢酝ㄟ^(guò)下面的 lsgroup 輸出查明這個(gè)組的成員:

# lsgroup -a users sun
sun users=alpha,bravo
 

所以成員是:

 alpha,bravo
 

我們希望允許所有用戶通過(guò) su 變成用戶 charlie,但是拒絕組 sun 的成員,為此使用以下命令:

# chuser sugroups="!sun,ALL" charlie
 

請(qǐng)注意以上命令中 NOT 操作符的次序,我們先拒絕,然后再允許。

下面的命令列出各個(gè)用戶的 sugroups 和 groups 屬性:

alpha, bravo, charlie

# lsuser -a sugroups groups alpha
alpha sugroups=ALL groups=staff,sun

# lsuser -a sugroups groups bravo
bravo sugroups=ALL groups=staff,sun

# lsuser -a sugroups groups charlie
charlie sugroups=!sun,ALL groups=staff
 

現(xiàn)在,如果用戶 delta(他不是受限制的組 sun 的成員)嘗試通過(guò) su 變成用戶 charlie 而且他知道密碼,那么身份驗(yàn)證會(huì)成功:

# lsuser -a sugroups groups delta

delta sugroups=ALL groups=staff,water,fire,mobgrp
 

作為用戶 delta

$ id
uid=220(delta) gid=1(staff) groups=206(water),207(fire),215(mobgrp)
$ su - charlie
charlie's Password:
$ id
uid=211(charlie) gid=1(staff)
 

如果用戶 alpha(他是受限制的組 sun 的成員)嘗試通過(guò) su 變成用戶 charlie,那么會(huì)拒絕他訪問(wèn)。

作為用戶 alpha

$ id
uid=209(alpha) gid=1(staff) groups=214(sun)
$ su - charlie
charlie's Password:
3004-307 You are not allowed to su to this account.
3004-501 Cannot su to "charlie" : Account is not accessible.
 

現(xiàn)在通過(guò)另一個(gè)示例了解為什么可能要使用 NOT 操作符。假設(shè)我們有一個(gè)名為 ukflag 的賬戶。我們不希望屬于組 firecloud 的用戶通過(guò) su 變成用戶 ukflag,應(yīng)該只允許 earth 的成員。首先修改用戶 ukflag 的 sugroups 屬性,然后確認(rèn)修改:

# chuser sugroups="!fire,!cloud,earth" ukflag

# lsuser -a sugroups ukflag
ukflag sugroups=!fire,!cloud,earth
 

允許組 earth 的成員通過(guò) su 變成用戶 ukflag

# lsgroup -a users earth
earth users=zulu
 

現(xiàn)在看看誰(shuí)屬于組 cloudfire,我們要禁止他們通過(guò) su 變成用戶 ukflag。

# lsgroup -a users fire
fire users=plutt,echoa,golf,hotel,india,juliet,kilo

# lsgroup -a users cloud
cloud users=hotel,india
 

現(xiàn)在可以從 lsgroup 輸出看出只允許以下用戶通過(guò) su 變成用戶 ukflagzulu。還可以從 lsgroup 輸出看出拒絕以下用戶通過(guò) su 變成用戶 ukflagplutt,echoa,golf,hotel,india,juliet,kilo。

現(xiàn)在,作為用戶 pluttfire 組的成員)操作:

$ id
uid=230(plutt) gid=1(staff) groups=206(water),207(fire)
$ su - ukflag
ukflag's Password:
3004-307 You are not allowed to su to this account.

3004-501 Cannot su to "ukflag" : Account is not accessible.
 

再作為用戶 zuluearth 組的成員)操作:

$ id
uid=228(zulu) gid=1(staff) groups=209(earth)
$ su - ukflag
ukflag's Password:
$
 

這說(shuō)明可以使用 NOT 操作符進(jìn)一步調(diào)整通過(guò) sugroups 實(shí)現(xiàn)的 su 訪問(wèn)控制。

#p#

不需要密碼

在提供 su 訪問(wèn)時(shí),可能不希望允許其他用戶知道要通過(guò) su 切換到的賬戶的密碼。對(duì)于應(yīng)用程序賬戶尤其如此,應(yīng)用程序的支持用戶需要獲得訪問(wèn)權(quán)以解決問(wèn)題??梢允褂?sudo 讓這些用戶得到訪問(wèn)授權(quán),而不需要知道目標(biāo)賬戶的密碼。

假設(shè)有支持用戶 alpha, bravo,charlie,他們都屬于組 app_supp。他們的職責(zé)要求他們能夠訪問(wèn)生產(chǎn)環(huán)境賬戶:ukflag。編輯 /etc/sudoers 文件,設(shè)置以下條目,把 rs6000 替換為自己的主機(jī)名:

%app_supp rs6000 = NOPASSWD:/usr/bin/su – ukflag
 

檢查組成員:

# lsgroup -a users app_supp
app_supp users=alpha,bravo,charlie
 

檢查用戶是否可以通過(guò) sudo 變成 ukflag

$ whoami
alpha
$ sudo -l
User alpha may run the following commands on this host:
    (root) NOPASSWD: /usr/bin/su - ukflag
$ sudo -u root su - ukflag
$ whoami
ukflag
 

在 sudo 中可以有許多 su 條目,只需用逗號(hào)分隔每個(gè) su 條目即可,如下所示:

%app_supp rs6000 = NOPASSWD:/usr/bin/su – ukflag, /usr/bin/su – ieflag, 
/usr/bin/su - plflag
 

#p#

報(bào)告 sugroup

在使用 sugroup 時(shí),檢查已經(jīng)設(shè)置的所有 sugroup 訪問(wèn)有時(shí)候很費(fèi)時(shí)間,尤其是在處理許多系統(tǒng)時(shí)。最好創(chuàng)建一個(gè)腳本,由它生成 sugroup 和成員的快照。在清單 1 中給出一個(gè)腳本,它提供現(xiàn)有的 sugroup 的概況。它原來(lái)是兩個(gè)腳本,但是我已經(jīng)把它們合并成一個(gè)腳本。此腳本使用在 “需要了解的命令” 一節(jié)中介紹的命令。

執(zhí)行此腳本時(shí),它顯示 sugroups 屬性不包含 ALL 的所有用戶。然后列出用戶的 sugroups。腳本的第二部分顯示每個(gè) sugroup 及其成員。

清單 1. su_rep1

				
#!/bin/sh
# su_rep1
list=$(cat /etc/passwd| awk -F: '{print $1}' | sort)
 
echo "user      su groups  *(Denied su access)
========================================="
#
# display user and sugroups
for loop in $list
do
sugrp=$(lsuser -a sugroups $loop | sed s/ALL//g | awk -F= '{print $2}'|sed 's/,/ /g')
 if [ "$sugrp" != "" ]
  then
sugrp=$(echo $sugrp|sed 's/!/*/g')    
printf "%-10s %-40s\n" "$loop" "$sugrp"
 
 fi
done
#
# list sugroups and members
echo "\nsugroup    sugroup members
=========================="
sugrp_list=$(lsuser -a sugroups ALL| sed s/ALL//g | awk -F= '{print $2}'| tr " " "\n" \
|sed 's/,/ /g' | sed 's/!//g'|tr " " "\n" |awk '!array [$0]++')
 
for loop in $sugrp_list
do
sugrp_list=$(lsgroup -a users $loop | awk -F= '{print $2}')
 if [ "$sugrp_list" = "" ]
    then
     sugrp_list=" -- No Members --"
 fi
printf "%-10s %-40s\n" "$loop" "$sugrp_list"
done
 

當(dāng)在我的系統(tǒng)上執(zhí)行清單 1 中的 su_rep1 腳本時(shí),產(chǎn)生的輸出如下:

user       su groups  *(Denied su access)
=========================================
charlie    *sun
dxtans     smoke
papa       syb
root       admin sysadmin
ukflag     *fire *cloud earth
xray       water earth *smoke
zulu       fire

sugroup    sugroup members
==========================
admin      dxtans
sysadmin   john,peter,jane
smoke      papa
sun        alpha,bravo
water      delta,echoa,golf,plutt
earth      zulu
fire       delta,echoa,golf,hotel,india,juliet,kilo,plutt
syb        wwpdpga1,wwpdclt2,ukflag
cloud      hotel,india,spoll
 

結(jié)束語(yǔ)

使用 sugroup 讓系統(tǒng)管理員能夠通過(guò)組成員關(guān)系控制對(duì)各個(gè)用戶賬戶的訪問(wèn)。sugroup 提供一種在系統(tǒng)上實(shí)現(xiàn)和管理安全策略的方法。在接受審計(jì)時(shí),您必須向?qū)徲?jì)人員證明對(duì)普通、應(yīng)用程序和系統(tǒng)賬戶的訪問(wèn)控制是有效的,還要展示監(jiān)視 sugroup 策略的方法。本文演示了如何使用 sugroup,還提供了一個(gè)顯示 sugroup 訪問(wèn)概況的腳本。

原文:IBMDeveloperWorks中國(guó)

【編輯推薦】

  1. FreeBSD下配置vsftpd虛擬用戶
  2. Linux用戶管理安全寶典:密碼防破解與帳號(hào)文件保護(hù)
  3. Linux查看用戶的7個(gè)命令
責(zé)任編輯:yangsai 來(lái)源: IBMDW
相關(guān)推薦

2018-08-15 14:00:18

LinuxBash系統(tǒng)管理員

2018-08-01 08:12:34

Linux管理員網(wǎng)絡(luò)管理

2019-08-13 19:34:45

容器鏡像DockerLinux

2013-04-17 14:37:39

Linux系統(tǒng)管理員susudo

2013-12-09 16:15:08

系統(tǒng)管理員WebminLinux服務(wù)

2010-12-28 13:22:46

2011-10-20 10:29:22

VMwareVMworld虛擬化

2013-06-26 09:29:30

系統(tǒng)管理員

2013-09-29 09:50:21

系統(tǒng)管理員Ubuntu JujuJuju

2010-04-12 09:33:58

系統(tǒng)管理員

2010-11-10 09:36:38

系統(tǒng)管理員守則

2012-06-06 10:41:37

系統(tǒng)管理員運(yùn)維

2013-08-20 10:11:20

Go系統(tǒng)管理員

2010-08-10 09:13:52

Unix系統(tǒng)管理員Ubuntu

2010-05-06 18:07:33

Unix命令

2010-08-11 17:11:15

2013-03-30 21:59:13

系統(tǒng)管理員必備工具iftop

2019-09-09 14:45:29

系統(tǒng)管理員SRE

2009-10-22 16:53:08

2010-12-30 14:59:44

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)