SOA架構中, 底層linux如何切換用戶身份後運行函數命令?

項目需求:

     基於SOA,Webservice,與底層Linux交互

     SOA中應用中存在兩類用戶,組內管理員和組內普通用戶,通過底層共享組內管理員賬號,以管理員身份執行命令,這樣管理員就可以管理組內用戶的文件和操作。 

難點:

    SOA的應用層可以管理和分配用戶角色,底層Linux如何安全無誤的共享用戶身份執行命令?

 

實際採用方案:

     假設組管理員Gmx和組用戶Gux,如何使Gux切換使用Gm1,Gm2,...Gmx用戶身份執行命令

    1 sudo方案

         首先給一個大權限用戶U,賦予切換Gm1....Gmx的身份權限,由文件/etc/sudoers進行配置。

         在Linux服務器上,啓動U身份的服務。

         通過U身份以Gmx身份執行.

        執行sudo -u Gm1 {command or function , such as : mkdir} $parameter1

     2 ssh 方案

         首先在Linux服務器上,設置訪問ssh Gm@localhost 時不需要密碼。

    http://blog.csdn.net/lsweetyy/article/details/7482376

         在Linux服務器上,啓動U身份的服務。     

         通過U身份執行ssh Gmx@localhost  command $parameter1命令即可,

         【特別注意】, 如果command命令有參數,且參數有帶空格,格式需要爲"\"$parameter1"\",或"'$parameter1'"(雙引號+單引號),而sudo 時command 的參數只需要"$parameter1"即可

評價:

      1 方案,的/etc/sudoers需要root身份來設置,如果增加sudo -u Gmn,需要root,配置時不方便

      2 方案,只需要在ssh 的賬號~目錄下,追加~/.ssh/authorized_keys 其公鑰即可,方便,但是配置複雜。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章