最近在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=: / sh -c id
uid=(nobody) gid=(nobody) 组=(nobody),(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'

如何以nobody用户执行命令?的更多相关文章

  1. [sh]rm -rf*的防护和普通用户执行命令

    尽量用普通用户执行,因为普通用户无法删除root的文件,避免误删除 rm -rf 不可取, 尽量find+rm -rf 尽量cd && rm -rf * 加上逻辑 cd /tmp/re ...

  2. linux 如何指定nologin用户执行命令

    在linux中建立网站时,我们一般分配一个www之类的用户给网站应用程序. 如果我们使用root或者具有管理员权限的账号在网站目录下去创建文件时,会遇到各种权限问题. 这时我们可以切换到www用户,这 ...

  3. shell脚本里切换用户执行命令的注意事项

    功能说明:用root用户执行一个脚本,脚本里需要切换到普通用户DT去执行其他命令,其中就用到了EOF,用法如下: #!/bin/bash su - DT<<EOF cd apache-to ...

  4. nologin用户执行命令

    使用su su -s 是指定shell,这里www用户是nologin用户,是没有默认的shell的,这里指定使用/bin/bash, -c 后面接需要运行的命令, 后面www是用www用户来运行 s ...

  5. linux指定nologin用户执行命令

    为了安全,使用nologin账号来运行程序, su -s /bin/bash -c "ls" www 这条命令到底做了什么呢?su -s 是指定shell,这里www用户是nolo ...

  6. sudo 其他用户执行命令

    sudo -E -u clouder /home/clouder/vs/program/chatserver/bin/startup.sh -E 加载用户环境变量

  7. ansible 远程以普通用户执行命令

    1. ansible 10.0.0.1 -m raw -a "date" -u www 2.在ansible的主机配置文件中指定ssh_uservi/etc/ansible/hos ...

  8. ansible远程切换用户执行命令

    ansible test -l 10.0.10.1 -e "ansible_become_user=www" -m shell -a "/data/publish/pub ...

  9. linux下指定特定用户执行命令

    虽然很简单但是百度找的大部分不能用,我是没找到,后来从google找到的 sudo -H -u www bash -c 'nohup /home/web/ke/upfileserver /home/w ...

随机推荐

  1. STL中algorithm里的查找

    首先,选择查找算法时,区间是否排序是一个至关重要的因素.可以按是否需要排序区间分为两组: A. count,find B. binary_search,lower_bound,upper_bound, ...

  2. c/c++模板的定义和实现分开的问题及其解决方案

    注意c/c++模板的定义和实现- -                                       定义一个类一般都是在头文件中进行类声明,在cpp文件中实现,但使用模板时应注意目前的C ...

  3. 什么是smarty?

    什么是smarty? Smarty是一个使用PHP写出来的模板PHP模板引擎,由PHP.net官方提供 ,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程 序员同美工分离,使用的程序员改 ...

  4. Asp.Net Form验证不通过,重复登录

    问题产生根源: 当然,其实应该需要保持线上所有机器环境一致!可是,写了一个小程序.使用的是4.5,aysnc/await实在太好用了,真心不想把代码修改回去. so,动了念头,在这台服务器上装个4.5 ...

  5. A+B

    Problem Description Calculate A + B. Input Each line will contain two integers A and B. Process to e ...

  6. iOS开发小技巧--即时通讯项目:消息发送框(UITextView)高度的变化; 以及UITextView光标复位的小技巧

    1.即时通讯项目中输入框(UITextView)跟随输入文字的增多,高度变化的实现 最主要的方法就是监听UITextView的文字变化的方法- (void)textViewDidChange:(UIT ...

  7. mysql数据库行级锁的使用(二)

    项目上的另外一个需求是: 在做统计的时候需要将当前表锁定不能更新当前表记录 直接上代码 package com.robert.RedisTest; import java.sql.Connection ...

  8. 学习Spring(二) 调用静态工厂方法创建Bean

    1,创建抽象的产品类 package com.robert.spring.shop; public abstract class Product { } 2,创建具体产品类 package com.r ...

  9. 100722B

    在stack里套set,然后每次根据他的操作,在set里操作,把括号hash,插入,输出set的size-1 #include<iostream> #include<set> ...

  10. Ajax工作原理(转)

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...