用戶管理生產環境實踐案例

關于用戶管理的命令回顧:
visudo

1. 關于用戶管理命令的回顧

<1> useradd命令

useradd 
-g:指定組 
-u:指定uid 
-c:注釋 
-s: 指定用戶登入后所使用的shell。 
-d: 指定用戶登入時的起始目錄 
-G: 指定用戶所屬的附加群組(也就是多群組) 
-M: 不要自動建立用戶的登入目錄 
-D: 變更預設值(不太理解) 
-e:指定賬戶的有效期限

<2> 其他命令

  • userdel

  • usermod

  • groupadd

  • groupdel

  • passwd

  • chage

  • su

  • sudo

  • visudo

  • groups

  • id

  • w,whoami,last

2. 正文

<1> 問題現狀

      當公司里的服務器有幾十甚至超過上百臺,并且能操作服務器的人員很多(開發+運維+架構+DBA),當大家登陸使用Linux服務器時,不同職位的員工水平不同,導致操作不符合規范,不同部門的人員的服務器權限沒有明確的規范,經常導致文件丟失,這樣導致服務器的安全存在很大問題。為了解決以上問題,單個用戶管理權限過大現狀,現提出針對Linux服務器用戶權限集中管理的解決方案。

<2> 需求分析

      生產環境中,我們既希望root密碼掌握在少數人手中,又希望多個服務器系統管理員或者相關職能的人,能夠完成更多與自身職能相關的服務器工作,又不導致越權操作導致服務器安全隱患。

      在此就需要sudo管理來和su來一起完成生產環境服務器對用戶的管理需求。

<3> 實現方針

      生產環境中,應該針對不同部門(開發部門,運維部門,DBA,網絡部門等)的不同職能的工作人員(項目經理,開發主管,運維主管,架構師,DBA,網絡工程師,開發工程師,運維工程師等),分等級的分配服務器的權限,盡量使對應人員的服務器權限最小化。

      這樣即減少了服務器安全隱患,又讓不同部門不同職能的工作人員提升工作效率,提升項目進度。

<4>. 實施過程

(1)信息收集

      1.1 各部門收集匯總不同職能的工作人員所需要的服務器權限,并有各部門負責人審核對應員工的服務器權限需求。并且整理成表格如下,之后針對此表格舉行會議進行終審。

      舉例的表格如下:

姓名 價格 jiage shuliang
張三 php中級開發 旅游業務開發 上傳文件到Nginx
王五 開發經理 **項目負責 ALL,但不能修改密碼

      1.2審核通過后,運維部門根據表格進行相關人員的測試服務器權限配置,也就visudo來進行配置。配置完成后運維部門負責人進行審核并交由測試部門測試,匯報相關結果。測試環境沒有出現問題后,配置正式服務器環境,并進一步交由測試部門測試并給出結果。相關人員服務器權限存入數據庫并備份。

      1.3方案實施后,新入員工須通過《員工服務器管理權限申請表》來申請對應的權限,并將結果記錄進數據庫。相關人員的服務器權限變動須提交部門負責人審批,并將結果實時記錄進入數據庫。

      1.4運維部門針對服務器權限寫出文檔,并對相關人員進行培訓。

權限分配審核結果的權限分配舉例(不同公司根據不同業務討論給出,這里不羅列給出):

zhineng master
初級運維 /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig…
高級運維 /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,/bin/mount,/usr/bin/yum,/bin/umount
運維經理 ALL
開發 /sbin/service,/sbin/chkconfig,tail /app/log*,grep /app/log*,/bin/cat,/bin/ls
(2)模擬用戶測試

測試建立3個初級運維,1個高級運維,1個網絡工程師,1個運維經理,方便起見,密碼統一設置為111111

for user in junSa001 junSa002 junSa003 senSa001 net001 saManager001do    useradd $user    echo "111111"|passwd --stdin $userdone

之后建立5個開發人員,屬于phpers組

groupadd -g 666 phpersfor n in `seq 5`do    useradd -g phpers php00$n    echo "111111"|passwd --stdin php00$ndone

(以下所有配置寫入visudo)定義各個部門各個職能可執行的命令組:

##Cmnd_Alias 初級運維命令組
Cmnd_Alias JY_CMD_1 = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig

##Cmnd_Alias 高級運維命令組
Cmnd_Alias SY_CMD_1 = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,/bin/mount,/usr/bin/yum,/bin/umount

##Cmnd_Alias 開發命令組
Cmnd_Alias KF_CMD_1 = /sbin/service,/sbin/chkconfig,tail /app/log*,grep /app/log*,/bin/cat,/bin/ls

之后給用戶組定義別名:

##User_Alias 
User_Alias CHUJIADMINS = junSa001 junSa002 junSa003
User_Alias GWNETADMINS = net001

##phpers組
User_Alias CHUJI_KAIFA = %phpers

定義OPERATOR,執行root的權限命令

##Runas_AliasRunas_Alias OP = root

接下來就是主配置了:

CHUJIADMIS   ALL=(OP)  JY_CMD_1 
GWNETADMINS  ALL=(OP)  SY_CMD_1
CHUJI_KAIFA  ALL=(OP)  KF_CMD_1 
kaifaManager ALL=(ALL) ALL,!/usr/bin/passwd,!/usr/sbin/visudo,!/usr/bin/vi *sudoer*##....

切換到junSa001用戶,執行sudo -l命令,可以看到junSa001用戶可以執行的命令:

User chuji001 may run the following commands on this host:(root) /usr/bin/free, /usr/bin/iostat, /usr/bin/top, /bin/hostname, /sbin/ifconfig,/bin/netstat, /sbin/route

測試發現,執行sudo useradd,則沒有權限執行命令:

[chuji001@localhost ~]$ sudo useradd kkkk
Sorry, user chuji001 is not allowed to execute '/usr/sbin/useradd kkkk' as root on localhost.localdomain.

原創文章,作者:21期王逸凡,如若轉載,請注明出處:http://www.www58058.com/52798

(5)
21期王逸凡21期王逸凡
上一篇 2016-10-18
下一篇 2016-10-18

相關推薦

  • 管理systemd

    管理systemd 一、systemd介紹 回顧一下centos的啟動流程  POST –> Boot Sequence –> Bootloader –> kernel + initramfs(initrd) –> rootfs –> /sbin/init 在…

    Linux干貨 2016-09-22
  • 馬哥教育網絡班20期+第2周課程練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。   答:文件操作     ls 列出目錄下的文件名      ls -l /     touch 文件不存在時生成該文件      touch a.txt   &…

    Linux干貨 2016-06-23
  • centos 6.5下搭建svn服務端

    1、先配置好yum源,svn的包在系統光盤里就有 2、yum install subversion #安裝svn的服務端程序 3、mkdir -p /application/svndata #創建svn的數據存儲目錄,名字可以隨便取 4、svnserve -d -r /application/svndata/ #指定svn的數據存儲目錄,就是剛才創建的 5、…

    Linux干貨 2015-10-08
  • LVS_DR配置

    DR : 192.168.29.150 VIP:192.168.29.100 RS1: 192.168.29.110 VIP:192.168.29.100 RS2:192.168.29.120 VIP:192.168.29.100 RS 配置 1 配置VIP [root@local ~]# ifconfig lo:0 192.168.29.100 netma…

    2017-06-30
  • Bind配置和基本應用

    BIND的安裝配置:    BIND: Berkeley Internet Name Domain,  ISC.org        dns: 協議      &nbsp…

    Linux干貨 2017-05-30
  • 新鮮出爐的一篇好PPT,MySQL Optimizer團隊力作

    新鮮出爐的一篇好PPT,MySQL Optimizer團隊Senior Principal Software Engineer ?ystein同學親自操刀完成的《How to Analyze and Tune MySQL Queries for Better Performance》內容值得期待,有實現分析,有實戰用例。有需要的朋友可以點擊下載! 下載地址:…

    Linux干貨 2015-02-27
欧美性久久久久