我有一个/etc/ssh/sshrc
以前使用过的脚本,它运行良好。chmod 是 755
#!/bin/bash
ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
if [[ $ip == 192.168.1.* ]] || [[ $ip == 127.0.0.1 ]] ;
then
exit
fi
echo "User $USER just logged in from $ip" | sendEmail -t [email protected] -f [email protected] -u 'SSH login detected' > /dev/null
我最近升级到了 Ubuntu 22.04,现在出现此错误:
/etc/ssh/sshrc: 5: [[: not found
然后我发现了一个类似的脚本https://gist.github.com/mplinuxgeek/f08b91d2236b742f19c63579cd727167我在if
这条语句上遇到了同样的错误。有什么想法吗?我知道它在 Ubuntu 18.04 中可以正常工作。我不确定它是否在 Ubuntu 20.04 中可以正常工作,因为自从 covid 以来,我很少使用 ssh 服务器。
编辑:看来 dash 正在运行。
$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 Feb 8 19:08 /bin/sh -> dash
答案1
我认为 steeldrivers 的评论是正确的,在这种情况下您应该将双括号替换为单括号(以及双等号):
#!/bin/sh
ip=$( echo $SSH_CONNECTION | cut -d " " -f 1 )
if [ $ip = 192.168.1.* ] || [ $ip = 127.0.0.1 ] ;
then
exit
fi
echo "User $USER just logged in from $ip" | sendEmail -t [email protected] -f [email protected] -u 'SSH login detected' > /dev/