成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

運維 系統(tǒng)運維
系統(tǒng)管理員可以向用戶提供 su 訪問權,讓用戶能夠切換為另一個用戶,而不需要注銷當前賬戶。使用 sugroup 讓系統(tǒng)管理員能夠通過組成員限制誰可以使用 su 訪問哪個賬戶。sugroup 可以簡化 su 權限的管理,因為處理的是組而不是大量單獨的用戶。

使用 sugroup 讓系統(tǒng)管理員能夠通過組成員限制誰可以使用 su 訪問哪個賬戶。可以使用 NOT 操作符對訪問控制進行進一步限制。在接受審計時,需要報告 sugroup 中有哪些成員以及他們可以使用 su 訪問哪些賬戶。這包括生成 sugroup 成員訪問報告,這一般是遵從性任務。

sugroup 概述

系統(tǒng)管理員可以向用戶提供 su 訪問權,讓用戶能夠切換為另一個用戶,而不需要注銷當前賬戶。通常,通過設置 su 賬戶讓用戶可以臨時切換為另一個賬戶,例如 root 用戶或應用程序所有者。但是,隨著應用程序支持工作量的增長,系統(tǒng)的維護開銷也會增加。可以使用 sugroup 簡化 su 權限的管理,因為處理的是組而不是大量單獨的用戶。

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

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

#p#

需要了解的命令

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

  • lsuser
  • lsgroup

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

# lsuser -a sugroups ALL
 

在創(chuàng)建用戶時,如果沒有指定 sugroup,AIX 就采用默認設置 ALL。這意味著任何組都可以通過 su 變成此用戶。為了篩選出默認的 ALL,可以使用 'grep -v' 列出 sugroups 屬性設置為默認值 ALL 的所有用戶。把 ALL 替換為系統(tǒng)上的默認 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,這兩個組的成員可以通過 su 變成用戶 pinky

dxtans,pxcon,jgena,dcand
 

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

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

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

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

 

#p#

使用 sugroup

下面通過一個示例了解如何實現(xiàn) sugroup。

# lsuser -a sugroups dxtans
dxtans sugroups=ALL
 

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

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

看看組 smoke 的成員,其中只有一個成員:papa

# lsgroup -a users smoke
smoke users=papa
 

如果不屬于組 smoke 的另一個用戶嘗試執(zhí)行 su,就會發(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 嘗試通過 su 變成 dxtans 而且他知道密碼,那么授予訪問權:

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

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

經過前面的兩次 su 操作嘗試之后,日志文件中有兩個條目。加號表示用戶 papa 通過 su 變成用戶 dxtans 的嘗試成功了。減號表示用戶 bravo 通過 su 變成用戶 dxtans 的嘗試失敗了:

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

如果用戶嘗試通過 su 變成另一個用戶,但是收到了 'Account is not accessible' 消息,而您確定通過 sugroups 或 su 執(zhí)行的身份驗證是正確的,那么應該檢查目標用戶是否有不成功的登錄嘗試記錄。可能是密碼到期了,或者沒有設置初始密碼。

#p#

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

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

john,peter,jane
 

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

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

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

確認組成員:

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

把 root 用戶的 sugroups 設置為 sysadmin

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

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

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

#p#

最初拒絕

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

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

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

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

因為沒有任何用戶屬于組 none,而這個組作為 sugroups,所以所有普通用戶都無法通過 su 變成用戶 brown

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

sugroups  =  none
 

 

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

 

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

#p#

sugroup 限制

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

!<group_name >
 

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

下面通過一個示例看看使用 NOT 操作符的 sugroups 的效果。假設有一個名為 sun 的組。可以通過下面的 lsgroup 輸出查明這個組的成員:

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

所以成員是:

 alpha,bravo
 

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

# chuser sugroups="!sun,ALL" charlie
 

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

下面的命令列出各個用戶的 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 的成員)嘗試通過 su 變成用戶 charlie 而且他知道密碼,那么身份驗證會成功:

# 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 的成員)嘗試通過 su 變成用戶 charlie,那么會拒絕他訪問。

作為用戶 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)在通過另一個示例了解為什么可能要使用 NOT 操作符。假設我們有一個名為 ukflag 的賬戶。我們不希望屬于組 firecloud 的用戶通過 su 變成用戶 ukflag,應該只允許 earth 的成員。首先修改用戶 ukflag 的 sugroups 屬性,然后確認修改:

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

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

允許組 earth 的成員通過 su 變成用戶 ukflag

# lsgroup -a users earth
earth users=zulu
 

現(xiàn)在看看誰屬于組 cloudfire,我們要禁止他們通過 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 輸出看出只允許以下用戶通過 su 變成用戶 ukflagzulu。還可以從 lsgroup 輸出看出拒絕以下用戶通過 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:
$
 

這說明可以使用 NOT 操作符進一步調整通過 sugroups 實現(xiàn)的 su 訪問控制。

#p#

不需要密碼

在提供 su 訪問時,可能不希望允許其他用戶知道要通過 su 切換到的賬戶的密碼。對于應用程序賬戶尤其如此,應用程序的支持用戶需要獲得訪問權以解決問題。可以使用 sudo 讓這些用戶得到訪問授權,而不需要知道目標賬戶的密碼。

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

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

檢查組成員:

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

檢查用戶是否可以通過 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 條目,只需用逗號分隔每個 su 條目即可,如下所示:

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

#p#

報告 sugroup

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

執(zhí)行此腳本時,它顯示 sugroups 屬性不包含 ALL 的所有用戶。然后列出用戶的 sugroups。腳本的第二部分顯示每個 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
 

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

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
 

結束語

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

原文:IBMDeveloperWorks中國

【編輯推薦】

  1. FreeBSD下配置vsftpd虛擬用戶
  2. Linux用戶管理安全寶典:密碼防破解與帳號文件保護
  3. Linux查看用戶的7個命令
責任編輯:yangsai 來源: IBMDW
相關推薦

2018-08-15 14:00:18

LinuxBash系統(tǒng)管理員

2018-08-01 08:12:34

Linux管理員網絡管理

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服務

2010-11-10 09:36:38

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

2011-10-20 10:29:22

VMwareVMworld虛擬化

2012-06-06 10:41:37

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

2013-06-26 09:29:30

系統(tǒng)管理員

2013-08-20 10:11:20

Go系統(tǒng)管理員

2013-09-29 09:50:21

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

2010-04-12 09:33:58

系統(tǒng)管理員

2010-12-28 13:22:46

2009-10-22 16:53:08

2019-09-09 14:45:29

系統(tǒng)管理員SRE

2010-08-10 09:13:52

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

2010-08-11 17:11:15

2010-05-06 18:07:33

Unix命令

2013-03-30 21:59:13

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

2009-03-05 10:04:42

NTFS系統(tǒng)安全權限
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美三级 | 在线观看视频一区 | 日韩欧美综合 | 久久久久久黄 | 成人在线电影网站 | 色毛片| 不卡一区二区三区四区 | 中文字幕在线免费观看 | 欧美日韩高清在线观看 | 成人精品鲁一区一区二区 | 久久久久久国产精品mv | 国产在线视频一区二区 | 日本一区二区高清不卡 | 精品成人一区二区 | 在线看片国产精品 | 国产精品视频一区二区三区四区国 | 欧美高清成人 | 国产成人精品综合 | 91啪亚洲精品 | 成人欧美一区二区 | 国产精品久久精品 | 韩日一区二区三区 | 蜜臀网站| 日韩中文不卡 | 国产精品亚洲第一区在线暖暖韩国 | 日韩欧美福利视频 | 亚洲欧美久久 | 成人国产精品色哟哟 | 玖玖综合网 | 最新超碰| 黑人精品欧美一区二区蜜桃 | h视频在线免费 | 国产丝袜一区二区三区免费视频 | 久久一 | 老司机67194精品线观看 | 97视频在线观看网站 | 北条麻妃一区二区三区在线观看 | 亚洲视频www | 国产男人的天堂 | 成人免费在线 | 免费在线观看av |