之前发现 fish bash 交互做的挺不错的然后打算用段时间,装完了后 chsh 改默认 shell,结果另一个员工把 fish 给卸了导致 root 用户无法进行 SSH 远程登录,后来经过一晚上的折腾进入 centOS 的安全模式后新增用户并赋予管理员权限才缓解过来...,有惊无险的一个 8 月 13 日晚上,主要是当时主机上有 Jira Software 而且开发商务什么的都还在用着
1
also24 2021-08-29 14:11:20 +08:00
尝试着理解了一下,这里的关键『误操作』是『另一个员工把 fish 给卸了』 是么?
|
3
also24 2021-08-29 14:15:22 +08:00
@KomiSans #2
我大致搜索了一下,似乎不需要新增用户,应该只需要进入恢复模式修改 /etc/passwd 就可以。 参考: https://www.logcg.com/archives/3003.html |
5
jdhao 2021-08-29 14:17:57 +08:00 via Android 2
你用 root 用户装的 fish shell? 那的确是作死了
|
10
heyjei 2021-08-29 14:22:31 +08:00 3
你这标题起的不对,这个和 chsh,还有 fish shell 真的没有什么关系,不是 chsh 害人不浅,是 root 敢死队害人不浅。建议标题改成“root 敢死队的误操作坑”
|
12
wangxn 2021-08-29 14:35:10 +08:00
我觉得关键是为啥会把一个公用账户的 default shell 改掉?而且还是 root 。
fish 魔改了很多东西,别人未必用得惯。 |
14
ulosggs 2021-08-29 14:36:28 +08:00
所有人都能用 root. 真牛皮
|
16
shuimugan 2021-08-29 14:53:40 +08:00
经历过一次类似的,测试机默认 shell 不知道被谁改成了 zsh,然后 ssh 登不上了.幸好跑了一个 portainer,通过 web 界面启动个容器把 /etc 和 /root 挂进去分析出来问题,改好之后就好了.
|
18
CEBBCAT 2021-08-29 14:59:16 +08:00 3
这跟 fish 毫无关系吧,第一个是猪队友为什么删一个 shell,第二个是为什么改公有账号的 shell,关键是它和 bash 不完全兼容啊
隔天了还认为原因出在 chsh 上,我只能说你真的需要关注你的睡眠状况了 相关:fish 用户 |
20
Kobayashi 2021-08-29 15:07:15 +08:00
这和 shell 、chsh 有个毛线关系。你们自己操作不规范怪谁。
|
22
liaojl 2021-08-29 15:26:28 +08:00
你这标题很容易让人以为是 fish 的坑,实际上这和 fish 一毛钱关系都没有,你换成 zsh 一样会有这个问题。
|
24
KomiSans OP 最可笑的是我的同事认为 fish 是流氓软件...
|
25
ooops 2021-08-29 15:53:56 +08:00 via Android
说到底还是楼主的问题。。。给服务器换小众 shell
|
28
Veneris 2021-08-29 16:04:03 +08:00
不要给 root 用户换 shell,建立自己的用户换
|
29
hxsf 2021-08-29 17:21:13 +08:00 via iPhone 2
ssh xxxx 后面可以接命令的....
|
30
KomiSans OP @hxsf ssh [email protected] -t /bin/bash
|
33
msg7086 2021-08-30 04:30:55 +08:00
这个是真的不应该,ssh 的时候直接调用 bash 就行了,又不是非得启动默认 Shell 。
|
35
shilianmlxg 2021-08-30 08:51:50 +08:00 via iPhone
@noyidoit 大佬。bash 能装自动补全之类的插件嘛
|
36
Varobjs 2021-08-30 09:27:36 +08:00
大家一起用的服务器就不要装 fish zsh,各种主题了,
你习惯不代表别人习惯的。 |
37
yEhwG10ZJa83067x 2021-08-30 10:05:23 +08:00
我就想问问,线上服务器你们也可以安装 fish OR zsh ?
|
38
snuglove 2021-08-30 10:34:31 +08:00
登录主要是 passwd 文件里边指定的 root 登录 shell,跟卸载不卸载没关系的.
看你的描述是装了 chsh 没有改成默认 shell 导致的,因为还是默认 fish,卸载之后导致 root 没有默认 shell,所以无法登陆 |
39
boris93 2021-08-30 10:35:09 +08:00 via iPhone
@KomiSans #15 一个用于内部测试的机器,上面跑着面向生产的 JIRA ?
先把 root 敢死队改了,不然迟早出大事。服务器上也老老实实就用 bash,至少别动 root 的 shell,你自己的账号随便玩 |
40
cctrv 2021-08-30 11:37:58 +08:00
沒有 VNC 的連結模式嗎?
只依賴 SSH 然後把 SSH 弄沒了。也沒 VNC 的話,只能去機房處理了。 然後各大雲服務器都有一個 VNC 的模式,相當於真實機器的終端。 |
42
cmdOptionKana 2021-08-30 13:28:40 +08:00 via Android
不是大公司小公司的区别,就算自己一个人用,也不该直接用 root
|
43
KomiSans OP @cmdOptionKana 说白了,多用户就行,root 不 root 无所谓
|
44
tomychen 2021-08-30 16:03:37 +08:00
这个问题关 fish shell 什么事?
默认的 bash 你的另一个员工给卸了,不也一样会导致这样的问题? |
45
KomiSans OP 都太爱杠...
|
47
2i2Re2PLMaDnghL 2021-08-31 01:06:29 +08:00 1
@KomiSans VNC 不需要图形化界面,可以传递伪终端的。
1. root 应避免日常使用,并彻底禁止远程登录 2. 生产服务器安装卸载和配置变更均应进行控制甚至审批(虽然 V2 不少人抱怨这茬) 3. 包管理器里可以查询这个软件是啥——不要跟我说是直接 rm 的…… 4. ssh 命令可以带命令行,不一定要使用默认 shell 这里面哪怕少出半个错都搞不出这种事儿。 |
48
2i2Re2PLMaDnghL 2021-08-31 01:17:13 +08:00
不过说起来,不存在一个 shell 读取本地配置而在远端或其他用户执行的吗?
我可以在本地配置一堆风骚的配置,包括各种 alias 、fzf 替换 ^R,ESC ESC 会调用 thefuck 之类的 enter root 之后,所有的操作都是 sudo 执行的 enter remote_user@remote_host 之后,所有实际操作都是 ssh remote_user@remote_host -t 执行的 甚至是 pushe pope 这样的 这样一种将前端(用户界面)和后端(执行器)解耦的 shell,有没有搞头? |