场景

在应用部署过程中,会遇到这样的问题:前期需要root用户执行配置、初始化工作,而具体的业务应用需要使用非root用户启动。

如何解决呢?

方法

可以使用sudo,实现授权。

sudo命令授权,既可以使非超级用户执行超级用户的命令,也可以让超级用户以普通用户身份执行程序。

上面场景的解决方案具体步骤如下。

  1. 配置/etc/sudoers

    在文件末尾添加:

    root ALL=(lanyang) /data/servers/orange-agent/control

    表示root被授权,在任何机器上,执行命令/data/servers/orange-agent/control时,使用langyang用户。

    授权的语法格式:

    user machine=command

    表示user被授权在哪些machine,以什么身份(默认root),执行command。

    修改/etc/sudoers文件一般有两种方法。

    方法一 使用visudo

     可以使用visudo命令,命令行直接输入visudo,打开的就是/etc/sudoers文件,修改后,visudo会进行语法检查,并提示错误;

    方法二 直接编辑

    为了安全考虑,/etc/sudoers文件只有读权限,首先需要增加文件写权限。

    $ chmod u+w /etc/sudoers

    修改完成后,记得收回权限:

    $ chmod u-w /etc/sudoers
  2. 启动应用

    配置完成后,root用户执行如下命令:

    $ sudo –u lanyang /data/servers/orange-agent/control start

    这样应用程序就是以lanyang用户启动的。

参考

http://man.linuxde.net/sudo

http://www.heyongsheng.com/linux常用基本命令-sudo授权.html

http://blog.csdn.net/u012949658/article/details/53401888

最新文章

  1. 线段树(区间合并) LA 3989 "Ray, Pass me the dishes!"
  2. XAMPP启动mysql遇到的问题
  3. 面试题目“ABCDE × 4 = EDCBA”新解法
  4. Openstack中间DVR Part1 -- 东西走向的交通处理
  5. JQ之路——layer第三方弹窗
  6. List实现行转列的通用方案
  7. Spring Boot 之构建Hello Word项目
  8. Pycharm数据库连接错误
  9. 面向对象之组合、封装、多态、property装饰器
  10. 哈希表(Hash Map)
  11. [smf]smf论坛也很漂亮
  12. shiro--认证部分
  13. axios请求带上cookie配置
  14. andorid 手机外部储存
  15. P1312 Mayan游戏
  16. 【BZOJ】2111: [ZJOI2010]Perm 排列计数 计数DP+排列组合+lucas
  17. Mysql数据库自带四个数据库的解析
  18. php判断是否使用手机访问
  19. 无头结点的单链表(C语言)
  20. 《解读window核心编程》 之 字符和字符串处理方式

热门文章

  1. OC Foundation框架—字符串操作方法及习题
  2. 使用GAN进行异常检测——可以进行网络流量的自学习哇,哥哥,人家是半监督,无监督的话,还是要VAE,SAE。
  3. 简话Angular 03 Angular内置表达式大全
  4. tensoflow学习入门一
  5. java并发编程:线程安全管理类--原子操作类--AtomicLongArray
  6. en_o out1
  7. RowMapper使用
  8. 宇宙最帅叉叉——第五周博客 for 测试与发布(Alpha版本)
  9. MyEclipse教程:使用UML创建模块库——第一部分(一)
  10. “开始菜单”按钮今年8月将重回Windows 8