linux切换用户执行脚本
发布日期:2021-05-18 03:47:43 浏览次数:18 分类:精选文章

本文共 734 字,大约阅读时间需要 2 分钟。

在实际运维工作中,当以root权限执行脚本时,有时需要切换到不同用户执行对应命令或脚本。下面是切换用户的几种常用方式:

1. 使用su命令单独执行命令

这种方式最为直接,便于在单独执行命令时切换用户。
su - user -c 'command'
或无需引号:
su - user command
例子:
su - zzl -c 'whoami'
su - zzl whoami

2. 执行多个命令并对输出进行赋值

若需要对命令输出进行处理,可使用单引号包裹多个命令。
su - user -c '<command1> command2>'
单引号可以赋值输出结果,如:
su - zzl -c '<free -m user=$(whoami) echo $user>'

3. 执行脚本并切换环境

若需要切换目录或loading环境,可以指定脚本路径:
su - user -s /bin/bash script.sh
例子:
su - zzl -s /bin/bash /home/zzl/a.sh

4. 使用标准输入方式(无输出赋值支持)

这种方式适合简单命令,不支持对输出进行赋值。
su - user <<EOF command1 command2 EOF 实际示例:
su - zzl <<EOF
whoami
free -m
EOF

值得注意的是,标准输入方式无法对命令输出进行变量赋值,若需要处理输出,可结合-c选项。

无赋值示例:

su - zzl <<EOF
user=$(whoami)
echo $user
free -m
EOF
whoami
在这种情况下,$user未被赋值,实际输出会显示空白。

这些方式各有特点,选择时需根据实际需求决定。

上一篇:python管理工具pyenv
下一篇:python装饰器

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月11日 06时32分45秒