当我启动我的 Postgresql 时,需要一段时间,然后我收到这个奇怪的错误消息,我想这个文件已损坏?
[tis jan 28 20:03:56] Jonathan@Whats next?:~$ sudo systemctl start postgresql
[sudo] password for jonteyh:
[tis jan 28 20:04:25] Jonathan@Whats next?:~$ sudo -u postgres -i
ö
-bash: /etc/profile: line 14: syntax error near unexpected token `)'
-bash: /etc/profile: line 14:
-Strange characters
-bash-5.0$ ö
-bash: ö: command not found
-bash-5.0$ psql
psql (11.5 (Ubuntu 11.5-1))
Type "help" for help.
postgres=#
我该如何修复下面这个错误?
-bash: /etc/profile: line 14: syntax error near unexpected token `)'
-bash: /etc/profile: line 14:
当我执行 cat /etc/profile: 时,我在终端中得到了这样的奇怪的字符:
答案1
不知何故,您的/etc/profile
文件已被修改为直接可执行文件。这可能是由于用户错误,或有人试图通过在您连接或启动时执行程序来恶意劫持您的系统。
我会/etc/profile
用类似这样的内容替换你的(这是/etc/profile
我的 18.04 机器上未改变的文件,并且完全相同的至/etc/profile
19.10 中):
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
我还建议您将现有的 /etc/profile(现在是可执行文件)提交给 VirusTotal 进行分析后将其删除,以查看它是否实际上是可识别的恶意软件。