zoukankan      html  css  js  c++  java
  • 如何以nobody用户执行命令?

    最近在logstash中使用nobody用户启动logstash,一想,nobody用户的shell不是/sbin/nologin吗? 不能登录执行命令呀?

    于是看了一下它的启动脚本,是使用其他方式进行的。。。

    玩了几年linux竟然还不知道chroot可以干这事,只知道chroot将根目录切换到某一位置,,汗颜。。

    使用su -l nobody -c "命令"方式

    然,nobody用户的shell是/sbin/nologin,执行命令失败

    # su -l nobody -c "/usr/bin/ls /tmp"
    This account is currently not available.

    那runuser呢? 同样不行。。。

    # runuser -c "ls /tmp" nobody
    This account is currently not available.

    最后使用chroot是可以的。。

    # chroot --userspec=99:99 / sh -c id
    uid=99(nobody) gid=99(nobody) 组=99(nobody),0(root)

    知识贵在积累。

    chroot命令帮助

    # chroot --help
    用法:chroot [选项] 新根 [命令 [参数]...]
     或:chroot 选项
    以指定的新根为运行指定命令时的的根目录。
    
      --userspec=用户:组      指定所用的用户及用户组(可使用"数字""名字")
      --groups=组列表         指定可供选择的用户组列表,形如组1,组2,组3...
          --help        显示此帮助信息并退出
          --version        显示版本信息并退出
    
    If no command is given, run '${SHELL} -i' (default: '/bin/sh -i').
    
    GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
    请向<http://translationproject.org/team/zh_CN.html> 报告chroot 的翻译错误
    要获取完整文档,请运行:info coreutils 'chroot invocation'
  • 相关阅读:
    Jmeter 02 JMeter体系结构
    从一个实例详解敏捷测试的最佳实践
    BI测试
    A/B测试与灰度发布
    性能测试之稳定性测试(可靠性测试)
    Jmeter 01
    浅谈<持续集成、持续交付、持续部署>(二)
    浅谈<持续集成、持续交付、持续部署>(一)
    Python总结
    Latex技巧:LaTex插图命令includegraphics参数详解
  • 原文地址:https://www.cnblogs.com/xiaoming279/p/6115167.html
Copyright © 2011-2022 走看看