創建中要添加以下的項目經驗:web
當前咱們公司服務器上百臺,各個服務器上須要管理的人不少(開發+運維+架構+DBA+產品+市場),在你們同時登陸Linux服務器的時候,不一樣職能員工的水平不一樣,所以致使很不規範,root權限氾濫(幾乎大部分人都擁有root權限),常常致使文件莫名奇妙的丟失,老手和新手對服務器的熟知程度不一樣,這樣使得公司服務器安全存在很大的不穩定性,以及操做的安全性。據企業調查,50%的以上的安全問題都來自於內部。而不是外部。爲了解決以上問題,單個用戶管理權限過大的現狀,現提出用戶權限集中管理的方案。shell
咱們既但願超級用戶root密碼掌握在少數或者惟一人的手中,又但願多個系統管理員或者相關權限的的人員,能夠完成更多更復雜的與自身職能相關的工做。不至於越權操做致使系統安全隱患。數據庫
那麼如何解決多個管理員都能解決系統並且又不讓超級權限氾濫呢?這就須要sudo管理來代替或者結合su命令來完成這樣苛刻且必要的服務器用戶管理需求。apache
針對公司裏面不一樣部門,根據員工的具體工做職能(例如:開發,運維數據庫管理員等),分等級、層次的的實現對Linux服務器管理權限的最小化和規範化。這樣既減小了運維管理的成本,消除了安全隱患,也提升了工做效率,實現了高質量、快速化的完成項目進度以及平常的系統維護。api
說明:實施方案通常由積極主動發現問題的運維人員提出問題的,而後寫好方案,再召集你們討論可行性,最後肯定方案,實施部署,最後後期維護總結。安全
思想:在提出問題以前,必定要想到如何解決,一併發出來解決方案服務器
到此爲止:你應該寫完權限規劃文檔了。架構
召集相關部門的領導經過會議討論或者組織領導溝通肯定權限管理方案的可行性。須要支持的人員:運維經理或者總監,CTO的支持、各部門領導的支持。咱們做爲運維人員,拿着老師這樣類型的方案,給你們講解這個文檔。經過會議的形式作演講,慷慨激昂的演說,取得老大們的承認。纔是項目能夠實施的前提。固然,若是不實施,你也獲得了鍛鍊,老大對你積極主動的思想網站架構問題也是另眼看待的。併發
肯定方案的可行性之後,會議負責彙總,提交、審覈全部相關人員對Linux服務器的權限須要問題。負載均衡
取得老大們的支持之後,經過發郵件或者聯繫相關人員取得須要的相關員工權限。好比說:請各部門經理整理歸類本部門須要登陸的Linux的權限人員名單、職位、以及負責的業務及權限。若是說不清楚權限細節,就說負責的業務細節。這樣運維人員就能夠肯定須要是什麼權限了。
按照需求執行Linux命令程序以及公司業務服務來規劃權限和人員對應配置。
主要是運維人員根據上面蒐集的人員名單,須要的業務以及權角色,對應帳號的配置權限,實際上就是sudo配置文件。
權限方案一旦實施之後,全部員工必須經過《員工Linux服務器管理權限申請表》來申請對應的權限,肯定審批流程,規範化管理。這裏實施後,把住權限申請流程很重要,不然你們不聽話,方案實施也會泡湯的。
寫操做說明,對各部門人員進行操做講解,sudu執行命令,設計的PATH變量問題。運維提早處理好。
信息採集的結果以下:
某部門IDC權限細化方案:
目前IDC系統帳號全部的權限都是超級權限,在安全方面存在着隱患,本着「給用戶儘量少的權限但仍容許他們完成任務」的宗旨,現在對經常使用命令進行分類細化:
權限對照表格:
PROCESSES |
/bin/kill, /usr/bin/kill, /usr/bin/killall, /usr/bin/pkill, /bin/netstat, /bin/ps |
FCMD_0 |
/sbin/reboot, /sbin/shutdown, /sbin/init 0, /sbin/init 6 |
FCMD_1 |
/bin/su - adsystem,/bin/su - audit,/bin/su - huapi, /bin/su - searchcenter, /bin/su - swebNg |
FCMD_2 |
/server/script/rhy/shangxian, /server/script/rhy/shangxian/haShangxian/shangxian,
|
FCMD_3 |
/bin/cat,/bin/ls |
|
擁有權限 |
簡要說明 |
普通開發權限 |
NOPASSWD:FCMD_1,FCMD_3,PROCESSES |
無需密碼切換到分用戶殺死進程重啓服務,查看等權限 |
開發sudo權限 |
NOPASSWD:!/bin/sudo su - root,FCMD_0 |
除了能夠切到root,蘇能夠執行除重啓機器外的全部權限 |
運維上線權 |
NOPASSWD:FCMD_1,FCMD_2,FCMD_3,PROCESSCE |
無密碼切換到分用戶,切換到負載均衡,重啓服務 |
運維超級權 |
NOPASSWD:ALL |
全部權限 |
分用戶權限 |
NOPASSWD:PROCESSER, /run/apache/bin/apachectl -k start |
分用戶殺死和啓動進程 |
作了以下的測試結果:
建立了三個普通分用戶t1,t2,t3, shell腳本以下:
#create three user t1 t2 and t3
for u in t1 t2 t3
do
useradd $u
echo "123"|passwd --stdin $u
done
建立了四個權限測試用戶,爲普通開發權限、開發sudo權限,運維上線權限,運維超級權限
#create develope users and operators as test
for name in ordinary_develop sudo_develop ordinary_operator root_operator
do
useradd $name;
echo "123"|passwd --stdin $name;
done
先在文本文件中編輯visodu的設置:
#set command by option
Cmnd_Alias PROCESSER = /usr/sbin/useradd,/usr/sbin/userdel
Cmnd_Alias FCMD_0 = /sbin/reboot, /sbin/shutdown, /sbin/init 0, /sbin/init 6
Cmnd_Alias FCMD_1 = /bin/su - t1, /bin/su - t2, /bin/su - t3
Cmnd_Alias FCMD_2 = /server/script/rhy/shangxian, /server/script/rhy/shangxian/haShangxian/shangxiain
Cmnd_Alias FCMD_3 = /bin/cat, /bin/ls
#show HOST
#Host_Alias SERVICE = smtp, smtp2, moban
#set users
User_Alias ORDINARY_DEVELOP = ordinary_develop
User_Alias SUDO_DEVELOP = sudo_develop
User_Alias ORDINARY_USERS = t1, t2, t3
User_Alias ORDINARY_OPERATOR = ordinary_operator
User_Alias ROOT_OPERATOR = root_operator
#Runas_Alias OP = root
#set authority
ORDINARY_DEVELOP SERVICE=(OP) NOPASSWD:FCMD_1,FCMD_3,PROCESSER
SUDO_DEVELOP SERVICE=(OP) NOPASSWD:!/bin/sudo su - root,!/bin/sudo su -,FCMD_0
ORDINARY_OPERATOR SERVICE=(OP) NOPASSWD:FCMD_1,FCMD_2,FCMD_3,PROCESSER
ROOT_OPERATOR SERVICE=(OP) NOPASSWD:ALL
ORDINARY_USERS SERVICE=(OP) NOPASSWD:PROCESSER, /run/apache/bin/apachectl -k start
再使用visodu進行編輯配置
登陸sudo_develop測試權限:
測試結果很不錯,很好的控制住了用戶的權限。