假设有人在.bashrc
阻止他(或她)通过登录ssh
(即,由于文件中的错误,ssh 登录退出)。是否有任何方法可以让该人无需执行它即可登录(或者.bashrc
因为一个运行另一个),或者以其他方式删除/重命名/使文件无效?
假设您无法物理访问该机器,并且这是唯一具有 ssh 访问权限的用户帐户。
供参考:.bash_profile
包括.bashrc
:
[[ -f ~/.bashrc ]] && . ~/.bashrc
编辑:我尝试过的事情:
ssh user@host "rm ~/.bashrc"
scp nothing user@host:/RAID/home/tom/.bashrc
ssh user@host "/bin/bash --norc"
全部都给出错误:
/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
答案1
我认为你唯一的选择是:
以另一个用户身份 ssh 登录并 su 到您的帐户;
如果主机上启用了相关服务,则使用 ftp 或 smbclient 之类的工具;
在开放的网络服务中找到开放的漏洞并利用它:)。
让管理员修复该问题。
答案2
ssh -t username@hostname /bin/sh
对我有用。
答案3
我遇到过同样的问题,但不知怎么就解决了。我使用 ssh 访问系统,登录系统后立即按住 Ctrl+c。然后,~/.bashrc 未被读取,我能够对其进行修改。
答案4
我使用已发布的 CVE 通过我安装的网络监控软件中的 Web 界面以 root 身份执行命令。 rm /RAID/home/tom/.bashrc
然后我可以登录并使用 svn 恢复我所做的更改。