• 如何以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'
  • 相关阅读:
    使用cout进行格式化
    20175324 《Java程序设计》第3周学习总结
    20175324第二周学习总结
    第三周学习总结
    JAVA第二周学习总结
    20175330第一周学习总结。
    20175330第一周学习总结
    指针
    数组总结(一)
    数组练习题A财务管理
  • 原文地址:https://www.cnblogs.com/xiaoming279/p/6115167.html
Copyright © 2020-2023  润新知