注释中的分号引起了hosts.allow中的错误

问题描述

我正在尝试自动执行hosts.allow中的条目(我要添加一组预定义的IP)。我的脚本执行良好,并在hosts.allow-

中写入以下条目
ALL:A.B.C.D      #AddedByNayasa-06-Aug-2020(00:36:58)
ALL:W.X.Y.Z      #AddedByNayasa-06-Aug-2020(00:36:58)

其中A,B,C,D,W,X,Y,Z是公共IP的数量。 #后面的文本是脚本添加标记,以使用户知道它不是由人而是由脚本添加的。 问题是由于时间戳中的分号引起的。 sshd在/ var / log / secure中给出以下错误-

/etc/hosts.allow,line 14: bad option name: "36"

我无法理解sshd为什么不将分号视为注释的一部分,而忽略了它,因为它是在哈希之后编写的。一些线索会很有帮助。而且由于此错误,我无法建立ssh连接。

解决方法

来自hosts.allow(5) man page

空白行或开始带有“#”字符的行将被忽略。这使您可以插入注释和空格,以使表更易于阅读。

该行必须以#开头才能进行注释,但不允许在规则中间插入它们。

因此,您应该更改脚本以编写类似以下内容的

#AddedByNayasa-06-Aug-2020(00:36:58)
ALL:A.B.C.D  
#AddedByNayasa-06-Aug-2020(00:36:58)    
ALL:W.X.Y.Z      

或更紧凑:

#AddedByNayasa-06-Aug-2020(00:36:58)
ALL:A.B.C.D  
ALL:W.X.Y.Z 
#EndAddedByNayasa