FREEBSD 创建新端口

FREEBSD 创建新端口

这里有一个脚本,我想在 freebsd 中将其创建为端口,然后将其制作为包,以便我可以在某些机器上安装。脚本如下。

#!/usr/local/bin/bash
if [ ! -f "/suid.old" ]
then
find / -perm -4000 -o -perm -2000 -ls > /suid.old
else
find / -perm -4000 -o -perm -2000 -ls > /suid.new
diff suid.old suid.new > newchanges
fi
exit 0
if [ -s "/newchanges" ]
then
  mail -s "changes has occured" [email protected]
else
  mail -s "No changes has occured" [email protected] /newchanges
fi

我怎样才能做到这一点?

答案1

如果您只安装一个小脚本,我建议您手动安装。您可以使用文件shar,但这似乎有点过头了。

我看到的最大问题是,首先,它将bash位于不同系统上的不同位置,但是脚本中没有任何特定于 Bash 的内容,因此您可以将 shebang 更改为:

#!/bin/sh

或者

#!/usr/bin/env bash

为了便于携带。

其次,你需要为剧本选择一个地点。我觉得这个地点/usr/local/bin和任何地点都一样好。

第三,您需要chown设置所有权和chmod权限。

第四,您应该为输出文件选择更好的位置。如果它们仅供临时使用,则应在 中创建它们,/tmp而不是您拥有suid.oldsuid.new要去的根目录或您要去的当前目录newchanges。否则,var您可能希望在 中的某个地方放置更多持久数据。也许/var/local/suid

第五,exit阻止第二个if被评估,因此永远不会发送任何邮件。

第六,您可能希望mv suid.new suid.old在某个时候进行比较,以便下次检查时比较最近保存的数据。

第七,最后一个邮件命令应该将文件通过管道传输或重定向。它不能用作参数。并且两个邮件命令应该互换,这样您就不会在文件为空时发送邮件,也不会在文件不为空时发送邮件。

if [ -s "/newchanges" ]
then
  mail -s "No changes have occurred" [email protected] < /path/to/newchanges
else
  mail -s "changes have occurred" [email protected]
fi

答案2

一个 shell 脚本的端口太小了——正如 Dennis 所说,我会根据需要将其复制到各个机器上(或者手动创建一个包,但这很麻烦)。

我也不确定它是否具有足够的通用实用性以将其纳入官方端口集合(特别是,作为日常安全审计的一部分,已经有“setuid 二进制文件”检查)。

综上所述,可以找到有关创建端口的详细信息在《波特手册》中,并且您可以随时为您的站点推出本地端口。

相关内容