使用xinetd编写bash脚本用户输入



使用xinetd做一些练习/教程。我将下面的脚本设置为xinetd控制的服务。

#!/bin/bash
str1="password"
printf 'Hello...'
printf '%(%Y-%m-%d)Tn' -1
# Prompt for password that will be compared with str1.
echo "Please enter a password"
read str2
# compare strings
if [ "$str1" = "$str2" ]; then
echo "right"
else
echo "wrong"
fi

创建的文件";"检查";以下内容位于/etc/xinetd.d目录中。

service check
{
port = 41200
server = /tmp/script.sh
user = root
socket_type = stream
protocol = tcp
wait = no
only_from = 192.168.0.1
}

我在/etc/services文件中添加了以下行:check 41200/tcp

脚本在本地运行正常。当用户输入";密码";,响应是";右";以及";错误的";当输入任何其他内容时。然而,当远程主机通过telnet连接时,它似乎不起作用。总是得到回应";错误";。

我这里缺了什么吗?

telnet使用DOS行结尾。在将其与str1进行比较之前,请尝试从str2剥离尾部回车。

str2=${str2%$'r'}

相关内容

  • 没有找到相关文章

最新更新