通过 SSH 连接时防止 .bash_profile 执行
Prevent .bash_profile from executing when connecting via SSH
我有几台服务器 运行 Ubuntu 18.04.3 LTS。虽然自动登录被认为是不好的做法,但我理解其中的风险。
我已完成以下操作以自动登录用户:
sudo mkdir /etc/systemd/system/getty@tty1.service.d
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf
然后我将以下内容添加到文件中:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin my_user %I $TERM
Type=idle
然后,我编辑以下文件,让用户能够自动启动一个程序:
sudo nano /home/my_user/.bash_profile
# Add this to the file:
cd /home/my_user/my_program
sudo ./program
当服务器启动时,这在控制台上运行良好,但是,当我通过 SSH 连接到服务器时,启动了相同的程序,我不希望这样。
最简单的解决方案是使用不同的用户进行 SSH,但是当我使用相同的用户进行 SSH 时,有没有办法阻止程序运行?
简单的方法是检查变量 ssh 集的环境;有几个。
# only run my_program on login if not connecting via ssh
if [ -z "$SSH_CLIENT" ]; then
cd /home/my_user/my_program && sudo ./program
fi
我有几台服务器 运行 Ubuntu 18.04.3 LTS。虽然自动登录被认为是不好的做法,但我理解其中的风险。
我已完成以下操作以自动登录用户:
sudo mkdir /etc/systemd/system/getty@tty1.service.d
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf
然后我将以下内容添加到文件中:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin my_user %I $TERM
Type=idle
然后,我编辑以下文件,让用户能够自动启动一个程序:
sudo nano /home/my_user/.bash_profile
# Add this to the file:
cd /home/my_user/my_program
sudo ./program
当服务器启动时,这在控制台上运行良好,但是,当我通过 SSH 连接到服务器时,启动了相同的程序,我不希望这样。
最简单的解决方案是使用不同的用户进行 SSH,但是当我使用相同的用户进行 SSH 时,有没有办法阻止程序运行?
简单的方法是检查变量 ssh 集的环境;有几个。
# only run my_program on login if not connecting via ssh
if [ -z "$SSH_CLIENT" ]; then
cd /home/my_user/my_program && sudo ./program
fi