runuser 命令详解

简介:

runuser命令
runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令仅在root用户时有用。

仅以会话PAM钩子运行,并且没有密码提示。如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败。因runuser不会运行认证和账户PAM钩子,它比su更底层。

语法:


复制代码

代码如下:

runuser -l userNameHere -c 'command'
runuser -l userNameHere -c '/path/to/command arg1 arg2'


举例来说,作为一个root用户,你也许想检查下oracle用户下的shell资源限制,输入:



复制代码

代码如下:

# runuser -l oracle -c 'ulimit -SHa'


或者监察下nginx或lighttpd web服务器限制:



复制代码

代码如下:

# runuser -l nginx -c 'ulimit -SHa'


或 

复制代码

代码如下:

# runuser -l lighttpd -c 'ulimit -SHa'


有时,root用户由于权限(安全)问题不能浏览NFS挂载的共享:



复制代码

代码如下:

# ls -l /nfs/wwwroot/cyberciti.biz/http




复制代码

代码如下:

# cd /nfs/wwwroot/cyberciti.biz/http


可能的输出:



复制代码

代码如下:

-bash: cd: /nfs/wwwroot/cyberciti.biz/http/: Permission denied


尽管如此,apache用户被允许浏览或访问挂载在/nfs/wwwroot/cyberciti.biz/http/下基于nfs的系统:



复制代码

代码如下:

# runuser -l apache -c 'ls -l /nfs/wwwroot/cyberciti.biz/http/'




复制代码

代码如下:

# runuser -l apache -c 'cd /nfs/wwwroot/cyberciti.biz/http/; vi index.php'


使用runuser命令,无需使用密码,并且,只能在root用户下使用。


可用选项:

-l: 让shell成为登录shell,用 runuser -l PAM 文件替代默认的
-g:指定主要的组
-G 追加组
-c:命令,要传到shell的单个命令
--session-command=COMMAND:使用-c传递单个命令道shell中并且不创建新的会话
-m: 不重置环境变量



     本文转自yzy121403725 51CTO博客,原文链接:http://blog.51cto.com/lookingdream/1904685,如需转载请自行联系原作者

相关文章
|
负载均衡 前端开发 应用服务中间件
【Linux】Nignx的入门&使用负载均衡&动静分离(前后端项目部署)---超详细
【Linux】Nignx的入门&使用负载均衡&动静分离(前后端项目部署)---超详细
765 1
|
3月前
|
人工智能 API 网络安全
零技术阿里云/本地部署 OpenClaw 全模态落地:MiniMax语音绘图+千问/Coding Plan模型配置实战
在AI协同逐步成为主流工作模式的当下,OpenClaw(曾用名Clawdbot、Moltbot)凭借轻量化部署、多模态交互、多模型统一调度能力,成为个人与团队高效使用AI能力的首选框架。其核心价值在于打通语音对话、图像生成、文本处理、工具调用等全链路能力,同时支持云端与本地混合部署,满足不同场景的隐私与算力需求。本文基于2026年最新实践,完整覆盖阿里云服务器部署、本地macOS/Linux/Windows11三端部署、阿里云千问大模型与免费Coding Plan模型配置、MiniMax全模态能力集成,以及各类常见问题的系统性解决方案,所有指令均可直接复制使用,无需额外调试即可完成从环境搭建到
1023 0
|
监控 Linux 数据处理
Linux中的nsenter命令:深入容器内部,实现无缝交互
`nsenter`是Linux工具,用于进入容器的命名空间,实现与容器内环境的交互。它基于Linux内核的命名空间功能,支持网络、PID等多类型隔离。`nsenter`允许在不停止容器的情况下调试和操作,如 `-t` 指定PID进入命名空间,`-n` 进入网络命名空间。示例包括使用`nsenter`查看容器进程或网络配置。使用时注意目标进程状态,理解命名空间类型,并谨慎操作。
|
存储 安全 Apache
2023-10 适用于基于 x64 的系统的 Windows Server 2012 R2 月度安全质量汇总(KB5031419)
2023-10 适用于基于 x64 的系统的 Windows Server 2012 R2 月度安全质量汇总(KB5031419)
1809 2
|
监控 Linux Shell
深入解析Linux中的machinectl命令
`machinectl`是Linux systemd中的工具,用于管理轻量级系统容器的生命周期,如虚拟机和容器。它提供启动、停止、重启等操作,并基于dbus接口与systemd交互。特点是轻量级、高隔离性及灵活性。常用命令包括`list`、`status`、`start`、`stop`等。示例:`machinectl start mycontainer`启动容器,`machinectl shell mycontainer`打开容器shell。使用时注意安全、谨慎操作、备份数据,并监控资源使用。
执行脚本出现 standard in must be a tty
出现该提示是因为你执行的脚本的时候并不是在没有对应用户的环境变量,应该在脚本中加入su - username,来加载环境变量。
763 0
|
人工智能 运维 监控
SLS 智能运维 AI 基础模型创新
SLS 全新发布运维场景基础模型,覆盖 Log、Metric、Trace 等可观测数据场景,模型提供开箱即用的异常检测、自动标注、分类和根因分析等能力;根因分析算法千级异常请求秒级定位,生产中准确率达95%;同时支持人工辅助微调,提供人工标注、结果打标修正,模型根据人工反馈自动微调,提升场景准确率。
92015 1
|
JavaScript Java Maven
nvm、node、npm之间的关系和区别
也就是说:一个 nvm 可以管理很多 node 版本和 npm 版本。
2186 0