如何通过直接SSH命令为SU用户加载个人.bash_rc

问题描述 投票:0回答:1

场景

问题

多个工程师正在使用同一台机器,并且历史记录会加载其他人的命令

  • 以普通用户身份使用 ssh 密钥通过 ssh 连接
    ssh -t loginuser@some-hostname -p 33355
  • 跑步
    SOME-HOSTNAME loginuser ~ ❯ su adminuser
  • 运行各种命令和历史记录被填满
bash ssh sudo histfile
1个回答
0
投票

解决方案

  • 创建个人
    .bashrc
    文件并设置个人HISTFILE路径。
  • 使用自定义的ssh命令

步骤

准备个人
.bashrc

mkdir /home/adminuser/bash_rc/ 
mkdir /home/adminuser/bash_histories/ 

创建/编辑文件

nano /home/adminuser/bash_rc/.bashrc_vladimir
添加内容并保存
# .bashrc
# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH

HISTFILE=$HOME/bash_histories/vladimir/.bash_history
export HISTFILE

# User specific aliases and functions
PS1="\[\033[01;31m\]SOME-HOSTNAME \[\033[01;32m\]\u \[\033[01;34m\]\W \[\033[01;35m\]>\[\033[00m\] "
alias dir='ls -alGh'

运行自定义 ssh 命令

ssh -t loginuser@SOME-HOSTNAME 'su - adminuser --session-command "bash --rcfile /home/adminuser/bash_rc/.bashrc_vladimir"'
  • ssh -t
    强制伪终端分配。
  • su - adminuser --session-command
    任何命令,这里使用bash
  • bash --rcfile /home/adminuser/bash_rc/.bashrc_vladimir"
    告诉 bash 使用个人
    .bashrc
    文件
© www.soinside.com 2019 - 2024. All rights reserved.