您的位置:首页 > 运维架构 > 网站架构

SOA架构中, 底层linux如何切换用户身份后运行函数命令?

2011-10-24 16:59 633 查看
项目需求:

     基于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 其公钥即可,方便,但是配置复杂。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐