【问题标题】:Bash script commands didnt execute after user switching command用户切换命令后未执行 Bash 脚本命令
【发布时间】:2020-11-03 12:16:46
【问题描述】:

我正在尝试通过 bash 脚本自动化我的一些日常工作。为此,我需要创建以下逻辑脚本

  1. 从 root 用户切换到另一个 linux 用户
  2. 打开指定路径

这是我的代码logic.sh

#! /bin/bash 
su another_user
cd /home/another_user #tried with sudo too 

logic.sh 执行后

. logic.sh

我看到 root 用户切换到 another_user 但我留在 /root 目录中

我做错了什么或 bash 脚本不适合用户切换逻辑具有的自动化逻辑

【问题讨论】:

  • 如果你想自己运行 su,它会让你在执行 su 之前的目录中。如果要移动到该用户的主目录,请使用 su - another_user
  • Наглый Спамер:您是否尝试过使用sudo,正如我在回答中显示的那样?

标签: bash


【解决方案1】:

在执行su 时,您将启动一个新的shell。当您从该 shell 退出时,脚本 login.sh 将继续使用 cd /home/another_user。您可以使用sudo -u another_user command_to_execute 以其他用户身份执行命令。

这是一个如何运行bash 以提供多个命令的示例:

sudo -u another_user /bin/bash<<EOF
cd
pwd
ls
EOF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 2011-12-30
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2017-01-04
    • 2012-12-11
    • 1970-01-01
    相关资源
    最近更新 更多