因此,假设有人在其中输入了一些内容以.bashrc阻止他(或她)通过 viassh登录(即 ssh 登录因文件中的错误而退出)。有没有什么方法可以让这个人在不执行它的情况下登录(或者.bashrc因为一个运行另一个),或者以其他方式删除/重命名/使文件无效?
假设您没有对机器的物理访问权限,并且这是唯一可以通过 ssh 进入的用户帐户。
供参考:.bash_profile包括.bashrc:
[[ -f ~/.bashrc ]] && . ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试过的事情:
ssh user@host "rm ~/.bashrc"
scp nothing user@host:/RAID/home/tom/.bashrc
ssh user@host "/bin/bash --norc"
Run Code Online (Sandbox Code Playgroud)
都给出错误:
/RAID/home/tom/.bashrc: line 16: /usr/local/bin/file: No such file or directory
/RAID/home/tom/.bashrc: line 16: exec: /usr/local/bin/file: cannot execute: No such file or directory
Run Code Online (Sandbox Code Playgroud)
小智 150
ssh -t username@hostname /bin/sh 为我工作。
小智 52
我遇到了同样的问题,并以某种方式能够解决它。我使用ssh访问系统,并在我登录系统后立即按住Ctrl + c。然后, ~/.bashrc 没有被读取,我可以修改它。
lar*_*sks 29
我认为你唯一的选择是:
以另一个用户身份 ssh 进入,然后 su 到您的帐户;
如果主机上启用了相关服务,则使用诸如 ftp 或 smbclient 之类的东西;
在开放的网络服务中找到一个开放的漏洞并利用它:)。
让管理员来解决问题。
Uri*_*Dev 25
您需要 a)不使用'ing或b ) 启动bash,因为这样的 shell 不会是完整的登录 shell / 没有附加tty,强制ssh附加tty:source~/.bashrc~/.bash_profile
ssh -t user@host bash --norc --noprofile
Run Code Online (Sandbox Code Playgroud)
Tom*_*ter 22
我使用已发布的 CVE 通过我安装的网络监控软件中的 Web 界面以 root 身份执行命令。 rm /RAID/home/tom/.bashrc
然后我可以登录并 svn 恢复我所做的更改。
你倒霉了。
所有 ssh 命令都运行您的登录 shell。ssh $COMMAND运行$SHELL -c $COMMAND,scp运行$SHELL -c /path/to/sftp-server,普通ssh只是运行你的外壳。
以上答案都不能绕过ssh的登录shell。您可以传递一个完整的命令行,因此它运行远程 shell 来处理命令并为命令设置工作环境。这就是 shell 的用途,也是 Unix 的方式。如果您尝试在没有外壳的情况下运行某些程序,则会遇到各种兼容性问题。同样,尝试使用 control-C 应该与调用 exit 相同,这是您试图避免的行为。如果 bash 继续它的一个错误。为什么人们一直说手册页说了一些不同的东西需要引用它,因为它在我的手册页中什么也没说。
此外,在大多数 linux 系统上,指定 /bin/sh 没有任何作用,因为这只是 bash 的符号链接!
要测试吗?将“echo”语句添加到您的 .bashrc 和 .profile 中,然后查看运行的是哪个。我做到了。这是结果。
ssh user@host将执行 .bash_profile
ssh user@host /bin/bash将执行 .bashrc,但它认为它是非交互式的(没有提示)。
ssh -t user@host /bin/bash执行 .bashrc 两次......一次在登录时,一次用于传递的命令,因此指定 ANY shell 将始终运行第一个。
ssh -T user@host与根本不指定 -T 或 -t 相同。
现在,如果您注意到,我的系统不会同时运行这两个文件,而是只运行其中一个。但是原始海报在 .bash_profile 中有一行运行 .bashrc,因此 .bashrc 无论如何都会运行。不应该把那条线放在那里!如果那条线不存在,你就不会有问题。
您需要找到另一种方式或找到管理员。这就是管理员的用途。