1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-07 00:58:40 +03:00

s3:script: Remove findsmb from default installation

This tool is the only client tool which requires perl. Distributions are
removing perl from the default installation now.

Also this is a wrapper around nmblookup which is obsolete in the AD
world. However it might still be used by someone so move it just to
examples/scripts/nmb/

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>

Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Mon Apr 19 14:37:04 UTC 2021 on sn-devel-184
This commit is contained in:
Andreas Schneider 2021-04-19 09:12:24 +02:00 committed by Andreas Schneider
parent aa2ab7feb1
commit cc4e6a900a
5 changed files with 38 additions and 60 deletions

View File

@ -186,13 +186,6 @@
can be used to maintain the local user database on
a Samba server.</para></listitem></varlistentry>
<varlistentry>
<term><citerefentry><refentrytitle>findsmb</refentrytitle>
<manvolnum>1</manvolnum></citerefentry></term>
<listitem><para>The <command>findsmb</command> command
can be used to find SMB servers on the local network.
</para></listitem></varlistentry>
<varlistentry>
<term><citerefentry><refentrytitle>net</refentrytitle>
<manvolnum>8</manvolnum></citerefentry></term>

View File

@ -5,7 +5,6 @@ manpages='''
manpages/cifsdd.8
manpages/dbwrap_tool.1
manpages/eventlogadm.8
manpages/findsmb.1
manpages/idmap_ad.8
manpages/idmap_autorid.8
manpages/idmap_hash.8

View File

@ -1,4 +1,4 @@
#!@PERL@
#!/usr/bin/env perl
#
# Prints info on all smb responding machines on a subnet.
# This script needs to be run on a machine without nmbd running and be
@ -13,14 +13,14 @@
# local master browsers for that workgroup. There will be an "*" in front
# of the workgroup name for machines that are the domain master browser for
# that workgroup.
#
#
# Options:
#
# -d|-D enable debug
# -r add -r option to nmblookup when finding netbios name
#
$SAMBABIN = "@BINDIR@";
$SAMBABIN = "/usr/bin";
for ($i = 0; $i < 2; $i++) { # test for -d and -r options
$_ = shift;
@ -38,7 +38,7 @@ if ($_) { # set broadcast address if it was specified
######################################################################
# do numeric sort on last field of IP address
sub ipsort
sub ipsort
{
@t1 = split(/\./,$a);
@t2 = split(/\./,$b);
@ -48,7 +48,7 @@ sub ipsort
# look for all machines that respond to a name lookup
open(NMBLOOKUP,"$SAMBABIN/nmblookup $BCAST '*' --debuglevel=0|") ||
open(NMBLOOKUP,"$SAMBABIN/nmblookup $BCAST '*' --debuglevel=0|") ||
die("Can't run nmblookup '*'.\n");
# get rid of all lines that are not a response IP address,
@ -68,10 +68,10 @@ foreach $ip (@ipaddrs) # loop through each IP address found
# find the netbios names registered by each machine
open(NMBLOOKUP,"$SAMBABIN/nmblookup $R_OPTION -A $ip --debuglevel=0|") ||
open(NMBLOOKUP,"$SAMBABIN/nmblookup $R_OPTION -A $ip --debuglevel=0|") ||
die("Can't get nmb name list.\n");
@nmblookup = <NMBLOOKUP>;
close NMBLOOKUP;
close NMBLOOKUP;
# get the first <00> name
@ -80,7 +80,7 @@ foreach $ip (@ipaddrs) # loop through each IP address found
if ($_) { # we have a netbios name
if (/GROUP/) { # is it a group name
($name, $aliases, $type, $length, @addresses) =
($name, $aliases, $type, $length, @addresses) =
gethostbyaddr(pack('C4',split('\.',$ip)),2);
if (! $name) { # could not get name
$name = "unknown nis name";
@ -92,7 +92,7 @@ foreach $ip (@ipaddrs) # loop through each IP address found
/(.{1,15})\s+<00>\s+/;
$name = $1;
$name =~ s/^\s+//g;
}
}
# do an smbclient command on the netbios name.
@ -146,7 +146,7 @@ foreach $ip (@ipaddrs) # loop through each IP address found
} else { # no netbios name found
# try getting the host name
($name, $aliases, $type, $length, @addresses) =
($name, $aliases, $type, $length, @addresses) =
gethostbyaddr(pack('C4',split('\.',$ip)),2);
if (! $name) { # could not get name
$name = "unknown nis name";
@ -157,5 +157,4 @@ foreach $ip (@ipaddrs) # loop through each IP address found
}
print "$ip".' 'x(16-length($ip))."$name\n";
}
}
}

View File

@ -13,7 +13,7 @@
<refnamediv>
<refname>findsmb</refname>
<refpurpose>list info about machines that respond to SMB
<refpurpose>list info about machines that respond to SMB
name queries on a subnet</refpurpose>
</refnamediv>
@ -26,19 +26,19 @@
<refsect1>
<title>DESCRIPTION</title>
<para>This perl script is part of the <citerefentry>
<refentrytitle>samba</refentrytitle><manvolnum>7</manvolnum></citerefentry>
suite.</para>
<para><command>findsmb</command> is a perl script that
prints out several pieces of information about machines
prints out several pieces of information about machines
on a subnet that respond to SMB name query requests.
It uses <citerefentry><refentrytitle>nmblookup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
and <citerefentry><refentrytitle>smbclient</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to obtain this information.
</para>
</refsect1>
</refsect1>
<refsect1>
<title>OPTIONS</title>
@ -49,16 +49,16 @@
<listitem><para>Controls whether <command>findsmb</command> takes
bugs in Windows95 into account when trying to find a Netbios name
registered of the remote machine. This option is disabled by default
because it is specific to Windows 95 and Windows 95 machines only.
because it is specific to Windows 95 and Windows 95 machines only.
If set, <citerefentry><refentrytitle>nmblookup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
will be called with <constant>-B</constant> option.</para></listitem>
</varlistentry>
<varlistentry>
<term>subnet broadcast address</term>
<listitem><para>Without this option, <command>findsmb
</command> will probe the subnet of the machine where
</command> will probe the subnet of the machine where
<citerefentry><refentrytitle>findsmb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is run. This value is passed to
is run. This value is passed to
<citerefentry><refentrytitle>nmblookup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
as part of the <constant>-B</constant> option.</para></listitem>
</varlistentry>
@ -68,38 +68,38 @@
<refsect1>
<title>EXAMPLES</title>
<para>The output of <command>findsmb</command> lists the following
information for all machines that respond to the initial
<command>nmblookup</command> for any name: IP address, NetBIOS name,
<para>The output of <command>findsmb</command> lists the following
information for all machines that respond to the initial
<command>nmblookup</command> for any name: IP address, NetBIOS name,
Workgroup name, operating system, and SMB server version.</para>
<para>There will be a '+' in front of the workgroup name for
machines that are local master browsers for that workgroup. There
will be an '*' in front of the workgroup name for
machines that are the domain master browser for that workgroup.
Machines that are running Windows for Workgroups, Windows 95 or
Windows 98 will
not show any information about the operating system or server
<para>There will be a '+' in front of the workgroup name for
machines that are local master browsers for that workgroup. There
will be an '*' in front of the workgroup name for
machines that are the domain master browser for that workgroup.
Machines that are running Windows for Workgroups, Windows 95 or
Windows 98 will
not show any information about the operating system or server
version.</para>
<para>The command with <constant>-r</constant> option
must be run on a system without <citerefentry>
<refentrytitle>nmbd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry> running.
</citerefentry> running.
If <command>nmbd</command> is running on the system, you will
only get the IP address and the DNS name of the machine. To
get proper responses from Windows 95 and Windows 98 machines,
If <command>nmbd</command> is running on the system, you will
only get the IP address and the DNS name of the machine. To
get proper responses from Windows 95 and Windows 98 machines,
the command must be run as root and with <constant>-r</constant>
option on a machine without <command>nmbd</command> running.</para>
<para>For example, running <command>findsmb</command>
<para>For example, running <command>findsmb</command>
without <constant>-r</constant> option set would yield output similar
to the following</para>
<programlisting>
IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION
---------------------------------------------------------------------
IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION
---------------------------------------------------------------------
192.168.35.10 MINESET-TEST1 [DMVENGR]
192.168.35.55 LINUXBOX *[MYGROUP] [Unix] [Samba 2.0.6]
192.168.35.56 HERBNT2 [HERB-NT]
@ -135,10 +135,10 @@ IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION
<refsect1>
<title>AUTHOR</title>
<para>The original Samba software and related utilities
<para>The original Samba software and related utilities
were created by Andrew Tridgell. Samba is now developed
by the Samba Team as an Open Source project similar
by the Samba Team as an Open Source project similar
to the way the Linux kernel is developed.</para>
</refsect1>

View File

@ -10,16 +10,3 @@ bld.INSTALL_FILES('${BINDIR}',
bld.SAMBA_SCRIPT('smbaddshare', pattern='smbaddshare', installdir='.')
bld.SAMBA_SCRIPT('smbchangeshare', pattern='smbchangeshare', installdir='.')
bld.SAMBA_SCRIPT('smbdeleteshare', pattern='smbdeleteshare', installdir='.')
sed_expr1 = 's#@PERL@#/usr/bin/env perl#'
sed_expr2 = 's#@BINDIR@#${BINDIR}#'
bld.SAMBA_GENERATOR('findsmb-script',
source='findsmb.in',
target='findsmb',
rule='sed -e "%s" -e "%s" ${SRC} > ${TGT}' % (sed_expr1, sed_expr2))
bld.INSTALL_FILES('${BINDIR}',
'findsmb',
destname='findsmb',
chmod=MODE_755)