Script to manage custom /etc/services entries.
Go to file
Rob Pearce b80bdd309c update readme with tcpdump example 2021-07-11 10:32:28 +10:00
README.md update readme with tcpdump example 2021-07-11 10:32:28 +10:00
serv.sh Initial checkin. 2021-07-11 10:20:48 +10:00

README.md

Overview

Script to manage custom /etc/services entries.

Usage

Show usage

rpearce@crom:serv$ ./serv.sh -h
usage:  ./serv.sh [OPTIONS] command [command_args]

Manage custom /etc/services entries.

  Valid commands are:   diff sync init add del query cat

   -f   Force removal of service even if multiple match.
   -w   Update system services file (/etc/services)
   -y   Same as -w

Create working area in ~/.serv/

rpearce@crom:serv$ ./serv.sh  init
Initialisation of /Users/rpearce/.serv complete.

Add a custom service

rpearce@crom:serv$ ./serv.sh add myservice 34777/udp
Added 'myservice' (34777/udp) to custom services file.

NOTE: /etc/services not touched - use -w to update it.
The following changes were NOT made:
   13921a13922,13924
   >
   > # custom services from serv.sh
   > myservice       34777/udp

Look up a custom service

rpearce@crom:serv$ ./serv.sh query myservice
Found in custom services file:
   myservice       34777/udp

Update system /etc/services with custom services

rpearce@crom:serv$ ./serv.sh -w sync

(using sudo - you may be prompted for your password)
Password:
/etc/services updated:
   13921a13922,13924
   >
   > # custom services from serv.sh
   > myservice       34777/udp

rpearce@crom:serv$ tail -5 /etc/services
#               48557-49150 Unassigned
#               49151       IANA Reserved

# custom services from serv.sh
myservice       34777/udp
rpearce@crom:serv$

Confirm updates are working

rpearce@crom:serv$ sudo tcpdump -i lo0 port 34777 &
[1] 54039
rpearce@crom:serv$ nc -v -u 127.0.0.1 34777
10:28:38.061303 IP localhost.58916 > localhost.myservice: UDP, length 1
10:28:38.061314 IP localhost.58916 > localhost.myservice: UDP, length 1
10:28:38.061318 IP localhost.58916 > localhost.myservice: UDP, length 1
10:28:38.061323 IP localhost.58916 > localhost.myservice: UDP, length 1
Connection to 127.0.0.1 port 34777 [udp/myservice] succeeded!

rpearce@crom:serv$ sudo kill 54039
4 packets captured
178 packets
rpearce@crom:serv$

Remove a custom service, and also update /etc/services

rpearce@crom:serv$ ./serv.sh -w rm myservice
Removed 'myservice' from custom services file (1 line).

(using sudo - you may be prompted for your password)
/etc/services updated:
   13924d13923
   < myservice       34777/udp

rpearce@crom:serv$ tail -5 /etc/services
com-bardac-dw   48556/udp    # com-bardac-dw
com-bardac-dw   48556/tcp    # com-bardac-dw
#                           Nicholas J Howes <nick@ghostwood.org>
#               48557-49150 Unassigned
#               49151       IANA Reserved
rpearce@crom:serv$