# 2025-08-15-64-bit-thttpd-build.txt



             thttpd - tiny/turbo/throttling HTTP server



                    version 2.29 of 23May2018





thttpd is a simple, small, portable, fast, and secure HTTP server.



Simple: It handles only the minimum necessary to implement HTTP/1.1.



Small: See the size comparison chart at http://www.acme.com/software/thttpd/notes.html#sizes.  It also has a very small run-time size, since it does not fork and is very careful about memory allocation.



Portable: It compiles cleanly on FreeBSD 2.x/3.x, SunOS 4.1.x, Solaris 2.x, BSD/OS 2.x, Linux 1.2.x, OSF/1 (on a 64-bit Alpha), and no doubt many others.



Fast: In typical use it's about as fast as the best full-featured servers (Apache, NCSA, Netscape).  Under extreme load it's much faster.



Secure: It goes to great lengths to protect the web server machine against attacks and breakins from other sites.



It also has one extremely useful feature (URL-traffic-based throttling) that no other server currently has.



See the manual entry for more details.  See the INSTALL file for configuration and installation instructions.  Check the web page (http://www.acme.com/software/thttpd/) for updates, or add yourself to the mailing list by sending a "subscribe" to thttpd-announce-request@mail.acme.com.



Comments to:



    Jef Poskanzer  jef@mail.acme.com  http://www.acme.com/jef/



2025-07-29





	"thttpd" is secure and safe enough that even a 3rd or 4th grader should be able to compile it from source code to have "the new printing press" that publishes to the Whole Wide World! Building thttpd from source code generates a program that is optimized for the computer it will be running on! If it is built on a 32-bit OS the maximum size file that will be served will be less than 2 Gigabytes! On a 64-bit OS the file size that will be served is unlimited! Being able to say that I built my web server "thttpd" from source code is a real accomplishment for one of any age! The build is very simple and takes only a very few minutes! #1.   make clean    ### Step one.    ***** Since this program has been run before, the first command needs to be: "make clean", to clear all of the old data.*****  ###,  #2.   ./configure     ### Step two. #3.   make     ### Step three.  #4.  #   The last step demands being "root"  #4.   sudo make install    ## sudo  Step four. At this point the thttpd program has been generated. Since the source code is from the 1990s and the computers at that time are what we would call antique by our standards, thttpd will actually compile and run of the computers we have today!    ### 61

	To reduce the amount of work needed to install thttpd, I have copied the files from Acme.com and made some modifications. These files have been changed in thttpd-2.29, and these are the changes that were made! *****If you expand "thttpd-2.29.tar.gz" these changes will be missing!*****  See: cat ~/freedom/thttpd-2.29-file-changes.txt for the changes  that were made.   ### 63


		Two files from "Free Software Foundation, Inc." www.fsf.org listed the computers from that age, Copyright 1992 - 1996 "configure.guess" 15 pages, 693 lines, and Copyright 1991 - 1886 "config.sub" 19 pages, 927 lines. These files are not listed on their site now but GCC has been updated and they are not required now. "make" generates some warnings which I suppose are by design. An example is: "thttpd.c:611:12: warning" implicit declaration of function 'sigset'; which is listed earlier in the file with different variables in the preprocessor section and are listed: "#ifndef HAVE_SIGSET"     ****** note it is #ifndef  which is "if not defined"  ******  ### 66


			/* Set up handler again. */   ### 69



			(void) signal( SIGCHLD, handle chld );   ### 73



		#endif /* ! HAVE_SIGSET */      ****** the "!" means NOT so says: "NOT HAVE_SIGSET" ******   ### 77


By the time it gets to line 609, HAVE_SIGSET is still not defined :   ### 80



	609		/* Set up to catch signals. */   ### 84



	610	#ifdef HAVE_SIGSET   ### 88



    611		(void) sigset( SIGTERM, handle_term );   ### 92



    612		(void) sigset( SIGINT, handle_term );   ### 96



    613		(void) sigset( SIGCHLD, handle_chld );   ### 100



    614		(void) sigset( SIGPIPE, SIG_IGN );          /* get EPIPE instead */   ### 104



    615		(void) sigset( SIGHUP, handle_hup );   ### 108



    616		(void) sigset( SIGUSR1, handle_usr1 );   ### 112



    617		(void) sigset( SIGUSR2, handle_usr2 );   ### 116



    618		(void) sigset( SIGALRM, handle_alrm );    ### 120



	619	#else /* HAVE_SIGSET */      ### 124



	620	   (void) signal( SIGTERM, handle_term );   ### 128



    621		(void) signal( SIGINT, handle_term );   ### 132



	622		(void) signal( SIGCHLD, handle_chld );    ### 136



    623		(void) signal( SIGPIPE, SIG_IGN );          /* get EPIPE instead */    ### 140



    624		(void) signal( SIGHUP, handle_hup );   ### 144



    625		(void) signal( SIGUSR1, handle_usr1 );   ### 148



    626		(void) signal( SIGUSR2, handle_usr2 );   ### 152



    627		(void) signal( SIGALRM, handle_alrm );    ### 156



	628	#endif /* HAVE_SIGSET */   ### 160




The first time 610 	#ifdef HAVE_SIGSET     ******HAVE_SIGSET is NOT defined so it generates an error  ******   ### 165



at 619	#else /* HAVE_SIGSET */     ****** the options are again repeated   ******    ### 169



at 628	#endif /* HAVE_SIGSET */    ****** Now "HAVE_SIGSET" is set and the next time when it hits line 610 it will be defined and not have to go through the extra steps!    ******   ### 173




	The only error I found with thttpd-2.29 was the directory for "man1" was not created and once that directory was added to the computer the program would compile and work even on older machines.    ### 178




	The "README" file has the changes I made to "thttpd-2.29" and more information on "CGI" (Common Gateway Interface). See: rfc3875-CGI.txt   ### 183




pi@raspberrypi:~ $ # setup Geany preferences, load source fine into Geany (under "VIEW") then set Read Only so you do not wipe out the source file or anything in it! Been There, Done That!   ### 188



pi@raspberrypi:~ $    ### 192



pi@raspberrypi:~ $ # Move Geany to the top half of the screen. Under "Edit", then "Preferences", then "Terminal", the "Scrollback Lines" only goes to a max of 5000 lines and tends to revert to just 500 lines!   ### 196



pi@raspberrypi:~ $    ### 200



pi@raspberrypi:~ $ # Setup "Terminal" on the lower half of the screen. Under "Edit", "Preferences", "Display", I set the "Scrollback Lines" to 20000 in hopes I will be able to capture all of the process! If one types "exit" in terminal it will exit and you will loose all of the information you have not copied to a regular file! Been There, Done That!      ### 204



pi@raspberrypi:~ $    ### 208



pi@raspberrypi:~ $ # To enter a line of text in the terminal so you can save your ideas, one has to start the line with "# " or at least the "#".    ### 212
pi@raspberrypi:~ $    ### 213



pi@raspberrypi:~ $ # Since I changed the thttpd "configure" file where line 12 is changed from "/usr/local" to "/home/local", one has to change the $PATH command by adding "/home/local/sbin:/home/local/bin:" to the beginning of the $PATH original commands. Ubuntu uses the file "etc/environment" while Raspberry Pi uses "/etc/profile".   ### 217



pi@raspberrypi:~ $     ### 221

pi@raspberrypi:~ $    ### 223



pi@raspberrypi:~ $ cd /etc   ### 227

pi@raspberrypi:/etc $    ### 229



pi@raspberrypi:/etc $ cat environment   ### Ubuntu was putting the original PATH command here, so just check.   ### 233



pi@raspberrypi:/etc $    ### 237

pi@raspberrypi:/etc $    ### 239



pi@raspberrypi:/etc $ cat profile   ### 243



# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))    ### 247



# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).   ### 251



if [ "$(id -u)" -eq 0 ]; then   ### 255



  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"   ### 259



else   ### 263



  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"   ### 267



fi    ### 271



export PATH   ### 275





if [ "${PS1-}" ]; then   ### 281



  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then   ### 285



    # The file bash.bashrc already sets the default PS1.   ### 289


    # PS1='\h:\w\$ '    ### 292



    if [ -f /etc/bash.bashrc ]; then    ### 296



      . /etc/bash.bashrc   ### 300



    fi   ### 304



  else   ### 308



    if [ "$(id -u)" -eq 0 ]; then   ### 312



      PS1='# '   ### 216



    else   ### 320



      PS1='$ '   ### 324



    fi   ### 328



  fi   ### 332



fi   ### 336





if [ -d /etc/profile.d ]; then   ### 342



  for i in /etc/profile.d/*.sh; do   ### 346



    if [ -r $i ]; then   ### 350



      . $i   ### 354



    fi    ### 358



  done   ### 362



  unset i    ### 366



fi   ### 370



pi@raspberrypi:/etc $    ### 374

pi@raspberrypi:/etc $    ### 376



pi@raspberrypi:/etc $ # Both lines in "profile" will need to be changed using "sudo nano profile" and then adding: /home/local/sbin:/home/local/bin: after PATH=" and before /usr/local/sbin:/usr/local/bin: so the lines will start with:     ### 380



PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"    ### 384



The ":" colon gives the next directory for the path to search!   ### 388



pi@raspberrypi:/etc $    ### 392

pi@raspberrypi:/etc $    ### 394



pi@raspberrypi:/etc $ $PATH   ### 398



bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory   ### 402



pi@raspberrypi:/etc $    ### 406

pi@raspberrypi:/etc $    ### 408



pi@raspberrypi:/etc $ sudo nano profile   ### 412



pi@raspberrypi:/etc $    ### 416

pi@raspberrypi:/etc $    ###  418



pi@raspberrypi:/etc $ # make the changes   ### 422



pi@raspberrypi:/etc $    ### 426



pi@raspberrypi:/etc $ # Write out file "Ctrl O" for out, That is shown as "^o", hold down the control button and press the "o" button.   ### 430



pi@raspberrypi:/etc $    ### 434



pi@raspberrypi:/etc $ # After you enter "y" for yes and the file is written, then it is "^x" for "Ctrl X" to exit nano.   ### 438



pi@raspberrypi:/etc $    ### 442

pi@raspberrypi:/etc $     ### 444



pi@raspberrypi:/etc $ cat profile   ### 448



# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))   ### 452



# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).   ### 456




if [ "$(id -u)" -eq 0 ]; then   ### 461



  PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"   ### 465



else   ### 469



  PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"   ### 473



fi   ### 477



export PATH   ### 481





if [ "${PS1-}" ]; then   ### 487



  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then   ### 491



    # The file bash.bashrc already sets the default PS1.   ### 495



    # PS1='\h:\w\$ '   ### 499



    if [ -f /etc/bash.bashrc ]; then   ### 503



      . /etc/bash.bashrc   ### 507



    fi   ### 511



  else   ### 515



    if [ "$(id -u)" -eq 0 ]; then   ### 519



      PS1='# '   ### 523



    else   ### 527



      PS1='$ '   ### 531



    fi   ### 535



  fi   ### 539



fi   ### 543




if [ -d /etc/profile.d ]; then   ### 548



  for i in /etc/profile.d/*.sh; do   ### 552



    if [ -r $i ]; then   ### 556



      . $i   ### 560



    fi   ### 564



  done   ### 568



  unset i   ### 572



fi   ### 576





pi@raspberrypi:/etc $    ### 582

pi@raspberrypi:/etc $    ### 584



pi@raspberrypi:/etc $ $PATH   ### 588



bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory   ### 592



pi@raspberrypi:/etc $    ### 596

pi@raspberrypi:/etc $    ### 698



pi@raspberrypi:/etc $ # The computer has to be restarted for the new path to take effect, so make sure everything is correct!   ### 602



pi@raspberrypi:/etc $ If you are saving the "terminal" file save it now! reboot will wipe out everything that is not saved!   ### 606



pi@raspberrypi:/etc $  reboot   ### 610




pi@raspberrypi-400:~ $    ### 615

pi@raspberrypi-400:~ $ date   ### 617

Tue Aug 12 11:49:14 AM MDT 2025   ### 619

pi@raspberrypi-400:~ $    ### 621



pi@raspberrypi-400:~ $ $PATH   ### 625

bash: /home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory   ### 627

pi@raspberrypi-400:~ $    ### 629

pi@raspberrypi-400:~ $    ### 631

pi@raspberrypi-400:~ $ # The computer has restarted and a new "terminal" is created, and the "Geany" program is brought up, then make sure under "Document" "Read only" is checked! We do not want to destroy the directions!   ### 633

pi@raspberrypi-400:~ $    ### 635




pi@raspberrypi-400:~ $ date   ### 640

Tue Aug 12 11:50:23 AM MDT 2025   ### 642

pi@raspberrypi-400:~ $    ### 644

pi@raspberrypi-400:~ $     ### 646



pi@raspberrypi-400:~ $ $PATH   ### 650

bash: /home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory    ### 652

pi@raspberrypi-400:~ $     ### 654

pi@raspberrypi-400:~ $ 

pi@raspberrypi-400:~ $ # The path is correct so we can continue with the install!   ### 658

pi@raspberrypi-400:~ $    ### 660

pi@raspberrypi-400:~ $    ### 662

pi@raspberrypi-400:~ $ # "lynx" is in /bin and is a text based web browser that will run with less then 512 MB of RAM. "lynx --help" will give some directions and will be needed if one wants to operate on the "Raspberry Pi Zero 2 W" or do a build from that computer.    ### 664

pi@raspberrypi-400:~ $    ### 666

pi@raspberrypi-400:~ $    ### 668

pi@raspberrypi-400:~ $  #    *****************************   ### 670

pi@raspberrypi-400:~ $  #    *****************************   ### 672

pi@raspberrypi-400:~ $  #    *****************************   ### 674

pi@raspberrypi-400:~ $    ### 676

pi@raspberrypi-400:~ $    ### 678

pi@raspberrypi-400:~ $ #    ###     This is the beginning of the "cut and paste" process, which also includes checking or testing!  ### 680

pi@raspberrypi-400:~ $    ### 682

pi@raspberrypi-400:~ $    ### 684




pi@raspberrypi:~ $ date   ### 689
Thu Aug 14 02:05:32 PM MDT 2025   ### 690
pi@raspberrypi:~ $    ### 691


pi@raspberrypi:~ $ $PATH   ### 694
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory   ### 695
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ cat /etc/environment    ### 699
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ #####   ### 701
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ date   ### 705
Thu Aug 14 02:07:04 PM MDT 2025   ### 706
pi@raspberrypi:~ $    ### 707


pi@raspberrypi:~ $ $PATH   ### 710
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ cd /etc   ###    ### 716
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ cat environment   ### Ubuntu was putting the original PATH command here, so just check.   ###    ### 721
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ cat profile   ### 720
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
fi
export PATH

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "$(id -u)" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
pi@raspberrypi:/etc $    ### 761
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Both lines in "profile" will need to be changed using "sudo nano profile" and then adding: /home/local/sbin:/home/local/bin: after PATH=" and before /usr/local/sbin:/usr/local/bin: so the lines will start with:   ### 765
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"    ### 770
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # The ":" colon gives the next directory for the path to search!   ### 775
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ $PATH   ### 780
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ sudo nano profile   ### 786
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ # (copy, paste : /home/local/sbin:/home/local/bin:  into both lines.)
pi@raspberrypi:/etc $ # write corrections with ^o (ctl and o the letter for output)
pi@raspberrypi:/etc $ # Exit nano with ^x (ctl and x the letter for exit)
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ # make the changes   ### 793
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ # Write out file "Ctrl O" for out, That is shown as "^o", hold down the control button and press the "o" button.   ### 795
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ # After you enter "y" for yes and the file is written, then it is "^x" for "Ctrl X" to exit nano.   ### 797
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ cat profile    ### 801
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$(id -u)" -eq 0 ]; then
  PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
fi
export PATH

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "$(id -u)" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Make sure the new path is correct or you might have problems with your computer!!!   ### 840
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ $PATH   ### 844
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # The computer has to be restarted for the new path to take effect, so make sure everything is correct!    ### 849
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # reboot   ### 855
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ date   ### 860
Thu Aug 14 02:30:24 PM MDT 2025
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 




pi@raspberrypi:~ $ # reboot   ### 869
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ date   ### 873
Thu Aug 14 02:37:56 PM MDT 2025
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ $PATH   ### 879
bash: /home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ # The computer has restarted and a new "terminal" is created, and the "Geany" program is brought up, then make sure under "Document" "Read only" is checked! We do not want to destroy the directions!   ### 885
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ date   ### 890
Thu Aug 14 02:47:00 PM MDT 2025
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ $PATH   ### 895
bash: /home/local/sbin:/home/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games: No such file or directory
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ # "lynx" is in /bin and is a text based web browser that will run with less then 512 MB of RAM. "lynx --help" will give some directions and will be needed if one wants to operate on the "Raspberry Pi Zero 2W" or do a build from that computer.    ### 900
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ #    *****************************   ### 903
pi@raspberrypi:~ $ #    *****************************   ### 904
pi@raspberrypi:~ $ #    *****************************   ### 905
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    ###     This is the beginning of the "cut and paste" process, which also includes checking or testing!  ### 901
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $  date   915
Thu Aug 14 02:49:34 PM MDT 2025
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ ### The "~" shows that we are in the "home directory of 'pi'", from the beginning of the line, (/home/pi/). Line 921
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ cd /etc     ### 926
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ cat group     ### (we are looking for a group "www") 931
root:x:0:
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pi
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:pi
fax:x:21:
voice:x:22:
cdrom:x:24:pi
floppy:x:25:
tape:x:26:
sudo:x:27:pi
audio:x:29:pi,pulse
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
shadow:x:42:vnc
utmp:x:43:
video:x:44:pi,vnc
sasl:x:45:
plugdev:x:46:pi
staff:x:50:
games:x:60:pi
users:x:100:pi
nogroup:x:65534:
systemd-journal:x:999:
systemd-network:x:998:
crontab:x:101:
input:x:102:pi,lightdm
sgx:x:103:
kvm:x:104:
render:x:105:pi,vnc
pi:x:1000:
systemd-timesync:x:997:
messagebus:x:106:
_ssh:x:107:
bluetooth:x:108:
avahi:x:109:
netdev:x:110:pi
polkitd:x:996:
spi:x:995:pi
i2c:x:994:pi
gpio:x:993:pi
lightdm:x:111:
rtkit:x:112:
pipewire:x:113:
rdma:x:114:
lpadmin:x:115:pi
ssl-cert:x:116:
pulse:x:117:
pulse-access:x:118:
scanner:x:119:saned
saned:x:120:
vnc:x:992:
colord:x:121:
feedbackd:x:122:
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Since there is no group "www" with the user "(pi)" we will need to add this, getting the directions by using "addgroup --help" to see our options.   ### 1006
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ addgroup --help     ### 1011
adduser [--uid id] [--firstuid id] [--lastuid id]
        [--gid id] [--firstgid id] [--lastgid id] [--ingroup group]
        [--add-extra-groups] [--shell shell]
        [--comment comment] [--home dir] [--no-create-home]
        [--allow-all-names] [--allow-bad-names]
        [--disabled-password] [--disabled-login]
        [--conf file] [--quiet] [--verbose] [--debug]
        user
    Add a normal user

adduser --system
        [--uid id] [--group] [--ingroup group] [--gid id]
        [--shell shell] [--comment comment] [--home dir] [--no-create-home]
        [--conf file] [--quiet] [--verbose] [--debug]
        user
   Add a system user

adduser --group
        [--gid ID] [--firstgid id] [--lastgid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
addgroup
        [--gid ID] [--firstgid id] [--lastgid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
   Add a user group

addgroup --system
        [--gid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
   Add a system group

adduser USER GROUP
   Add an existing user to an existing group
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ #       *****************************   ### 1050
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # From this we get the commands we need to add a system group "www" and make "(pi)" a member of this group.   ### 1055
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ ###       We need to add a system group "www". Then make "(pi)" a member of this group.   ### 1060
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Directions:    ### 1066
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # addgroup --system
pi@raspberrypi:/etc $ #         [--gid id]
pi@raspberrypi:/etc $ #         [--conf file] [--quiet] [--verbose] [--debug]
pi@raspberrypi:/etc $ #         group
pi@raspberrypi:/etc $ #    Add a system group
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Enter:   1080
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ sudo addgroup --system www     ### sudo 1084
Adding group `www' (GID 123) ...
Done.
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Directions:   ### 1091
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # adduser USER GROUP
pi@raspberrypi:/etc $ #    Add an existing user to an existing group
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Enter:   ### 1101
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ sudo adduser pi www     ### sudo 1105
Adding user `pi' to group `www' ...
Done.
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ cat group     ### 1113
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pi
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:pi
fax:x:21:
voice:x:22:
cdrom:x:24:pi
floppy:x:25:
tape:x:26:
sudo:x:27:pi
audio:x:29:pi,pulse
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
shadow:x:42:vnc
utmp:x:43:
video:x:44:pi,vnc
sasl:x:45:
plugdev:x:46:pi
staff:x:50:
games:x:60:pi
users:x:100:pi
nogroup:x:65534:
systemd-journal:x:999:
systemd-network:x:998:
crontab:x:101:
input:x:102:pi,lightdm
sgx:x:103:
kvm:x:104:
render:x:105:pi,vnc
pi:x:1000:
systemd-timesync:x:997:
messagebus:x:106:
_ssh:x:107:
bluetooth:x:108:
avahi:x:109:
netdev:x:110:pi
polkitd:x:996:
spi:x:995:pi
i2c:x:994:pi
gpio:x:993:pi
lightdm:x:111:
rtkit:x:112:
pipewire:x:113:
rdma:x:114:
lpadmin:x:115:pi
ssl-cert:x:116:
pulse:x:117:
pulse-access:x:118:
scanner:x:119:saned
saned:x:120:
vnc:x:992:
colord:x:121:
feedbackd:x:122:
www:x:123:pi
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # Success, Group "www" has a user "(pi)" and is also less than 1000, (the number will probably be different than 123).   ### 1189
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ # *****************************   ### 1192
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 



pi@raspberrypi:/etc $ # The idea is to use the "users" accounts as if they were the header choices that are normally at the top of a web page. For my site, I have: ac0xl, delinquent-accounts, documents, downloads, freedom, memes, music, notices, pictures, rome, searles-sav-on-propane, va, and videos. The files: favicon.ico, readme.txt, and robots.txt and sitemap.xml (if you are using the IP Address option) are web site files that get added later. The idea is to make a list of the things you want on your web site and type them up so you can select the name and then copy and paste it later when all of the users get added. This will save a lot of typing and typing mistakes!   ### 1198
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ # For the initial primary user, which should be at the top of the list, one could use "a0" an "a" and a "zero", since in the "ASCII Character Set" an "a" is "61 hex" and a "zero" is "30 hex" and should be one of the normal things that should end up on the top of the list. If you are running a different Character Set, your choice might be different. The different user accounts to start with will be: a0, documents, downloads, memes, music, notices, pictures, and videos (in "list.txt"). Other "users" can be added later as your site starts to grow. ("user" is expecting a name which starts with a lower case letter.)   ### 1203
pi@raspberrypi:/etc $ 
pi@raspberrypi:/etc $ 


pi@raspberrypi:/etc $ cd ~/freedom/Acme.com/thttpd-2.29     ### 1208
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       Now that your list of ideas for your web site is growing, it is time to start the process of installing "thttpd". The first thing to do is make sure the above files in "thttpd-2.29" have all been changed. If not, make the changes and check again. All of these commands will be made in the terminal window under: "/home/(pi)/freedom/Acme.come/thttpd-2.29"     # This equates to "~/freedom/Acme.com/thttpd-2.29"   ### 1213
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ ls     ### 1219
aclocal.m4     configure     INSTALL      match.o             scripts        timers.c
cgi-bin        configure.in  install-sh   mime_encodings.h    strerror.c     timers.h
cgi-src        contrib       libhttpd.c   mime_encodings.txt  tdate_parse.c  timers.o
config.cache   extras        libhttpd.h   mime_types.h        tdate_parse.h  TODO
config.guess   fdwatch.c     libhttpd.o   mime_types.txt      tdate_parse.o  version.h
config.h       fdwatch.h     Makefile     mmc.c               thttpd
config.log     fdwatch.o     Makefile.in  mmc.h               thttpd.8
config.status  FILES         match.c      mmc.o               thttpd.c
config.sub     index.html    match.h      README              thttpd.o
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ cat ~/freedom/install.txt   ### (The directory "freedom" should be in "/home/(pi)/").   ### 1234
install.txt

# At this point you should see the above files and one called "INSTALL", which begins with:
# 1     To build:
# 2
# 3    % ./configure
# 4
# 5    Edit config.h to change the configuration options if necessary.
# 6
# 7    % make
# 8
# 9
# 10    To install:
# 11
# 12    % make install
# 13
# 14    Edit one of your system rc files to run thttpd at boot time.  Do NOT
# 15    run it from inetd, that setup is inefficient so thttpd doesn't support it.
# 16
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       ***** Since this program has been run before, the first command needs to be: "make clean", to clear all of the old data.*****  ### 1258
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       (The "%" is the computer prompt: type in: ./configure   # and then a return.)   ### 1263
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       ***** Starting the compile. *****  ### 1267
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       ***** Starting the compile. *****  ### 1272
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       make: *** No rule to make target 'clean'.  Stop.    # Or a short list of files and directories that have been removed.  ### 1277
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ date     ### 1282
Thu Aug 14 03:09:49 PM MDT 2025
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       *************** Step one.  ### 1287
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ make clean     ### Step one. 1283
for i in cgi-src extras ; do ( \
    cd $i ; \
    pwd ; \
    make  clean \
) ; done
/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src
make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src'
rm -f *.o redirect ssi phf
make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src'
/home/pi/freedom/Acme.com/thttpd-2.29/extras
make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras'
rm -f *.o makeweb htpasswd
make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras'
rm -f thttpd thttpd.o libhttpd.o fdwatch.o mmc.o timers.o match.o tdate_parse.o   mime_encodings.h mime_types.h
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # Some errors will be reported since the ARM names are not in its database and will not be optimized for the processor, but don't worry. If the file ends with an error report, look back up a few lines and it will probably say what the problem was that created the error. The easy way is to just set up this page along with a terminal screen and then copy the command and paste it onto the terminal command line. This is how I will be testing the install file, and making a copy of it if you need it.  ### 1313
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ ###     ./configure     ### Step two. "./configure" expects an executable file! - Thus: #       bash: ./configure: Permission denied     ### "freedom" has to be copied using a linux file system!!! You need to use a linux formatted file system preferably on a SD card. I later ended up recompiling "thttpd" and that is what I should have done at this point!   ### 1319
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # This can happen if you use a Windows formatted hard drive. I found this out when I tried to copy files from a hard drive and Linux said that the attributes had added execute privileges, but when I looked at the files there was no change!   ### 1324
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       *******  If you get this recopy "freedom" using linux formatted media!!! and start again!   THEN   #     *******    cd ~/freedom/Acme.com/thttpd-2.29     ###     then: make clean     ### Step one.    *******   ### 1330
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 



pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ ./configure     ### Step two. 1337
loading cache ./config.cache
checking host system type... Invalid configuration `aarch64-pc-linux-gnuoldld': machine `aarch64-pc' not recognized

checking target system type... Invalid configuration `aarch64-pc-linux-gnuoldld': machine `aarch64-pc' not recognized

checking build system type... Invalid configuration `aarch64-pc-linux-gnuoldld': machine `aarch64-pc' not recognized

checking for gcc... (cached) gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking gcc version... (cached) 10
checking how to link static binaries... (cached) unknown
checking for __progname... (cached) yes
checking how to run the C preprocessor... (cached) gcc -E
checking for fcntl.h... (cached) yes
checking for grp.h... (cached) yes
checking for memory.h... (cached) yes
checking for paths.h... (cached) yes
checking for poll.h... (cached) yes
checking for sys/poll.h... (cached) yes
checking for sys/devpoll.h... (cached) no
checking for sys/event.h... (cached) no
checking for osreldate.h... (cached) no
checking whether time.h and sys/time.h may both be included... (cached) yes
checking for dirent.h that defines DIR... (cached) yes
checking for opendir in -ldir... (cached) no
checking for /usr/local/v6/lib... no
checking for gethostbyname... (cached) yes
checking for socket... (cached) yes
checking for main in -linet6... (cached) no
checking for crypt... (cached) no
checking for crypt in -lcrypt... (cached) yes
checking for hstrerror... (cached) yes
checking for strerror... (cached) yes
checking for waitpid... (cached) yes
checking for vsnprintf... (cached) yes
checking for daemon... (cached) yes
checking for setsid... (cached) yes
checking for setlogin... (cached) no
checking for getaddrinfo... (cached) yes
checking for getnameinfo... (cached) yes
checking for gai_strerror... (cached) yes
checking for kqueue... (cached) no
checking for sigset... (cached) yes
checking for atoll... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) yes
checking for working mmap... (cached) yes
checking for select... (cached) yes
checking for poll... (cached) yes
checking if struct tm has tm_gmtoff member... (cached) yes
checking if int64_t exists... (cached) yes
checking if socklen_t exists... (cached) yes
checking whether make sets ${MAKE}... (cached) yes
checking for a BSD compatible install... (cached) /usr/bin/install -c
creating ./config.status
creating Makefile
creating cgi-src/Makefile
creating extras/Makefile
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 




pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       *******************     ### Step three.  ### 1406
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       The next step: "make" will generate more pages and should end with something like this:  ### 1412
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       The warnings will pause but should continue so do not panic, just give it time to continue!  ### 1418
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 




pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ make     ### Step three. 1426
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I. -c thttpd.c
thttpd.c: In function ‘main’:
thttpd.c:611:12: warning: implicit declaration of function ‘sigset’; did you mean ‘isset’? [-Wimplicit-function-declaration]
  611 |     (void) sigset( SIGTERM, handle_term );
      |            ^~~~~~
      |            isset
rm -f mime_encodings.h
sed < mime_encodings.txt > mime_encodings.h \
  -e 's/#.*//' -e 's/[ 	]*$//' -e '/^$/d' \
  -e 's/[ 	][ 	]*/", 0, "/' -e 's/^/{ "/' -e 's/$/", 0 },/'
rm -f mime_types.h
sed < mime_types.txt > mime_types.h \
  -e 's/#.*//' -e 's/[ 	]*$//' -e '/^$/d' \
  -e 's/[ 	][ 	]*/", 0, "/' -e 's/^/{ "/' -e 's/$/", 0 },/'
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I. -c libhttpd.c
libhttpd.c: In function ‘cgi_child’:
libhttpd.c:3557:12: warning: implicit declaration of function ‘sigset’; did you mean ‘isset’? [-Wimplicit-function-declaration]
 3557 |     (void) sigset( SIGPIPE, SIG_DFL );
      |            ^~~~~~
      |            isset
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I. -c fdwatch.c
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I. -c mmc.c
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I. -c timers.c
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I. -c match.c
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I. -c tdate_parse.c
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I.  -o thttpd thttpd.o libhttpd.o fdwatch.o mmc.o timers.o match.o tdate_parse.o  -lcrypt  
for i in cgi-src extras ; do ( \
    cd $i ; \
    pwd ; \
    make  \
	WEBDIR=/home/local/www \
	CGIBINDIR=/home/local/www/cgi-bin \
	MANDIR=/home/local/man \
	WEBGROUP=www \
) ; done
/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src
make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src'
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I.. -c redirect.c
gcc   redirect.o -lcrypt  -o redirect
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I.. -c ssi.c
gcc   ssi.o ../match.o -lcrypt  -o ssi
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I.. -c phf.c
gcc   phf.o -lcrypt  -o phf
make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src'
/home/pi/freedom/Acme.com/thttpd-2.29/extras
make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras'
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I.. -DWEBDIR=\"/home/local/www\" -c makeweb.c
gcc  makeweb.o -o makeweb -lcrypt  
gcc -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1  -I.. -DWEBDIR=\"/home/local/www\" -c htpasswd.c
gcc   htpasswd.o -o htpasswd -lcrypt 
make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras'
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 




pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       *************** Step four.  ### 1486
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 




pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       The last step demands being "root" so it is: "sudo make install" which should end with something like this:   ### sudo 1494
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 




pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ sudo make install     ### sudo  Step four. 1502
mkdir -p /home/local/sbin
/usr/bin/install -c -m 555 -o bin -g bin thttpd /home/local/sbin
mkdir -p /home/local/man/man1
mkdir -p /home/local/man/man8
/usr/bin/install -c -m 444 -o bin -g bin thttpd.8 /home/local/man/man8
for i in cgi-src extras ; do ( \
    cd $i ; \
    pwd ; \
    make  \
	WEBDIR=/home/local/www \
	CGIBINDIR=/home/local/www/cgi-bin \
	MANDIR=/home/local/man \
	WEBGROUP=www \
	install \
) ; done
/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src
make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src'
mkdir -p /home/local/www/cgi-bin
rm -f /home/local/www/cgi-bin/redirect
cp redirect /home/local/www/cgi-bin/redirect
rm -f /home/local/man/man8/redirect.8
cp redirect.8 /home/local/man/man8/redirect.8
rm -f /home/local/www/cgi-bin/ssi
cp ssi /home/local/www/cgi-bin/ssi
rm -f /home/local/man/man8/ssi.8
cp ssi.8 /home/local/man/man8/ssi.8
rm -f /home/local/www/cgi-bin/phf
cp phf /home/local/www/cgi-bin/phf
make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/cgi-src'
/home/pi/freedom/Acme.com/thttpd-2.29/extras
make[1]: Entering directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras'
rm -f /home/local/sbin/makeweb /home/local/sbin/htpasswd /home/local/sbin/syslogtocern
cp makeweb /home/local/sbin/makeweb
chgrp www /home/local/sbin/makeweb
chmod 2755 /home/local/sbin/makeweb
cp htpasswd /home/local/sbin/htpasswd
cp syslogtocern /home/local/sbin/syslogtocern
rm -f /home/local/man/man1/makeweb.1
cp makeweb.1 /home/local/man/man1/makeweb.1
rm -f /home/local/man/man1/htpasswd.1
cp htpasswd.1 /home/local/man/man1/htpasswd.1
rm -f /home/local/man/man8/syslogtocern.8
cp syslogtocern.8 /home/local/man/man8/syslogtocern.8
make[1]: Leaving directory '/home/pi/freedom/Acme.com/thttpd-2.29/extras'
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 



pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ date     ### 1553
Thu Aug 14 03:20:12 PM MDT 2025
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ # *****************************  ### 1558
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 



pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       ### "thttpd" is now installed. 1565
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ #       The next thing is to add directories "logs" and "users" to the "www" directory.  ### 1570
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 
pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ 


pi@raspberrypi:~/freedom/Acme.com/thttpd-2.29 $ cd /home/local/www     ### 1576
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ ls -al     ### 1582
total 12
drwxr-xr-x 3 root root 4096 Aug 14 15:19 .
drwxr-xr-x 5 root root 4096 Aug 14 15:19 ..
drwxr-xr-x 2 root root 4096 Aug 14 15:19 cgi-bin
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ sudo mkdir -v logs users     ### sudo 1592
mkdir: created directory 'logs'
mkdir: created directory 'users'
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ ls -al     ### 1599
total 20
drwxr-xr-x 5 root root 4096 Aug 14 15:22 .
drwxr-xr-x 5 root root 4096 Aug 14 15:19 ..
drwxr-xr-x 2 root root 4096 Aug 14 15:19 cgi-bin
drwxr-xr-x 2 root root 4096 Aug 14 15:22 logs
drwxr-xr-x 2 root root 4096 Aug 14 15:22 users
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ #      ********* We need this!  ### 1611
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 



pi@raspberrypi:/home/local/www $ sudo chmod -v 775 users     ### sudo 1619
mode of 'users' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ ls -al     ### 1625
total 20
drwxr-xr-x 5 root root 4096 Aug 14 15:22 .
drwxr-xr-x 5 root root 4096 Aug 14 15:19 ..
drwxr-xr-x 2 root root 4096 Aug 14 15:19 cgi-bin
drwxr-xr-x 2 root root 4096 Aug 14 15:22 logs
drwxrwxr-x 2 root root 4096 Aug 14 15:22 users
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ #      Make sure users is now 0775 (drwxrwxr-x). 1636
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ #      *******************  ### 1639
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ #      Now we go back one level so we can change the owner and group on everything in the "www" directory from "root:root" to "root:www".  ### 1644
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:/home/local/www $ 


pi@raspberrypi:/home/local/www $ cd ../     ### 1650
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 


pi@raspberrypi:/home/local $ sudo chown -vR root:www www     ### sudo 1656
changed ownership of 'www/users' from root:root to root:www
changed ownership of 'www/logs' from root:root to root:www
changed ownership of 'www/cgi-bin/redirect' from root:root to root:www
changed ownership of 'www/cgi-bin/phf' from root:root to root:www
changed ownership of 'www/cgi-bin/ssi' from root:root to root:www
changed ownership of 'www/cgi-bin' from root:root to root:www
changed ownership of 'www' from root:root to root:www
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 


pi@raspberrypi:/home/local $ ls -al     ### 1669
total 20
drwxr-xr-x 5 root root 4096 Aug 14 15:19 .
drwxr-xr-x 4 root root 4096 Aug 14 15:19 ..
drwxr-xr-x 4 root root 4096 Aug 14 15:19 man
drwxr-xr-x 2 root root 4096 Aug 14 15:19 sbin
drwxr-xr-x 5 root www  4096 Aug 14 15:22 www
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ #  *********  ### 1679
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 


pi@raspberrypi:/home/local $ #       We now change back to the "(pi)" home directory and are going to add a "user" that belongs in the "www" group, from the help on "adduser" we see what we have to type.  ### 1685
pi@raspberrypi:/home/local $ 
pi@raspberrypi:/home/local $ 


pi@raspberrypi:/home/local $ cd     ### 1690
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ addgroup --help     ### 1697
adduser [--uid id] [--firstuid id] [--lastuid id]
        [--gid id] [--firstgid id] [--lastgid id] [--ingroup group]
        [--add-extra-groups] [--shell shell]
        [--comment comment] [--home dir] [--no-create-home]
        [--allow-all-names] [--allow-bad-names]
        [--disabled-password] [--disabled-login]
        [--conf file] [--quiet] [--verbose] [--debug]
        user
    Add a normal user

adduser --system
        [--uid id] [--group] [--ingroup group] [--gid id]
        [--shell shell] [--comment comment] [--home dir] [--no-create-home]
        [--conf file] [--quiet] [--verbose] [--debug]
        user
   Add a system user

adduser --group
        [--gid ID] [--firstgid id] [--lastgid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
addgroup
        [--gid ID] [--firstgid id] [--lastgid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
   Add a user group

addgroup --system
        [--gid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
   Add a system group

adduser USER GROUP
   Add an existing user to an existing group
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 



pi@raspberrypi:~ $ #    For an example, one can think of these as different tabs or categories on your website. Use a different password for these "users" than the one you use for "(pi)" for more security. The information it asks for was for the "finger" program which most computers don't run for security reasons. I usually just use the "user" for the name and leave the rest blank.  ### 1740
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $  #    This is where one should probably use "a0" "a" (61 hex) and "0" zero (30 hex), so it will be the master user and at the top of the list for any other users one might add. "a0" is where you can put your log files.  ### 1745
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    Directions:   ### 1751
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ # adduser [--uid id] [--firstuid id] [--lastuid id]
pi@raspberrypi:~ $ #         [--gid id] [--firstgid id] [--lastgid id] [--ingroup group]
pi@raspberrypi:~ $ #         [--add-extra-groups] [--shell shell]
pi@raspberrypi:~ $ #         [--comment comment] [--home dir] [--no-create-home]
pi@raspberrypi:~ $ #         [--allow-all-names] [--allow-bad-names]
pi@raspberrypi:~ $ #         [--disabled-password] [--disabled-login]
pi@raspberrypi:~ $ #         [--conf file] [--quiet] [--verbose] [--debug]
pi@raspberrypi:~ $ #         user
pi@raspberrypi:~ $ #     Add a normal user
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    Enter:   ### 1769
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ sudo adduser --add-extra-groups a0     ### sudo 1773
Adding user `a0' ...
Adding new group `a0' (1001) ...
Adding new user `a0' (1001) with group `a0 (1001)' ...
Creating home directory `/home/a0' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for a0
Enter the new value, or press ENTER for the default
	Full Name []: a0
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `a0' to supplemental / extra groups `users, users' ...
Adding user `a0' to group `users' ...
adduser: The user `a0' is already a member of `users'.
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ su a0   ### 1798
Password: 
a0@raspberrypi:/home/pi $ 
a0@raspberrypi:/home/pi $ 


a0@raspberrypi:/home/pi $ #     here we are still in "/home/pi", and the user is now "a0".  ### 1804
a0@raspberrypi:/home/pi $ 
a0@raspberrypi:/home/pi $ 


a0@raspberrypi:/home/pi $ cd     ### Change to the "a0" home directory, NOTE the "~".   ### 1809
a0@raspberrypi:~ $ 
a0@raspberrypi:~ $ 


a0@raspberrypi:~ $ touch .1001     ### Since the computer uses numbers instead of names this is one way to know what number a user is. The period before the number will keep it from copying to the web page since it makes the file hidden. This is so we have the number that was assigned to this user and is from the previous construction.   ### 1814
a0@raspberrypi:~ $ 
a0@raspberrypi:~ $ 


a0@raspberrypi:~ $ makeweb     ### 1819
Web directory /home/local/www/users/a0 already existed.
Symbolic link /home/a0/public_html already existed.
a0@raspberrypi:~ $ 
a0@raspberrypi:~ $ 
a0@raspberrypi:~ $ #    If makeweb does not work (no permission) did you?: sudo chmod -v 0775 /home/local/www/users     #? and it actually changed the permissions to (drwxrwxr-x)?  ### 1824
a0@raspberrypi:~ $ 
a0@raspberrypi:~ $ 


a0@raspberrypi:~ $ ls -al     ### 1829
total 28
drwx------ 2 a0   a0   4096 Aug 14 15:39 .
drwxr-xr-x 5 root root 4096 Aug 14 15:31 ..
-rw-r--r-- 1 a0   a0      0 Aug 14 15:45 .1001
-rw-r--r-- 1 a0   a0    220 Aug 14 15:31 .bash_logout
-rw-r--r-- 1 a0   a0   3523 Aug 14 15:31 .bashrc
-rw-r--r-- 1 a0   a0   5290 Aug 14 15:31 .face
lrwxrwxrwx 1 a0   a0      5 Aug 14 15:31 .face.icon -> .face
-rw-r--r-- 1 a0   a0    807 Aug 14 15:31 .profile
lrwxrwxrwx 1 a0   www    24 Aug 14 15:39 public_html -> /home/local/www/users/a0
a0@raspberrypi:~ $ 
a0@raspberrypi:~ $ 


a0@raspberrypi:~ $ exit     ### This lets us exit back to where we were.   ### 1844
exit
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ cat /etc/group     ### 1852
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pi
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:pi
fax:x:21:
voice:x:22:
cdrom:x:24:pi
floppy:x:25:
tape:x:26:
sudo:x:27:pi
audio:x:29:pi,pulse
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
shadow:x:42:vnc
utmp:x:43:
video:x:44:pi,vnc
sasl:x:45:
plugdev:x:46:pi
staff:x:50:
games:x:60:pi
users:x:100:pi,a0
nogroup:x:65534:
systemd-journal:x:999:
systemd-network:x:998:
crontab:x:101:
input:x:102:pi,lightdm
sgx:x:103:
kvm:x:104:
render:x:105:pi,vnc
pi:x:1000:
systemd-timesync:x:997:
messagebus:x:106:
_ssh:x:107:
bluetooth:x:108:
avahi:x:109:
netdev:x:110:pi
polkitd:x:996:
spi:x:995:pi
i2c:x:994:pi
gpio:x:993:pi
lightdm:x:111:
rtkit:x:112:
pipewire:x:113:
rdma:x:114:
lpadmin:x:115:pi
ssl-cert:x:116:
pulse:x:117:
pulse-access:x:118:
scanner:x:119:saned
saned:x:120:
vnc:x:992:
colord:x:121:
feedbackd:x:122:
www:x:123:pi
a0:x:1001:
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ cd /home   ### 1929
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ ls -al   ### 1935
total 20
drwxr-xr-x  5 root root 4096 Aug 14 15:31 .
drwxr-xr-x 18 root root 4096 May 12 18:17 ..
drwx------  2 a0   a0   4096 Aug 14 15:46 a0
drwxr-xr-x  5 root root 4096 Aug 14 15:19 local
drwx------ 17 pi   pi   4096 Aug 14 14:34 pi
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ #        Since I want to be able to access "a0" from "pi" I will change the group on "a0" to "www".  ### 1947
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ sudo chown -vR a0:www a0     ### sudo 1953
changed ownership of 'a0/.bash_history' from a0:a0 to a0:www
changed ownership of 'a0/.bash_logout' from a0:a0 to a0:www
changed ownership of 'a0/.1001' from a0:a0 to a0:www
changed ownership of 'a0/.bashrc' from a0:a0 to a0:www
changed ownership of 'a0/.face.icon' from a0:a0 to a0:www
changed ownership of 'a0/.profile' from a0:a0 to a0:www
ownership of 'a0/public_html' retained as a0:www
changed ownership of 'a0/.face' from a0:a0 to a0:www
changed ownership of 'a0' from a0:a0 to a0:www
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ ls -al     ### 1968
total 20
drwxr-xr-x  5 root root 4096 Aug 14 15:31 .
drwxr-xr-x 18 root root 4096 May 12 18:17 ..
drwx------  2 a0   www  4096 Aug 14 15:46 a0
drwxr-xr-x  5 root root 4096 Aug 14 15:19 local
drwx------ 17 pi   pi   4096 Aug 14 14:34 pi
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ cd /home/local/www/users     ### 1981
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ ls -al     ### 1987
total 12
drwxrwxr-x 3 root www 4096 Aug 14 15:39 .
drwxr-xr-x 5 root www 4096 Aug 14 15:22 ..
drwxr-xr-x 2 a0   a0  4096 Aug 14 15:39 a0
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ #        Since I want to be able to access "a0" from "pi" I will change the group on "a0" to "www".  ### 1997
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ sudo chown -vR a0:www a0     ### sudo 2003
changed ownership of 'a0' from a0:a0 to a0:www
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ ls -al   ### 2010
total 12
drwxrwxr-x 3 root www 4096 Aug 14 15:39 .
drwxr-xr-x 5 root www 4096 Aug 14 15:22 ..
drwxr-xr-x 2 a0   www 4096 Aug 14 15:39 a0
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ #        So far so good! We now have a main www user installed.  ### 2020
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ date   ### 2026
Thu Aug 14 03:53:33 PM MDT 2025
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ # ****************************************************************************************************************   ### 2031
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 





pi@raspberrypi:~ $ #    thttpd is still running and I am going to change and add the os-debug files and then you can see the difference they make to the log files. These are the log files before I change and add the files from "os-debug".  ### 2041
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ cd /home/local/www/logs   ### 2046
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ ls -al   ### 2053
total 16
drwxr-xr-x 2 root   www     4096 Aug 14 16:59 .
drwxr-xr-x 5 root   www     4096 Aug 14 16:28 ..
-rw-r--r-- 1 nobody nogroup 3280 Aug 14 17:28 thttpd_log
-rw-r--r-- 1 nobody nogroup 2016 Aug 14 16:59 thttpd_log.01
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ cat *log.01   ### 2064
::1 - - [14/Aug/2025:22:41:59 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
::1 - - [14/Aug/2025:22:42:13 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://localhost/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
::1 - - [14/Aug/2025:22:43:40 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
::1 - - [14/Aug/2025:22:43:45 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://localhost/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:45:12 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:45:20 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:46:19 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:46:23 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.233 - - [14/Aug/2025:22:48:01 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:22:48:05 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
Thu Aug 14 04:59:43 PM MDT 2025
 16:59:43 up  2:25,  4 users,  load average: 0.07, 0.08, 0.02
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               14:34    2:25m  1:18   0.49s /usr/bin/lxsession -s LXDE-pi -e LXDE
pi       tty1     -                14:34    2:25m  0.01s  0.01s -bash
pi       pts/4    -                16:36   23:10   3.85s   ?    sudo /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config
pi       pts/6    -                16:59    0.00s  0.01s   ?    sudo ./thttpd-rotate
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 



pi@raspberrypi:/home/local/www/logs $ cat *log   ### 2090
Thu Aug 14 04:59:43 PM MDT 2025
 16:59:43 up  2:25,  4 users,  load average: 0.07, 0.08, 0.02
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               14:34    2:25m  1:18   0.49s /usr/bin/lxsession -s LXDE-pi -e LXDE
pi       tty1     -                14:34    2:25m  0.01s  0.01s -bash
pi       pts/4    -                16:36   23:10   3.85s   ?    sudo /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config
pi       pts/6    -                16:59    0.00s  0.01s   ?    sudo ./thttpd-rotate
192.168.1.223 - - [14/Aug/2025:23:23:54 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:23:54 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:01 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:30 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:30 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.223/readme.txt" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:47 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:26:42 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:26:51 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:27:00 +0000] "GET /favicon.ico HTTP/1.0" 200 533 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:27:05 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:27:09 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.233 - - [14/Aug/2025:23:27:58 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.223/a0/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:04 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:10 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:41 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:46 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ # thttpd is still running and I am going to change and add the os-debug files and then you can see the difference they make to the log.  ### 2120
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ cd /home/local/sbin/os-debug/   ### 2127
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ #    The files in os-debug have additional thttpd pid numbers to help with OS problems.   ### 2135
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ ls -al   ### 2141
total 48
drwxr-xr-x 2 pi   pi   4096 Jul 12  2022 .
drwxr-xr-x 4 root root 4096 Aug 14 16:21 ..
-rwxr-xr-- 1 pi   pi    185 Aug 31  2021 datelog
-r-xr-xr-- 1 pi   pi    185 Aug 31  2021 datelog~
-rwxr-xr-- 1 pi   pi    385 Aug 31  2021 dead-thttpd
-r-xr-xr-- 1 pi   pi    385 Aug 31  2021 dead-thttpd~
-r--r--r-- 1 pi   pi    792 Apr 22  2022 readme.txt
-r--r--r-- 1 pi   pi    792 Apr 22  2022 readme.txt~
-rwxr-xr-- 1 pi   pi   1965 Aug 31  2021 thttpd-rotate
-r-xr-xr-- 1 pi   pi   1965 Aug 31  2021 thttpd-rotate~
-rwxr-xr-- 1 pi   pi    153 Aug 31  2021 thttpd_wrapper
-r-xr-xr-- 1 pi   pi    153 Aug 31  2021 thttpd_wrapper~
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ cat readme.txt   ### 2161
#readme.txt
#
#    The files in os-debug have additional thttpd pid numbers to help with OS problems.
#
#pi@AC0XL-Pi-400:~$ 
#pi@AC0XL-Pi-400:~$ cd /home/local/sbin/os-debug/     ###
#pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ 
#pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ 


#pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ sudo cp -av d* thttp*r ../     ### sudo
#'datelog' -> '../datelog'
#'dead-thttpd' -> '../dead-thttpd'
#'thttpd_wrapper' -> '../thttpd_wrapper'
#pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ 
#pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ 
#
#    Now we have to replace thttpd-rotate in /etc/cron.daily.
#
#pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ sudo cp -av thttpd-rotate /etc/cron.daily     ### sudo - we are adding lines for thttpd pid information.
#pi@AC0XL-Pi-400:/home/local/sbin/os-debug $ 
#
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ sudo cp -av d* thttp*r ../   ### sudo 2189
'datelog' -> '../datelog'
'datelog~' -> '../datelog~'
'dead-thttpd' -> '../dead-thttpd'
'dead-thttpd~' -> '../dead-thttpd~'
'thttpd_wrapper' -> '../thttpd_wrapper'
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ #    Now we have to replace thttpd-rotate in /etc/cron.daily.  ### 2201
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ sudo cp -av thttpd-rotate /etc/cron.daily   ### sudo - we are adding lines for thttpd PID information.   ### 2208
'thttpd-rotate' -> '/etc/cron.daily/thttpd-rotate'
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ # *****************  ### 2214
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ cat thttpd_wrapper   ### 2220
#!/bin/sh
# thttpd_wrapper

while true ; do
	/home/local/sbin/thttpd -D -C /home/local/www/thttpd_config
		/home/local/sbin/dead-thttpd
	sleep 10
done
#
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 



pi@raspberrypi:/home/local/sbin/os-debug $ cat thttpd-rotate   ### 2236
#!/bin/sh
# /etc/cron.daily/thttpd-rotate

cd /home/local/www/logs
rm -f thttpd_log.50

mv thttpd_log.49 thttpd_log.50
mv thttpd_log.48 thttpd_log.49
mv thttpd_log.47 thttpd_log.48
mv thttpd_log.46 thttpd_log.47
mv thttpd_log.45 thttpd_log.46
mv thttpd_log.44 thttpd_log.45
mv thttpd_log.43 thttpd_log.44
mv thttpd_log.42 thttpd_log.43
mv thttpd_log.41 thttpd_log.42
mv thttpd_log.40 thttpd_log.41
mv thttpd_log.39 thttpd_log.40
mv thttpd_log.38 thttpd_log.39
mv thttpd_log.37 thttpd_log.38
mv thttpd_log.36 thttpd_log.37
mv thttpd_log.35 thttpd_log.36
mv thttpd_log.34 thttpd_log.35
mv thttpd_log.33 thttpd_log.34
mv thttpd_log.32 thttpd_log.33
mv thttpd_log.31 thttpd_log.32
mv thttpd_log.30 thttpd_log.31
mv thttpd_log.29 thttpd_log.30
mv thttpd_log.28 thttpd_log.29
mv thttpd_log.27 thttpd_log.28
mv thttpd_log.26 thttpd_log.27
mv thttpd_log.25 thttpd_log.26
mv thttpd_log.24 thttpd_log.25
mv thttpd_log.23 thttpd_log.24
mv thttpd_log.22 thttpd_log.23
mv thttpd_log.21 thttpd_log.22
mv thttpd_log.20 thttpd_log.21
mv thttpd_log.19 thttpd_log.20
mv thttpd_log.18 thttpd_log.19
mv thttpd_log.17 thttpd_log.18
mv thttpd_log.16 thttpd_log.17
mv thttpd_log.15 thttpd_log.16
mv thttpd_log.14 thttpd_log.15
mv thttpd_log.13 thttpd_log.14
mv thttpd_log.12 thttpd_log.13
mv thttpd_log.11 thttpd_log.12
mv thttpd_log.10 thttpd_log.11
mv thttpd_log.09 thttpd_log.10
mv thttpd_log.08 thttpd_log.09
mv thttpd_log.07 thttpd_log.08
mv thttpd_log.06 thttpd_log.07
mv thttpd_log.05 thttpd_log.06
mv thttpd_log.04 thttpd_log.05
mv thttpd_log.03 thttpd_log.04
mv thttpd_log.02 thttpd_log.03
mv thttpd_log.01 thttpd_log.02

date >> thttpd_log
echo "log rotate end, thttpd pid = " `ps -C thttpd` >> thttpd_log
w >> thttpd_log

mv thttpd_log thttpd_log.01

date > thttpd_log
echo "old log rotate end, old thttpd pid = " `ps -C thttpd` >> thttpd_log

kill -usr1 `cat /var/run/thttpd.pid`

sleep 15

echo "log rotate new, thttpd pid = " `ps -C thttpd` >> thttpd_log
w >> thttpd_log

#
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 



pi@raspberrypi:/home/local/sbin/os-debug $ cat datelog   ### 2316
#!/bin/sh
# datelog

 echo "datelog, thttpd pid = " `ps -C thttpd` >> /home/local/www/logs/thttpd_log
 date >> /home/local/www/logs/thttpd_log
 w >> /home/local/www/logs/thttpd_log

#

pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $  date   ### 2333
Thu Aug 14 05:40:48 PM MDT 2025
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ ### sudo datelog is entered at the command prompt and there has been a problem with the system finding it, which I will test. When the commands are run from the system they all work but there seems to be a bug with them coming from the command line.   ### 2341
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 
pi@raspberrypi:/home/local/sbin/os-debug $ 


pi@raspberrypi:/home/local/sbin/os-debug $ cd /etc/cron.daily   ### 2347
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ ls -al   ### 2355
total 40
drwxr-xr-x   2 root root  4096 Aug 14 16:26 .
drwxr-xr-x 132 root root 12288 Aug 14 16:19 ..
-rwxr-xr-x   1 root root  1478 May 25  2023 apt-compat
-rwxr-xr-x   1 root root   123 Mar 26  2023 dpkg
-rwxr-xr-x   1 root root   377 Dec 14  2022 logrotate
-rwxr-xr-x   1 root root  1395 Mar 12  2023 man-db
-rw-r--r--   1 root root   102 Mar  2  2023 .placeholder
-rwxr-xr--   1 pi   pi    1965 Aug 31  2021 thttpd-rotate
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 



pi@raspberrypi:/etc/cron.daily $ cat thttpd-rotate   ### 2372
#!/bin/sh
# /etc/cron.daily/thttpd-rotate

cd /home/local/www/logs
rm -f thttpd_log.50

mv thttpd_log.49 thttpd_log.50
mv thttpd_log.48 thttpd_log.49
mv thttpd_log.47 thttpd_log.48
mv thttpd_log.46 thttpd_log.47
mv thttpd_log.45 thttpd_log.46
mv thttpd_log.44 thttpd_log.45
mv thttpd_log.43 thttpd_log.44
mv thttpd_log.42 thttpd_log.43
mv thttpd_log.41 thttpd_log.42
mv thttpd_log.40 thttpd_log.41
mv thttpd_log.39 thttpd_log.40
mv thttpd_log.38 thttpd_log.39
mv thttpd_log.37 thttpd_log.38
mv thttpd_log.36 thttpd_log.37
mv thttpd_log.35 thttpd_log.36
mv thttpd_log.34 thttpd_log.35
mv thttpd_log.33 thttpd_log.34
mv thttpd_log.32 thttpd_log.33
mv thttpd_log.31 thttpd_log.32
mv thttpd_log.30 thttpd_log.31
mv thttpd_log.29 thttpd_log.30
mv thttpd_log.28 thttpd_log.29
mv thttpd_log.27 thttpd_log.28
mv thttpd_log.26 thttpd_log.27
mv thttpd_log.25 thttpd_log.26
mv thttpd_log.24 thttpd_log.25
mv thttpd_log.23 thttpd_log.24
mv thttpd_log.22 thttpd_log.23
mv thttpd_log.21 thttpd_log.22
mv thttpd_log.20 thttpd_log.21
mv thttpd_log.19 thttpd_log.20
mv thttpd_log.18 thttpd_log.19
mv thttpd_log.17 thttpd_log.18
mv thttpd_log.16 thttpd_log.17
mv thttpd_log.15 thttpd_log.16
mv thttpd_log.14 thttpd_log.15
mv thttpd_log.13 thttpd_log.14
mv thttpd_log.12 thttpd_log.13
mv thttpd_log.11 thttpd_log.12
mv thttpd_log.10 thttpd_log.11
mv thttpd_log.09 thttpd_log.10
mv thttpd_log.08 thttpd_log.09
mv thttpd_log.07 thttpd_log.08
mv thttpd_log.06 thttpd_log.07
mv thttpd_log.05 thttpd_log.06
mv thttpd_log.04 thttpd_log.05
mv thttpd_log.03 thttpd_log.04
mv thttpd_log.02 thttpd_log.03
mv thttpd_log.01 thttpd_log.02

date >> thttpd_log
echo "log rotate end, thttpd pid = " `ps -C thttpd` >> thttpd_log
w >> thttpd_log

mv thttpd_log thttpd_log.01

date > thttpd_log
echo "old log rotate end, old thttpd pid = " `ps -C thttpd` >> thttpd_log

kill -usr1 `cat /var/run/thttpd.pid`

sleep 15

echo "log rotate new, thttpd pid = " `ps -C thttpd` >> thttpd_log
w >> thttpd_log

#
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 



pi@raspberrypi:/etc/cron.daily $ #      That looks better! there is a sleep 15 near the end and that is to wait for the new PID to be set up.  ### 2452
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ #      Notice that this program takes 15 seconds so that the new PID number will have time to come up.  ### 2460
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ #      Also, the lines are not written to the log file until they finish. The "kill -usr1 `cat /var/run/thttpd.pid`" stops thttpd from taking more requests. The "kill -usr1 `cat /var/run/thttpd.pid`" stops thttpd from taking any more requests but lets the ones that are running finish before it starts again with a new log file. That is why at times one will see extra lines after the log rotate normal ending.   ### 2467
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ sudo ./thttpd-rotate   ### sudo 2474
mv: cannot stat 'thttpd_log.49': No such file or directory
mv: cannot stat 'thttpd_log.48': No such file or directory
mv: cannot stat 'thttpd_log.47': No such file or directory
mv: cannot stat 'thttpd_log.46': No such file or directory
mv: cannot stat 'thttpd_log.45': No such file or directory
mv: cannot stat 'thttpd_log.44': No such file or directory
mv: cannot stat 'thttpd_log.43': No such file or directory
mv: cannot stat 'thttpd_log.42': No such file or directory
mv: cannot stat 'thttpd_log.41': No such file or directory
mv: cannot stat 'thttpd_log.40': No such file or directory
mv: cannot stat 'thttpd_log.39': No such file or directory
mv: cannot stat 'thttpd_log.38': No such file or directory
mv: cannot stat 'thttpd_log.37': No such file or directory
mv: cannot stat 'thttpd_log.36': No such file or directory
mv: cannot stat 'thttpd_log.35': No such file or directory
mv: cannot stat 'thttpd_log.34': No such file or directory
mv: cannot stat 'thttpd_log.33': No such file or directory
mv: cannot stat 'thttpd_log.32': No such file or directory
mv: cannot stat 'thttpd_log.31': No such file or directory
mv: cannot stat 'thttpd_log.30': No such file or directory
mv: cannot stat 'thttpd_log.29': No such file or directory
mv: cannot stat 'thttpd_log.28': No such file or directory
mv: cannot stat 'thttpd_log.27': No such file or directory
mv: cannot stat 'thttpd_log.26': No such file or directory
mv: cannot stat 'thttpd_log.25': No such file or directory
mv: cannot stat 'thttpd_log.24': No such file or directory
mv: cannot stat 'thttpd_log.23': No such file or directory
mv: cannot stat 'thttpd_log.22': No such file or directory
mv: cannot stat 'thttpd_log.21': No such file or directory
mv: cannot stat 'thttpd_log.20': No such file or directory
mv: cannot stat 'thttpd_log.19': No such file or directory
mv: cannot stat 'thttpd_log.18': No such file or directory
mv: cannot stat 'thttpd_log.17': No such file or directory
mv: cannot stat 'thttpd_log.16': No such file or directory
mv: cannot stat 'thttpd_log.15': No such file or directory
mv: cannot stat 'thttpd_log.14': No such file or directory
mv: cannot stat 'thttpd_log.13': No such file or directory
mv: cannot stat 'thttpd_log.12': No such file or directory
mv: cannot stat 'thttpd_log.11': No such file or directory
mv: cannot stat 'thttpd_log.10': No such file or directory
mv: cannot stat 'thttpd_log.09': No such file or directory
mv: cannot stat 'thttpd_log.08': No such file or directory
mv: cannot stat 'thttpd_log.07': No such file or directory
mv: cannot stat 'thttpd_log.06': No such file or directory
mv: cannot stat 'thttpd_log.05': No such file or directory
mv: cannot stat 'thttpd_log.04': No such file or directory
mv: cannot stat 'thttpd_log.03': No such file or directory
mv: cannot stat 'thttpd_log.02': No such file or directory
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ sudo datelog   ### 2530
sudo: datelog: command not found
pi@raspberrypi:/etc/cron.daily $ 

pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ #      This is the problem when the command is entered from the command line and it is not in "/usr/local/sbin/" even though all of the other commands ran from "/home/local/sbin/"!   ### 2536
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ sudo ls -al /home/local/sbin   ### 2543
total 204
drwxr-xr-x 4 root root   4096 Aug 14 17:35 .
drwxr-xr-x 5 root root   4096 Aug 14 15:19 ..
-rwxr-xr-- 1 pi   pi      185 Aug 31  2021 datelog
-r-xr-xr-- 1 pi   pi      185 Aug 31  2021 datelog~
-rwxr-xr-- 1 pi   pi      385 Aug 31  2021 dead-thttpd
-r-xr-xr-- 1 pi   pi      385 Aug 31  2021 dead-thttpd~
-rwxr-xr-x 1 root root  72288 Aug 14 15:19 htpasswd
-rwxr-sr-x 1 root www   71472 Aug 14 15:19 makeweb
drwxr-xr-x 2 pi   pi     4096 Jul 12  2022 os-debug
-r-xr-xr-x 1 root root   2878 Aug 14 15:19 syslogtocern
-r-xr-xr-x 1 bin  bin  157808 Aug 14 15:19 thttpd
drwxr-xr-x 3 pi   pi     4096 Jul 12  2022 thttpd-extras
-rwxr-xr-- 1 pi   pi      153 Aug 31  2021 thttpd_wrapper
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ sudo cp -iav /home/local/sbin/* /usr/local/sbin   ### sudo 2565
'/home/local/sbin/datelog' -> '/usr/local/sbin/datelog'
'/home/local/sbin/datelog~' -> '/usr/local/sbin/datelog~'
'/home/local/sbin/dead-thttpd' -> '/usr/local/sbin/dead-thttpd'
'/home/local/sbin/dead-thttpd~' -> '/usr/local/sbin/dead-thttpd~'
'/home/local/sbin/htpasswd' -> '/usr/local/sbin/htpasswd'
'/home/local/sbin/makeweb' -> '/usr/local/sbin/makeweb'
'/home/local/sbin/os-debug' -> '/usr/local/sbin/os-debug'
'/home/local/sbin/os-debug/readme.txt~' -> '/usr/local/sbin/os-debug/readme.txt~'
'/home/local/sbin/os-debug/thttpd-rotate' -> '/usr/local/sbin/os-debug/thttpd-rotate'
'/home/local/sbin/os-debug/thttpd_wrapper~' -> '/usr/local/sbin/os-debug/thttpd_wrapper~'
'/home/local/sbin/os-debug/dead-thttpd' -> '/usr/local/sbin/os-debug/dead-thttpd'
'/home/local/sbin/os-debug/readme.txt' -> '/usr/local/sbin/os-debug/readme.txt'
'/home/local/sbin/os-debug/dead-thttpd~' -> '/usr/local/sbin/os-debug/dead-thttpd~'
'/home/local/sbin/os-debug/thttpd_wrapper' -> '/usr/local/sbin/os-debug/thttpd_wrapper'
'/home/local/sbin/os-debug/datelog~' -> '/usr/local/sbin/os-debug/datelog~'
'/home/local/sbin/os-debug/thttpd-rotate~' -> '/usr/local/sbin/os-debug/thttpd-rotate~'
'/home/local/sbin/os-debug/datelog' -> '/usr/local/sbin/os-debug/datelog'
'/home/local/sbin/syslogtocern' -> '/usr/local/sbin/syslogtocern'
'/home/local/sbin/thttpd' -> '/usr/local/sbin/thttpd'
'/home/local/sbin/thttpd-extras' -> '/usr/local/sbin/thttpd-extras'
'/home/local/sbin/thttpd-extras/sitemap.xml' -> '/usr/local/sbin/thttpd-extras/sitemap.xml'
'/home/local/sbin/thttpd-extras/thttpd-rotate' -> '/usr/local/sbin/thttpd-extras/thttpd-rotate'
'/home/local/sbin/thttpd-extras/thttpd_wrapper~' -> '/usr/local/sbin/thttpd-extras/thttpd_wrapper~'
'/home/local/sbin/thttpd-extras/readme.txt' -> '/usr/local/sbin/thttpd-extras/readme.txt'
'/home/local/sbin/thttpd-extras/favicon.ico' -> '/usr/local/sbin/thttpd-extras/favicon.ico'
'/home/local/sbin/thttpd-extras/vhost-DN-test' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test'
'/home/local/sbin/thttpd-extras/vhost-DN-test/a0' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/a0'
'/home/local/sbin/thttpd-extras/vhost-DN-test/a0/test' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/a0/test'
'/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128'
'/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0'
'/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0/test' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/a0/test'
'/home/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/sample.txt' -> '/usr/local/sbin/thttpd-extras/vhost-DN-test/192.168.1.128/sample.txt'
'/home/local/sbin/thttpd-extras/robots.txt' -> '/usr/local/sbin/thttpd-extras/robots.txt'
'/home/local/sbin/thttpd-extras/anvil_thttpd.gif' -> '/usr/local/sbin/thttpd-extras/anvil_thttpd.gif'
'/home/local/sbin/thttpd-extras/thttpd_config~' -> '/usr/local/sbin/thttpd-extras/thttpd_config~'
'/home/local/sbin/thttpd-extras/thttpd_wrapper' -> '/usr/local/sbin/thttpd-extras/thttpd_wrapper'
'/home/local/sbin/thttpd-extras/rc.local' -> '/usr/local/sbin/thttpd-extras/rc.local'
'/home/local/sbin/thttpd-extras/sitemap.xml.txt' -> '/usr/local/sbin/thttpd-extras/sitemap.xml.txt'
'/home/local/sbin/thttpd-extras/thttpd.sh~' -> '/usr/local/sbin/thttpd-extras/thttpd.sh~'
'/home/local/sbin/thttpd-extras/rc.local~' -> '/usr/local/sbin/thttpd-extras/rc.local~'
'/home/local/sbin/thttpd-extras/thttpd.sh' -> '/usr/local/sbin/thttpd-extras/thttpd.sh'
'/home/local/sbin/thttpd-extras/thttpd-rotate~' -> '/usr/local/sbin/thttpd-extras/thttpd-rotate~'
'/home/local/sbin/thttpd-extras/robots-site.txt' -> '/usr/local/sbin/thttpd-extras/robots-site.txt'
'/home/local/sbin/thttpd-extras/thttpd_config' -> '/usr/local/sbin/thttpd-extras/thttpd_config'
'/home/local/sbin/thttpd_wrapper' -> '/usr/local/sbin/thttpd_wrapper'
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 



pi@raspberrypi:/etc/cron.daily $ ls -al /usr/local/sbin   ### 2619
total 204
drwxr-xr-x  4 root root   4096 Aug 14 17:45 .
drwxr-xr-x 10 root root   4096 May 12 18:04 ..
-rwxr-xr--  1 pi   pi      185 Aug 31  2021 datelog
-r-xr-xr--  1 pi   pi      185 Aug 31  2021 datelog~
-rwxr-xr--  1 pi   pi      385 Aug 31  2021 dead-thttpd
-r-xr-xr--  1 pi   pi      385 Aug 31  2021 dead-thttpd~
-rwxr-xr-x  1 root root  72288 Aug 14 15:19 htpasswd
-rwxr-sr-x  1 root www   71472 Aug 14 15:19 makeweb
drwxr-xr-x  2 pi   pi     4096 Jul 12  2022 os-debug
-r-xr-xr-x  1 root root   2878 Aug 14 15:19 syslogtocern
-r-xr-xr-x  1 bin  bin  157808 Aug 14 15:19 thttpd
drwxr-xr-x  3 pi   pi     4096 Jul 12  2022 thttpd-extras
-rwxr-xr--  1 pi   pi      153 Aug 31  2021 thttpd_wrapper
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ sudo datelog   ### 2641
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 

pi@raspberrypi:/etc/cron.daily $ #      Magic!! Now sudo datelog works!!! The only thing different is the command is coming from the command line and not from a program which all of the other commands come from and work without being under /usr/local/sbin/!!!   ### 2645
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 
pi@raspberrypi:/etc/cron.daily $ 


pi@raspberrypi:/etc/cron.daily $ cd /home/local/www/logs   ### 2653
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ ls -al   ### 2660
total 20
drwxr-xr-x 2 root   www     4096 Aug 14 17:43 .
drwxr-xr-x 5 root   www     4096 Aug 14 16:28 ..
-rw-r--r-- 1 nobody nogroup 1044 Aug 14 17:46 thttpd_log
-rw-r--r-- 1 nobody nogroup 3770 Aug 14 17:43 thttpd_log.01
-rw-r--r-- 1 nobody nogroup 2016 Aug 14 16:59 thttpd_log.02
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 



pi@raspberrypi:/home/local/www/logs $ cat *log.02   ### 2673
::1 - - [14/Aug/2025:22:41:59 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
::1 - - [14/Aug/2025:22:42:13 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://localhost/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
::1 - - [14/Aug/2025:22:43:40 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
::1 - - [14/Aug/2025:22:43:45 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://localhost/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:45:12 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:45:20 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:46:19 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:22:46:23 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.233 - - [14/Aug/2025:22:48:01 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:22:48:05 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
Thu Aug 14 04:59:43 PM MDT 2025
 16:59:43 up  2:25,  4 users,  load average: 0.07, 0.08, 0.02
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               14:34    2:25m  1:18   0.49s /usr/bin/lxsession -s LXDE-pi -e LXDE
pi       tty1     -                14:34    2:25m  0.01s  0.01s -bash
pi       pts/4    -                16:36   23:10   3.85s   ?    sudo /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config
pi       pts/6    -                16:59    0.00s  0.01s   ?    sudo ./thttpd-rotate
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 



pi@raspberrypi:/home/local/www/logs $ cat *log.01   ### 2698
Thu Aug 14 04:59:43 PM MDT 2025
 16:59:43 up  2:25,  4 users,  load average: 0.07, 0.08, 0.02
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               14:34    2:25m  1:18   0.49s /usr/bin/lxsession -s LXDE-pi -e LXDE
pi       tty1     -                14:34    2:25m  0.01s  0.01s -bash
pi       pts/4    -                16:36   23:10   3.85s   ?    sudo /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config
pi       pts/6    -                16:59    0.00s  0.01s   ?    sudo ./thttpd-rotate
192.168.1.223 - - [14/Aug/2025:23:23:54 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:23:54 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:01 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:30 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:30 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.223/readme.txt" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:24:47 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.223 - - [14/Aug/2025:23:26:42 +0000] "GET / HTTP/1.0" 200 25000 "" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:26:51 +0000] "GET /a0/ HTTP/1.0" 200 25000 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:27:00 +0000] "GET /favicon.ico HTTP/1.0" 200 533 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:27:05 +0000] "GET /readme.txt HTTP/1.0" 200 308 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.223 - - [14/Aug/2025:23:27:09 +0000] "GET /robots.txt HTTP/1.0" 200 27 "http://192.168.1.223/" "Lynx/2.9.0dev.12 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.8"
192.168.1.233 - - [14/Aug/2025:23:27:58 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.223/a0/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:04 +0000] "GET /a0/ HTTP/1.1" 200 25000 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:10 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:41 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
192.168.1.233 - - [14/Aug/2025:23:28:46 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.223/" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
Thu Aug 14 05:43:23 PM MDT 2025
log rotate end, thttpd pid =  PID TTY TIME CMD 17759 ? 00:00:03 thttpd
 17:43:23 up  3:09,  3 users,  load average: 0.01, 0.08, 0.08
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               14:34    3:09m  1:43   0.60s /usr/bin/lxsession -s LXDE-pi -e LXDE
pi       tty1     -                14:34    3:09m  0.01s  0.01s -bash
pi       pts/7    -                17:43    0.00s  0.02s   ?    sudo ./thttpd-rotate
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 



pi@raspberrypi:/home/local/www/logs $ cat *log   ### 2737
Thu Aug 14 05:43:23 PM MDT 2025
old log rotate end, old thttpd pid =  PID TTY TIME CMD 17759 ? 00:00:03 thttpd
log rotate new, thttpd pid =  PID TTY TIME CMD 19714 ? 00:00:00 thttpd
 17:43:38 up  3:09,  3 users,  load average: 0.01, 0.07, 0.08
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               14:34    3:09m  1:43   0.60s /usr/bin/lxsession -s LXDE-pi -e LXDE
pi       tty1     -                14:34    3:09m  0.01s  0.01s -bash
pi       pts/7    -                17:43   15.00s  0.03s   ?    sudo ./thttpd-rotate
datelog, thttpd pid =  PID TTY TIME CMD 19714 ? 00:00:00 thttpd
Thu Aug 14 05:46:26 PM MDT 2025
 17:46:25 up  3:12,  3 users,  load average: 0.03, 0.06, 0.08
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               14:34    3:12m  1:45   0.61s /usr/bin/lxsession -s LXDE-pi -e LXDE
pi       tty1     -                14:34    3:12m  0.01s  0.01s -bash
pi       pts/7    -                17:46    1.00s  0.01s   ?    sudo datelog
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ # As you can see thttpd can be updated while it is still running!   ### 2760
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ # While it is still running I will finish with adding more "users" to the web site.   ### 2766
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ date   ### 2772
Thu Aug 14 05:48:50 PM MDT 2025
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ # *****************************  ### 2778
pi@raspberrypi:/home/local/www/logs $ # *****************************  ### 2779
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 
pi@raspberrypi:/home/local/www/logs $ 


pi@raspberrypi:/home/local/www/logs $ cd /home/  ### 2785
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ date   ### 2793
Thu Aug 14 05:54:06 PM MDT 2025
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ # At this point one can just add directories to "a0" if you just want to see what you may want for your permanent headers. Years ago my dial-up-ISP used "thttpd" to provide each user their own personal web site, by just entering "makeweb" into our user file (man makeweb). More information is in the "thttpd" documentation. When I started using thttpd I used my ham radio call sign "ac0xl" and that is why it has a lot of extra things in it. Since we created "a0" for the master used, that site is already working! 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ #        Adding more Web Users, (Headings).   ### 2799
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ #        Other ideas for web "users" could be: documents, downloads, games, memes, music, notices, pictures, videos, etc., just categories of what you want on your website, or what you want to share. This time we will use a different process to add only www users.   ### 2803
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ addgroup --help   ### 2809
adduser [--uid id] [--firstuid id] [--lastuid id]
        [--gid id] [--firstgid id] [--lastgid id] [--ingroup group]
        [--add-extra-groups] [--shell shell]
        [--comment comment] [--home dir] [--no-create-home]
        [--allow-all-names] [--allow-bad-names]
        [--disabled-password] [--disabled-login]
        [--conf file] [--quiet] [--verbose] [--debug]
        user
    Add a normal user

adduser --system
        [--uid id] [--group] [--ingroup group] [--gid id]
        [--shell shell] [--comment comment] [--home dir] [--no-create-home]
        [--conf file] [--quiet] [--verbose] [--debug]
        user
   Add a system user

adduser --group
        [--gid ID] [--firstgid id] [--lastgid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
addgroup
        [--gid ID] [--firstgid id] [--lastgid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
   Add a user group

addgroup --system
        [--gid id]
        [--conf file] [--quiet] [--verbose] [--debug]
        group
   Add a system group

adduser USER GROUP
   Add an existing user to an existing group
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ #        This is where if you have a list of typed "users" you can just copy the "name" and then be able to paste it several times without having to retype it, or making typing mistakes.  I made the file "list.txt" in the freedom directory.   ### 2851
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ cat ~/freedom/adding-users.txt   ### 2858
adding-users.txt   ### 4286

#
#	Again the process:  ### 2862
#
#         sudo adduser --ingroup www videos    # (new web user "videos")
#                 (use a password that is different from the one for "(pi)")
#         su videos    # (shell to user "videos")
#         cd     # (change to shell home directory)
#         touch .user-number   # that is a period and the number all in one, (.user-number)
#         makeweb
#         ls -al
#         exit         # (exit the shell back to where you were)
#
#
# *********
# 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ # *********   ### 2881
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ cat ~/freedom/list.txt   ### 2888
list.txt

  a0  documents  downloads  memes  music  notices  pictures  videos  

sudo adduser --ingroup www xxxx
su xxxx
cd
touch .number
makeweb
ls -al
exit

sudo adduser --ingroup www xxxx

  a0  ac0xl  delinquent-accounts  documents  downloads  freedom  memes  music  notices  pictures  rome  searles-sav-on-propane  va  videos  welding  fraud  rifle-union-high-rifle-colorado
  
*
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ # I am going to use my list from the bottom and one should place their list in a separate window.   ### 2911
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ date   ### 2918
Thu Aug 14 06:01:33 PM MDT 2025
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www ac0xl     ### sudo 2826
Adding user `ac0xl' ...
Adding new user `ac0xl' (1002) with group `www (123)' ...
Creating home directory `/home/ac0xl' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for ac0xl
Enter the new value, or press ENTER for the default
	Full Name []: ac0xl                                             
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `ac0xl' to supplemental / extra groups `users' ...
Adding user `ac0xl' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ su ac0xl   ### 2950
Password: 
ac0xl@raspberrypi:/home $ 
ac0xl@raspberrypi:/home $ 


ac0xl@raspberrypi:/home $ cd
ac0xl@raspberrypi:~ $ 


ac0xl@raspberrypi:~ $ touch .1002
ac0xl@raspberrypi:~ $ 


ac0xl@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/ac0xl
Created symbolic link /home/ac0xl/public_html
ac0xl@raspberrypi:~ $ 
ac0xl@raspberrypi:~ $ 


ac0xl@raspberrypi:~ $ ls -al
total 28
drwx------ 2 ac0xl www  4096 Aug 14 18:05 .
drwxr-xr-x 6 root  root 4096 Aug 14 18:02 ..
-rw-r--r-- 1 ac0xl www     0 Aug 14 18:05 .1002
-rw-r--r-- 1 ac0xl www   220 Aug 14 18:02 .bash_logout
-rw-r--r-- 1 ac0xl www  3523 Aug 14 18:02 .bashrc
-rw-r--r-- 1 ac0xl www  5290 Aug 14 18:02 .face
lrwxrwxrwx 1 ac0xl www     5 Aug 14 18:02 .face.icon -> .face
-rw-r--r-- 1 ac0xl www   807 Aug 14 18:02 .profile
lrwxrwxrwx 1 ac0xl www    27 Aug 14 18:05 public_html -> /home/local/www/users/ac0xl
ac0xl@raspberrypi:~ $ 
ac0xl@raspberrypi:~ $ 


ac0xl@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ date   ### 2995
Thu Aug 14 06:14:07 PM MDT 2025
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www delinquent-accounts   ### 3003
Adding user `delinquent-accounts' ...
Adding new user `delinquent-accounts' (1003) with group `www (123)' ...
Creating home directory `/home/delinquent-accounts' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for delinquent-accounts
Enter the new value, or press ENTER for the default
	Full Name []: delinquent-accounts
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `delinquent-accounts' to supplemental / extra groups `users' ...
Adding user `delinquent-accounts' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su delinquent-accounts   ### 3027
Password: 
delinquent-accounts@raspberrypi:/home $ 
delinquent-accounts@raspberrypi:/home $ 


delinquent-accounts@raspberrypi:/home $ cd


delinquent-accounts@raspberrypi:~ $ touch .1003
delinquent-accounts@raspberrypi:~ $ 
delinquent-accounts@raspberrypi:~ $ 


delinquent-accounts@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/delinquent-accounts
Created symbolic link /home/delinquent-accounts/public_html
delinquent-accounts@raspberrypi:~ $ 
delinquent-accounts@raspberrypi:~ $ 


delinquent-accounts@raspberrypi:~ $ ls -al
total 28
drwx------ 2 delinquent-accounts www  4096 Aug 14 18:16 .
drwxr-xr-x 7 root                root 4096 Aug 14 18:14 ..
-rw-r--r-- 1 delinquent-accounts www     0 Aug 14 18:15 .1003
-rw-r--r-- 1 delinquent-accounts www   220 Aug 14 18:14 .bash_logout
-rw-r--r-- 1 delinquent-accounts www  3523 Aug 14 18:14 .bashrc
-rw-r--r-- 1 delinquent-accounts www  5290 Aug 14 18:14 .face
lrwxrwxrwx 1 delinquent-accounts www     5 Aug 14 18:14 .face.icon -> .face
-rw-r--r-- 1 delinquent-accounts www   807 Aug 14 18:14 .profile
lrwxrwxrwx 1 delinquent-accounts www    41 Aug 14 18:16 public_html -> /home/local/www/users/delinquent-accounts
delinquent-accounts@raspberrypi:~ $ 
delinquent-accounts@raspberrypi:~ $ 


delinquent-accounts@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www documents   ### 3072
Adding user `documents' ...
Adding new user `documents' (1004) with group `www (123)' ...
Creating home directory `/home/documents' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for documents
Enter the new value, or press ENTER for the default
	Full Name []: documents
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `documents' to supplemental / extra groups `users' ...
Adding user `documents' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su documents   ### 3096
Password: 
documents@raspberrypi:/home $ 
documents@raspberrypi:/home $ 


documents@raspberrypi:/home $ cd
documents@raspberrypi:~ $ 
documents@raspberrypi:~ $ 


documents@raspberrypi:~ $ touch .1004
documents@raspberrypi:~ $ 


documents@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/documents
Created symbolic link /home/documents/public_html
documents@raspberrypi:~ $ 
documents@raspberrypi:~ $ 


documents@raspberrypi:~ $ ls -al
total 28
drwx------ 2 documents www  4096 Aug 14 18:18 .
drwxr-xr-x 8 root      root 4096 Aug 14 18:16 ..
-rw-r--r-- 1 documents www     0 Aug 14 18:18 .1004
-rw-r--r-- 1 documents www   220 Aug 14 18:16 .bash_logout
-rw-r--r-- 1 documents www  3523 Aug 14 18:16 .bashrc
-rw-r--r-- 1 documents www  5290 Aug 14 18:16 .face
lrwxrwxrwx 1 documents www     5 Aug 14 18:16 .face.icon -> .face
-rw-r--r-- 1 documents www   807 Aug 14 18:16 .profile
lrwxrwxrwx 1 documents www    31 Aug 14 18:18 public_html -> /home/local/www/users/documents
documents@raspberrypi:~ $ 
documents@raspberrypi:~ $ 


documents@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www downloads   ### 3142
Adding user `downloads' ...
Adding new user `downloads' (1005) with group `www (123)' ...
Creating home directory `/home/downloads' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for downloads
Enter the new value, or press ENTER for the default
	Full Name []: downloads
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `downloads' to supplemental / extra groups `users' ...
Adding user `downloads' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su downloads   ### 3166
Password: 
downloads@raspberrypi:/home $ 
downloads@raspberrypi:/home $ 
downloads@raspberrypi:/home $ 


downloads@raspberrypi:/home $ cd
downloads@raspberrypi:~ $ 
downloads@raspberrypi:~ $ 


downloads@raspberrypi:~ $ touch .1005
downloads@raspberrypi:~ $ 


downloads@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/downloads
Created symbolic link /home/downloads/public_html
downloads@raspberrypi:~ $ 
downloads@raspberrypi:~ $ 


downloads@raspberrypi:~ $ ls -al
total 28
drwx------ 2 downloads www  4096 Aug 14 18:20 .
drwxr-xr-x 9 root      root 4096 Aug 14 18:19 ..
-rw-r--r-- 1 downloads www     0 Aug 14 18:20 .1005
-rw-r--r-- 1 downloads www   220 Aug 14 18:19 .bash_logout
-rw-r--r-- 1 downloads www  3523 Aug 14 18:19 .bashrc
-rw-r--r-- 1 downloads www  5290 Aug 14 18:19 .face
lrwxrwxrwx 1 downloads www     5 Aug 14 18:19 .face.icon -> .face
-rw-r--r-- 1 downloads www   807 Aug 14 18:19 .profile
lrwxrwxrwx 1 downloads www    31 Aug 14 18:20 public_html -> /home/local/www/users/downloads
downloads@raspberrypi:~ $ 
downloads@raspberrypi:~ $ 


downloads@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www freedom   ### 3213
Adding user `freedom' ...
Adding new user `freedom' (1006) with group `www (123)' ...
Creating home directory `/home/freedom' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for freedom
Enter the new value, or press ENTER for the default
	Full Name []: freedom
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `freedom' to supplemental / extra groups `users' ...
Adding user `freedom' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su freedom   ### 3236
Password: 
freedom@raspberrypi:/home $ 
freedom@raspberrypi:/home $ 


freedom@raspberrypi:/home $ cd
freedom@raspberrypi:~ $ 


freedom@raspberrypi:~ $ touch .1006
freedom@raspberrypi:~ $ 
freedom@raspberrypi:~ $ 


freedom@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/freedom
Created symbolic link /home/freedom/public_html
freedom@raspberrypi:~ $ 
freedom@raspberrypi:~ $ 


freedom@raspberrypi:~ $ ls -al
total 28
drwx------  2 freedom www  4096 Aug 14 18:22 .
drwxr-xr-x 10 root    root 4096 Aug 14 18:21 ..
-rw-r--r--  1 freedom www     0 Aug 14 18:22 .1006
-rw-r--r--  1 freedom www   220 Aug 14 18:21 .bash_logout
-rw-r--r--  1 freedom www  3523 Aug 14 18:21 .bashrc
-rw-r--r--  1 freedom www  5290 Aug 14 18:21 .face
lrwxrwxrwx  1 freedom www     5 Aug 14 18:21 .face.icon -> .face
-rw-r--r--  1 freedom www   807 Aug 14 18:21 .profile
lrwxrwxrwx  1 freedom www    29 Aug 14 18:22 public_html -> /home/local/www/users/freedom
freedom@raspberrypi:~ $ 
freedom@raspberrypi:~ $ 


freedom@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www memes   ### 3282
Adding user `memes' ...
Adding new user `memes' (1007) with group `www (123)' ...
Creating home directory `/home/memes' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for memes
Enter the new value, or press ENTER for the default
	Full Name []: memes
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `memes' to supplemental / extra groups `users' ...
Adding user `memes' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su memes   ### 3305
Password: 
memes@raspberrypi:/home $ 
memes@raspberrypi:/home $ 


memes@raspberrypi:/home $ cd
memes@raspberrypi:~ $ 


memes@raspberrypi:~ $ touch .1007
memes@raspberrypi:~ $ 


memes@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/memes
Created symbolic link /home/memes/public_html
memes@raspberrypi:~ $ 
memes@raspberrypi:~ $ 


memes@raspberrypi:~ $ ls -al
total 28
drwx------  2 memes www  4096 Aug 14 18:23 .
drwxr-xr-x 11 root  root 4096 Aug 14 18:22 ..
-rw-r--r--  1 memes www     0 Aug 14 18:23 .1007
-rw-r--r--  1 memes www   220 Aug 14 18:22 .bash_logout
-rw-r--r--  1 memes www  3523 Aug 14 18:22 .bashrc
-rw-r--r--  1 memes www  5290 Aug 14 18:22 .face
lrwxrwxrwx  1 memes www     5 Aug 14 18:22 .face.icon -> .face
-rw-r--r--  1 memes www   807 Aug 14 18:22 .profile
lrwxrwxrwx  1 memes www    27 Aug 14 18:23 public_html -> /home/local/www/users/memes
memes@raspberrypi:~ $ 
memes@raspberrypi:~ $ 


memes@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www music   ### 3350
Adding user `music' ...
Adding new user `music' (1008) with group `www (123)' ...
Creating home directory `/home/music' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for music
Enter the new value, or press ENTER for the default
	Full Name []: music
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `music' to supplemental / extra groups `users' ...
Adding user `music' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su music   ### 3373
Password: 
music@raspberrypi:/home $ 


music@raspberrypi:/home $ cd
music@raspberrypi:~ $ 
music@raspberrypi:~ $ 


music@raspberrypi:~ $ touch .1008
music@raspberrypi:~ $ 


music@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/music
Created symbolic link /home/music/public_html
music@raspberrypi:~ $ 
music@raspberrypi:~ $ 


music@raspberrypi:~ $ ls -al
total 28
drwx------  2 music www  4096 Aug 14 18:26 .
drwxr-xr-x 12 root  root 4096 Aug 14 18:24 ..
-rw-r--r--  1 music www     0 Aug 14 18:26 .1008
-rw-r--r--  1 music www   220 Aug 14 18:24 .bash_logout
-rw-r--r--  1 music www  3523 Aug 14 18:24 .bashrc
-rw-r--r--  1 music www  5290 Aug 14 18:24 .face
lrwxrwxrwx  1 music www     5 Aug 14 18:24 .face.icon -> .face
-rw-r--r--  1 music www   807 Aug 14 18:24 .profile
lrwxrwxrwx  1 music www    27 Aug 14 18:26 public_html -> /home/local/www/users/music
music@raspberrypi:~ $ 
music@raspberrypi:~ $ 


music@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www notices   ### 3418
Adding user `notices' ...
Adding new user `notices' (1009) with group `www (123)' ...
Creating home directory `/home/notices' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for notices
Enter the new value, or press ENTER for the default
	Full Name []: notices
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `notices' to supplemental / extra groups `users' ...
Adding user `notices' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su notices   ### 3441
Password: 
notices@raspberrypi:/home $ 
notices@raspberrypi:/home $ 


notices@raspberrypi:/home $ cd
notices@raspberrypi:~ $ 


notices@raspberrypi:~ $ touch .1009
notices@raspberrypi:~ $ 


notices@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/notices
Created symbolic link /home/notices/public_html
notices@raspberrypi:~ $ 
notices@raspberrypi:~ $ 


notices@raspberrypi:~ $ ls -al
total 28
drwx------  2 notices www  4096 Aug 14 18:28 .
drwxr-xr-x 13 root    root 4096 Aug 14 18:26 ..
-rw-r--r--  1 notices www     0 Aug 14 18:27 .1009
-rw-r--r--  1 notices www   220 Aug 14 18:26 .bash_logout
-rw-r--r--  1 notices www  3523 Aug 14 18:26 .bashrc
-rw-r--r--  1 notices www  5290 Aug 14 18:26 .face
lrwxrwxrwx  1 notices www     5 Aug 14 18:26 .face.icon -> .face
-rw-r--r--  1 notices www   807 Aug 14 18:26 .profile
lrwxrwxrwx  1 notices www    29 Aug 14 18:28 public_html -> /home/local/www/users/notices
notices@raspberrypi:~ $ 
notices@raspberrypi:~ $ 


notices@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ sudo adduser --ingroup www pictures   ### 3485
Adding user `pictures' ...
Adding new user `pictures' (1010) with group `www (123)' ...
Creating home directory `/home/pictures' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for pictures
Enter the new value, or press ENTER for the default
	Full Name []: pictures
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `pictures' to supplemental / extra groups `users' ...
Adding user `pictures' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su pictures   ### 3509
Password: 
pictures@raspberrypi:/home $ 
pictures@raspberrypi:/home $ 


pictures@raspberrypi:/home $ cd
pictures@raspberrypi:~ $ 


pictures@raspberrypi:~ $ touch .1010
pictures@raspberrypi:~ $ 


pictures@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/pictures
Created symbolic link /home/pictures/public_html
pictures@raspberrypi:~ $ 
pictures@raspberrypi:~ $ 


pictures@raspberrypi:~ $ ls -al
total 28
drwx------  2 pictures www  4096 Aug 14 18:29 .
drwxr-xr-x 14 root     root 4096 Aug 14 18:28 ..
-rw-r--r--  1 pictures www     0 Aug 14 18:29 .1010
-rw-r--r--  1 pictures www   220 Aug 14 18:28 .bash_logout
-rw-r--r--  1 pictures www  3523 Aug 14 18:28 .bashrc
-rw-r--r--  1 pictures www  5290 Aug 14 18:28 .face
lrwxrwxrwx  1 pictures www     5 Aug 14 18:28 .face.icon -> .face
-rw-r--r--  1 pictures www   807 Aug 14 18:28 .profile
lrwxrwxrwx  1 pictures www    30 Aug 14 18:29 public_html -> /home/local/www/users/pictures
pictures@raspberrypi:~ $ 


pictures@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www rome   ### 3553
Adding user `rome' ...
Adding new user `rome' (1011) with group `www (123)' ...
Creating home directory `/home/rome' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for rome
Enter the new value, or press ENTER for the default
	Full Name []: rome
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `rome' to supplemental / extra groups `users' ...
Adding user `rome' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su rome   ### 3576
Password: 
rome@raspberrypi:/home $ 
rome@raspberrypi:/home $ 


rome@raspberrypi:/home $ cd
rome@raspberrypi:~ $ 


rome@raspberrypi:~ $ touch .1011
rome@raspberrypi:~ $ 
rome@raspberrypi:~ $ 


rome@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/rome
Created symbolic link /home/rome/public_html
rome@raspberrypi:~ $ 
rome@raspberrypi:~ $ 


rome@raspberrypi:~ $ ls -al
total 28
drwx------  2 rome www  4096 Aug 14 18:32 .
drwxr-xr-x 15 root root 4096 Aug 14 18:30 ..
-rw-r--r--  1 rome www     0 Aug 14 18:31 .1011
-rw-r--r--  1 rome www   220 Aug 14 18:30 .bash_logout
-rw-r--r--  1 rome www  3523 Aug 14 18:30 .bashrc
-rw-r--r--  1 rome www  5290 Aug 14 18:30 .face
lrwxrwxrwx  1 rome www     5 Aug 14 18:30 .face.icon -> .face
-rw-r--r--  1 rome www   807 Aug 14 18:30 .profile
lrwxrwxrwx  1 rome www    26 Aug 14 18:32 public_html -> /home/local/www/users/rome
rome@raspberrypi:~ $ 
rome@raspberrypi:~ $ 


rome@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www searles-sav-on-propane   ### 3622
Adding user `searles-sav-on-propane' ...
Adding new user `searles-sav-on-propane' (1012) with group `www (123)' ...
Creating home directory `/home/searles-sav-on-propane' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for searles-sav-on-propane
Enter the new value, or press ENTER for the default
	Full Name []: searles-sav-on-propane
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `searles-sav-on-propane' to supplemental / extra groups `users' ...
Adding user `searles-sav-on-propane' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su searles-sav-on-propane   ### 3645
Password: 
searles-sav-on-propane@raspberrypi:/home $ 
searles-sav-on-propane@raspberrypi:/home $ 


searles-sav-on-propane@raspberrypi:/home $ cd
searles-sav-on-propane@raspberrypi:~ $ 


searles-sav-on-propane@raspberrypi:~ $ touch .1012
searles-sav-on-propane@raspberrypi:~ $ 


searles-sav-on-propane@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/searles-sav-on-propane
Created symbolic link /home/searles-sav-on-propane/public_html
searles-sav-on-propane@raspberrypi:~ $ 
searles-sav-on-propane@raspberrypi:~ $ 


searles-sav-on-propane@raspberrypi:~ $ ls -al
total 28
drwx------  2 searles-sav-on-propane www  4096 Aug 14 18:34 .
drwxr-xr-x 16 root                   root 4096 Aug 14 18:32 ..
-rw-r--r--  1 searles-sav-on-propane www     0 Aug 14 18:33 .1012
-rw-r--r--  1 searles-sav-on-propane www   220 Aug 14 18:32 .bash_logout
-rw-r--r--  1 searles-sav-on-propane www  3523 Aug 14 18:32 .bashrc
-rw-r--r--  1 searles-sav-on-propane www  5290 Aug 14 18:32 .face
lrwxrwxrwx  1 searles-sav-on-propane www     5 Aug 14 18:32 .face.icon -> .face
-rw-r--r--  1 searles-sav-on-propane www   807 Aug 14 18:32 .profile
lrwxrwxrwx  1 searles-sav-on-propane www    44 Aug 14 18:34 public_html -> /home/local/www/users/searles-sav-on-propane
searles-sav-on-propane@raspberrypi:~ $ 
searles-sav-on-propane@raspberrypi:~ $ 


searles-sav-on-propane@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www va   ### 3690
Adding user `va' ...
Adding new user `va' (1013) with group `www (123)' ...
Creating home directory `/home/va' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for va
Enter the new value, or press ENTER for the default
	Full Name []: va
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `va' to supplemental / extra groups `users' ...
Adding user `va' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su va   ### 3714
Password: 
va@raspberrypi:/home $ 
va@raspberrypi:/home $ 


va@raspberrypi:/home $ cd
va@raspberrypi:~ $ 


va@raspberrypi:~ $ touch .1013
va@raspberrypi:~ $ 


va@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/va
Created symbolic link /home/va/public_html
va@raspberrypi:~ $ 
va@raspberrypi:~ $ 


va@raspberrypi:~ $ ls -al
total 28
drwx------  2 va   www  4096 Aug 14 18:35 .
drwxr-xr-x 17 root root 4096 Aug 14 18:34 ..
-rw-r--r--  1 va   www     0 Aug 14 18:35 .1013
-rw-r--r--  1 va   www   220 Aug 14 18:34 .bash_logout
-rw-r--r--  1 va   www  3523 Aug 14 18:34 .bashrc
-rw-r--r--  1 va   www  5290 Aug 14 18:34 .face
lrwxrwxrwx  1 va   www     5 Aug 14 18:34 .face.icon -> .face
-rw-r--r--  1 va   www   807 Aug 14 18:34 .profile
lrwxrwxrwx  1 va   www    24 Aug 14 18:35 public_html -> /home/local/www/users/va
va@raspberrypi:~ $ 
va@raspberrypi:~ $ 


va@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www videos   ### 3759
Adding user `videos' ...
Adding new user `videos' (1014) with group `www (123)' ...
Creating home directory `/home/videos' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for videos
Enter the new value, or press ENTER for the default
	Full Name []: videos
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `videos' to supplemental / extra groups `users' ...
Adding user `videos' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su videos   ### 3783
Password: 
videos@raspberrypi:/home $ 
videos@raspberrypi:/home $ 


videos@raspberrypi:/home $ cd
videos@raspberrypi:~ $ 


videos@raspberrypi:~ $ touch .1014
videos@raspberrypi:~ $ 


videos@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/videos
Created symbolic link /home/videos/public_html
videos@raspberrypi:~ $ 
videos@raspberrypi:~ $ 


videos@raspberrypi:~ $ ls -al
total 28
drwx------  2 videos www  4096 Aug 14 18:37 .
drwxr-xr-x 18 root   root 4096 Aug 14 18:36 ..
-rw-r--r--  1 videos www     0 Aug 14 18:37 .1014
-rw-r--r--  1 videos www   220 Aug 14 18:36 .bash_logout
-rw-r--r--  1 videos www  3523 Aug 14 18:36 .bashrc
-rw-r--r--  1 videos www  5290 Aug 14 18:36 .face
lrwxrwxrwx  1 videos www     5 Aug 14 18:36 .face.icon -> .face
-rw-r--r--  1 videos www   807 Aug 14 18:36 .profile
lrwxrwxrwx  1 videos www    28 Aug 14 18:37 public_html -> /home/local/www/users/videos
videos@raspberrypi:~ $ 
videos@raspberrypi:~ $ 


videos@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www welding   ### 3828
Adding user `welding' ...
Adding new user `welding' (1015) with group `www (123)' ...
Creating home directory `/home/welding' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for welding
Enter the new value, or press ENTER for the default
	Full Name []: welding
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `welding' to supplemental / extra groups `users' ...
Adding user `welding' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su welding   ### 3852
Password: 
welding@raspberrypi:/home $ 
welding@raspberrypi:/home $ 


welding@raspberrypi:/home $ cd
welding@raspberrypi:~ $ 


welding@raspberrypi:~ $ touch .1015
welding@raspberrypi:~ $ 


welding@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/welding
Created symbolic link /home/welding/public_html
welding@raspberrypi:~ $ 
welding@raspberrypi:~ $ 


welding@raspberrypi:~ $ ls -al
total 28
drwx------  2 welding www  4096 Aug 14 18:39 .
drwxr-xr-x 19 root    root 4096 Aug 14 18:38 ..
-rw-r--r--  1 welding www     0 Aug 14 18:39 .1015
-rw-r--r--  1 welding www   220 Aug 14 18:38 .bash_logout
-rw-r--r--  1 welding www  3523 Aug 14 18:38 .bashrc
-rw-r--r--  1 welding www  5290 Aug 14 18:38 .face
lrwxrwxrwx  1 welding www     5 Aug 14 18:38 .face.icon -> .face
-rw-r--r--  1 welding www   807 Aug 14 18:38 .profile
lrwxrwxrwx  1 welding www    29 Aug 14 18:39 public_html -> /home/local/www/users/welding
welding@raspberrypi:~ $ 
welding@raspberrypi:~ $ 


welding@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www fraud   ### 3897
Adding user `fraud' ...
Adding new user `fraud' (1016) with group `www (123)' ...
Creating home directory `/home/fraud' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for fraud
Enter the new value, or press ENTER for the default
	Full Name []: fraud
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `fraud' to supplemental / extra groups `users' ...
Adding user `fraud' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su fraud   ### 3920
Password: 
fraud@raspberrypi:/home $ 
fraud@raspberrypi:/home $ 


fraud@raspberrypi:/home $ cd
fraud@raspberrypi:~ $ 


fraud@raspberrypi:~ $ touch .1916
fraud@raspberrypi:~ $ 


fraud@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/fraud
Created symbolic link /home/fraud/public_html
fraud@raspberrypi:~ $ 
fraud@raspberrypi:~ $ 


fraud@raspberrypi:~ $ ls -al
total 28
drwx------  2 fraud www  4096 Aug 14 18:41 .
drwxr-xr-x 20 root  root 4096 Aug 14 18:40 ..
-rw-r--r--  1 fraud www     0 Aug 14 18:41 .1916
-rw-r--r--  1 fraud www   220 Aug 14 18:40 .bash_logout
-rw-r--r--  1 fraud www  3523 Aug 14 18:40 .bashrc
-rw-r--r--  1 fraud www  5290 Aug 14 18:40 .face
lrwxrwxrwx  1 fraud www     5 Aug 14 18:40 .face.icon -> .face
-rw-r--r--  1 fraud www   807 Aug 14 18:40 .profile
lrwxrwxrwx  1 fraud www    27 Aug 14 18:41 public_html -> /home/local/www/users/fraud
fraud@raspberrypi:~ $ 
fraud@raspberrypi:~ $ 


fraud@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ sudo adduser --ingroup www rifle-union-high-rifle-colorado   ### 3965
Adding user `rifle-union-high-rifle-colorado' ...
Adding new user `rifle-union-high-rifle-colorado' (1017) with group `www (123)' ...
Creating home directory `/home/rifle-union-high-rifle-colorado' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for rifle-union-high-rifle-colorado
Enter the new value, or press ENTER for the default
	Full Name []: rifle-union-high-rifle-colorado
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] y
Adding new user `rifle-union-high-rifle-colorado' to supplemental / extra groups `users' ...
Adding user `rifle-union-high-rifle-colorado' to group `users' ...
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ su rifle-union-high-rifle-colorado   3989
Password: 
rifle-union-high-rifle-colorado@raspberrypi:/home $ 
rifle-union-high-rifle-colorado@raspberrypi:/home $ 


rifle-union-high-rifle-colorado@raspberrypi:/home $ cd
rifle-union-high-rifle-colorado@raspberrypi:~ $ 


rifle-union-high-rifle-colorado@raspberrypi:~ $ touch .1017
rifle-union-high-rifle-colorado@raspberrypi:~ $ 


rifle-union-high-rifle-colorado@raspberrypi:~ $ makeweb
Created web directory /home/local/www/users/rifle-union-high-rifle-colorado
Created symbolic link /home/rifle-union-high-rifle-colorado/public_html
rifle-union-high-rifle-colorado@raspberrypi:~ $ 


rifle-union-high-rifle-colorado@raspberrypi:~ $ ls -al
total 28
drwx------  2 rifle-union-high-rifle-colorado www  4096 Aug 14 18:43 .
drwxr-xr-x 21 root                            root 4096 Aug 14 18:42 ..
-rw-r--r--  1 rifle-union-high-rifle-colorado www     0 Aug 14 18:43 .1017
-rw-r--r--  1 rifle-union-high-rifle-colorado www   220 Aug 14 18:42 .bash_logout
-rw-r--r--  1 rifle-union-high-rifle-colorado www  3523 Aug 14 18:42 .bashrc
-rw-r--r--  1 rifle-union-high-rifle-colorado www  5290 Aug 14 18:42 .face
lrwxrwxrwx  1 rifle-union-high-rifle-colorado www     5 Aug 14 18:42 .face.icon -> .face
-rw-r--r--  1 rifle-union-high-rifle-colorado www   807 Aug 14 18:42 .profile
lrwxrwxrwx  1 rifle-union-high-rifle-colorado www    53 Aug 14 18:43 public_html -> /home/local/www/users/rifle-union-high-rifle-colorado
rifle-union-high-rifle-colorado@raspberrypi:~ $ 
rifle-union-high-rifle-colorado@raspberrypi:~ $ 


rifle-union-high-rifle-colorado@raspberrypi:~ $ exit
exit
pi@raspberrypi:/home $ 



pi@raspberrypi:/home $ date   ### 4030
Thu Aug 14 06:43:46 PM MDT 2025
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ ls -al   ### 4035
total 84
drwxr-xr-x 21 root                            root 4096 Aug 14 18:42 .
drwxr-xr-x 18 root                            root 4096 May 12 18:17 ..
drwx------  2 a0                              www  4096 Aug 14 15:46 a0
drwx------  2 ac0xl                           www  4096 Aug 14 18:06 ac0xl
drwx------  2 delinquent-accounts             www  4096 Aug 14 18:16 delinquent-accounts
drwx------  2 documents                       www  4096 Aug 14 18:18 documents
drwx------  2 downloads                       www  4096 Aug 14 18:20 downloads
drwx------  2 fraud                           www  4096 Aug 14 18:41 fraud
drwx------  2 freedom                         www  4096 Aug 14 18:22 freedom
drwxr-xr-x  5 root                            root 4096 Aug 14 15:19 local
drwx------  2 memes                           www  4096 Aug 14 18:24 memes
drwx------  2 music                           www  4096 Aug 14 18:26 music
drwx------  2 notices                         www  4096 Aug 14 18:28 notices
drwx------ 18 pi                              pi   4096 Aug 14 17:52 pi
drwx------  2 pictures                        www  4096 Aug 14 18:30 pictures
drwx------  2 rifle-union-high-rifle-colorado www  4096 Aug 14 18:43 rifle-union-high-rifle-colorado
drwx------  2 rome                            www  4096 Aug 14 18:32 rome
drwx------  2 searles-sav-on-propane          www  4096 Aug 14 18:34 searles-sav-on-propane
drwx------  2 va                              www  4096 Aug 14 18:36 va
drwx------  2 videos                          www  4096 Aug 14 18:37 videos
drwx------  2 welding                         www  4096 Aug 14 18:39 welding
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 
pi@raspberrypi:/home $ 


pi@raspberrypi:/home $ cd /home/local/www/users   ### 4065
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ ls -al   ### 4072
total 88
drwxrwxr-x 19 root                            www 4096 Aug 14 18:43 .
drwxr-xr-x  5 root                            www 4096 Aug 14 16:28 ..
drwxr-xr-x  2 a0                              www 4096 Aug 14 15:39 a0
drwxr-xr-x  2 ac0xl                           www 4096 Aug 14 18:05 ac0xl
drwxr-xr-x  2 delinquent-accounts             www 4096 Aug 14 18:16 delinquent-accounts
drwxr-xr-x  2 documents                       www 4096 Aug 14 18:18 documents
drwxr-xr-x  2 downloads                       www 4096 Aug 14 18:20 downloads
-rw-r--r--  1 pi                              pi   533 Jan  8  2020 favicon.ico
drwxr-xr-x  2 fraud                           www 4096 Aug 14 18:41 fraud
drwxr-xr-x  2 freedom                         www 4096 Aug 14 18:22 freedom
drwxr-xr-x  2 memes                           www 4096 Aug 14 18:23 memes
drwxr-xr-x  2 music                           www 4096 Aug 14 18:26 music
drwxr-xr-x  2 notices                         www 4096 Aug 14 18:28 notices
drwxr-xr-x  2 pictures                        www 4096 Aug 14 18:29 pictures
-rw-r--r--  1 pi                              pi   308 Aug 13  2021 readme.txt
drwxr-xr-x  2 rifle-union-high-rifle-colorado www 4096 Aug 14 18:43 rifle-union-high-rifle-colorado
-rw-r--r--  1 pi                              pi    27 Jan  8  2020 robots.txt
drwxr-xr-x  2 rome                            www 4096 Aug 14 18:32 rome
drwxr-xr-x  2 searles-sav-on-propane          www 4096 Aug 14 18:34 searles-sav-on-propane
drwxr-xr-x  2 va                              www 4096 Aug 14 18:35 va
drwxr-xr-x  2 videos                          www 4096 Aug 14 18:37 videos
drwxr-xr-x  2 welding                         www 4096 Aug 14 18:39 welding
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ date   ### 4101
Thu Aug 14 06:47:07 PM MDT 2025
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ df -H   ### 4109
Filesystem      Size  Used Avail Use% Mounted on
udev            4.2G     0  4.2G   0% /dev
tmpfs           846M   15M  831M   2% /run
/dev/mmcblk0p2  244G  6.4G  225G   3% /
tmpfs           4.3G   33k  4.3G   1% /dev/shm
tmpfs           5.3M   50k  5.2M   1% /run/lock
/dev/mmcblk0p1  535M   72M  464M  14% /boot/firmware
tmpfs           846M  263k  845M   1% /run/user/1000
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 
pi@raspberrypi:/home/local/www/users $ 


pi@raspberrypi:/home/local/www/users $ cd   ### 4123
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ ps -e   ### 4130
    PID TTY          TIME CMD
      1 ?        00:00:02 systemd
      2 ?        00:00:00 kthreadd
      3 ?        00:00:00 pool_workqueue_release
      4 ?        00:00:00 kworker/R-kvfree_rcu_reclaim
      5 ?        00:00:00 kworker/R-rcu_gp
      6 ?        00:00:00 kworker/R-sync_wq
      7 ?        00:00:00 kworker/R-slub_flushwq
      8 ?        00:00:00 kworker/R-netns
     13 ?        00:00:00 kworker/R-mm_percpu_wq
     14 ?        00:00:00 rcu_tasks_kthread
     15 ?        00:00:00 rcu_tasks_rude_kthread
     16 ?        00:00:00 rcu_tasks_trace_kthread
     17 ?        00:00:00 ksoftirqd/0
     18 ?        00:00:01 rcu_preempt
     19 ?        00:00:00 rcu_exp_par_gp_kthread_worker/0
     20 ?        00:00:00 rcu_exp_gp_kthread_worker
     21 ?        00:00:00 migration/0
     22 ?        00:00:00 cpuhp/0
     23 ?        00:00:00 cpuhp/1
     24 ?        00:00:00 migration/1
     25 ?        00:00:00 ksoftirqd/1
     28 ?        00:00:00 cpuhp/2
     29 ?        00:00:00 migration/2
     30 ?        00:00:00 ksoftirqd/2
     33 ?        00:00:00 cpuhp/3
     34 ?        00:00:00 migration/3
     35 ?        00:00:00 ksoftirqd/3
     42 ?        00:00:00 kdevtmpfs
     43 ?        00:00:00 kworker/R-inet_frag_wq
     44 ?        00:00:00 kauditd
     45 ?        00:00:00 khungtaskd
     46 ?        00:00:00 oom_reaper
     48 ?        00:00:00 kworker/R-writeback
     49 ?        00:00:00 kcompactd0
     50 ?        00:00:00 kcompactd1
     51 ?        00:00:00 kcompactd2
     52 ?        00:00:00 kcompactd3
     53 ?        00:00:00 kcompactd4
     54 ?        00:00:00 kcompactd5
     55 ?        00:00:00 kcompactd6
     56 ?        00:00:00 kcompactd7
     57 ?        00:00:00 kworker/R-kintegrityd
     58 ?        00:00:00 kworker/R-kblockd
     59 ?        00:00:00 kworker/R-blkcg_punt_bio
     62 ?        00:00:00 watchdogd
     65 ?        00:00:00 kworker/3:1H-kblockd
     66 ?        00:00:00 kworker/R-rpciod
     67 ?        00:00:00 kworker/R-xprtiod
     70 ?        00:00:00 kswapd0
     71 ?        00:00:00 kswapd1
     72 ?        00:00:00 kswapd2
     73 ?        00:00:00 kswapd3
     74 ?        00:00:00 kswapd4
     75 ?        00:00:00 kswapd5
     76 ?        00:00:00 kswapd6
     77 ?        00:00:00 kswapd7
     78 ?        00:00:00 kworker/R-nfsiod
     79 ?        00:00:00 kworker/R-kthrotld
     84 ?        00:00:00 hwrng
     85 ?        00:00:00 kworker/R-iscsi_conn_cleanup
     86 ?        00:00:00 kworker/R-nvme-wq
     87 ?        00:00:00 kworker/R-nvme-reset-wq
     88 ?        00:00:00 kworker/R-nvme-delete-wq
     89 ?        00:00:00 kworker/R-DWC Notification WorkQ
     90 ?        00:00:00 kworker/R-uas
     92 ?        00:00:01 kworker/u21:0-brcmf_wq/mmc1:0001:1
     93 ?        00:00:00 kworker/u22:0
     94 ?        00:00:00 kworker/u23:0
     95 ?        00:00:00 kworker/u24:0
     96 ?        00:00:00 kworker/u25:0
     99 ?        00:00:00 irq/38-aerdrv
    106 ?        00:00:00 kworker/R-sdhci
    108 ?        00:00:00 irq/162-mmc1
    111 ?        00:00:00 kworker/R-sdhci
    113 ?        00:00:00 irq/161-mmc0
    121 ?        00:00:00 kworker/R-mmc_complete
    150 ?        00:00:00 kworker/2:1H-kblockd
    227 ?        00:00:00 kworker/R-v3d_bin
    228 ?        00:00:00 kworker/R-v3d_render
    229 ?        00:00:00 kworker/R-v3d_tfu
    230 ?        00:00:00 kworker/R-v3d_csd
    231 ?        00:00:00 kworker/R-v3d_cache_clean
    232 ?        00:00:00 kworker/R-v3d_cpu
    257 ?        00:00:00 jbd2/mmcblk0p2-8
    258 ?        00:00:00 kworker/R-ext4-rsv-conversion
    277 ?        00:00:00 kworker/R-mld
    278 ?        00:00:00 kworker/R-ipv6_addrconf
    327 ?        00:00:00 systemd-journal
    345 ?        00:00:00 systemd-udevd
    411 ?        00:00:00 irq/171-vc4 hdmi hpd connected
    414 ?        00:00:00 irq/172-vc4 hdmi hpd disconnected
    415 ?        00:00:00 cec-vc4-hdmi-0
    416 ?        00:00:00 irq/174-vc4 hdmi cec rx
    417 ?        00:00:00 spi10
    418 ?        00:00:00 irq/175-vc4 hdmi cec tx
    445 ?        00:00:00 irq/176-vc4 hdmi hpd connected
    446 ?        00:00:00 irq/177-vc4 hdmi hpd disconnected
    447 ?        00:00:00 cec-vc4-hdmi-1
    451 ?        00:00:00 irq/178-vc4 hdmi cec rx
    455 ?        00:00:00 irq/179-vc4 hdmi cec tx
    467 ?        00:00:00 card1-crtc0
    468 ?        00:00:00 card1-crtc1
    469 ?        00:00:00 card1-crtc2
    470 ?        00:00:00 card1-crtc3
    483 ?        00:00:00 irq/185-1000800000.codec
    492 ?        00:00:00 kworker/R-cfg80211
    568 ?        00:00:00 kworker/R-brcmf_wq/mmc1:0001:1
    569 ?        00:00:00 brcmf_wdog/mmc1:0001:1
    597 ?        00:00:00 systemd-timesyn
    603 ?        00:00:00 kworker/u21:3-hci0
    609 ?        00:00:00 accounts-daemon
    612 ?        00:00:00 avahi-daemon
    613 ?        00:00:00 bluetoothd
    614 ?        00:00:00 cron
    615 ?        00:00:01 dbus-daemon
    623 ?        00:00:00 polkitd
    629 ?        00:00:00 systemd-logind
    634 ?        00:00:04 thd
    638 ?        00:00:00 udisksd
    644 ?        00:00:00 avahi-daemon
    739 ?        00:00:01 NetworkManager
    757 ?        00:00:00 wpa_supplicant
    765 ?        00:00:00 ModemManager
    784 ?        00:00:00 cupsd
    786 ?        00:00:00 lightdm
    809 tty7     00:02:17 Xorg
    810 tty1     00:00:00 login
    811 ?        00:00:00 agetty
    827 ?        00:00:00 lightdm
    832 ?        00:00:00 systemd
    833 ?        00:00:00 (sd-pam)
    848 ?        00:00:00 pipewire
    849 ?        00:00:00 pipewire
    850 ?        00:00:00 wireplumber
    851 ?        00:00:00 pipewire-pulse
    852 ?        00:00:00 lxsession
    862 ?        00:00:00 dbus-daemon
    867 ?        00:00:00 rtkit-daemon
    934 ?        00:00:00 ssh-agent
    944 ?        00:00:00 gvfsd
    986 ?        00:00:00 gvfsd-fuse
    996 ?        00:00:03 openbox
    999 ?        00:00:00 lxpolkit
   1002 ?        00:01:29 lxpanel
   1005 ?        00:00:02 pcmanfm
   1012 ?        00:00:00 ssh-agent
   1028 ?        00:00:00 systemd-inhibit
   1031 ?        00:00:00 xcompmgr
   1035 ?        00:00:00 gtk-nop
   1051 ?        00:00:00 krfcommd
   1084 ?        00:00:00 gvfs-udisks2-vo
   1089 ?        00:00:00 gvfs-goa-volume
   1093 ?        00:00:00 gvfs-mtp-volume
   1097 ?        00:00:00 gvfs-afc-volume
   1102 ?        00:00:00 gvfs-gphoto2-vo
   1107 ?        00:00:00 gvfsd-trash
   1116 ?        00:00:00 menu-cached
   1257 tty1     00:00:00 bash
   1289 ?        00:00:00 cups-browsed
   1669 ?        00:01:02 geany
   1707 pts/0    00:00:00 bash
   1811 ?        00:00:49 lxterminal
   1817 pts/1    00:00:00 bash
   9488 ?        00:00:15 mousepad
   9492 ?        00:00:00 xdg-desktop-por
   9496 ?        00:00:00 xdg-document-po
   9499 ?        00:00:00 xdg-permission-
   9505 ?        00:00:00 fusermount3
   9510 ?        00:00:00 xdg-desktop-por
   9555 ?        00:00:00 gnome-keyring-d
   9556 ?        00:00:00 gnome-keyring-d
   9568 ?        00:00:00 dconf-service
   9598 ?        00:00:00 gvfsd-network
   9612 ?        00:00:00 gvfsd-dnssd
   9632 ?        00:00:00 kworker/u17:0-kvfree_rcu_reclaim
   9756 ?        00:00:00 gvfsd-metadata
  10456 pts/2    00:00:00 bash
  12197 ?        00:00:00 kworker/u20:1-events_unbound
  12503 pts/3    00:00:00 bash
  13039 pts/5    00:00:00 bash
  15037 ?        00:00:00 kworker/u18:2-events_unbound
  15461 ?        00:00:00 kworker/u19:1-kvfree_rcu_reclaim
  16020 ?        00:01:44 firefox
  16028 ?        00:00:00 crashhelper
  16105 ?        00:00:00 Socket Process
  16156 ?        00:00:00 forkserver
  16160 ?        00:00:00 kworker/0:0H-mmc_complete
  16165 ?        00:00:00 kworker/1:0H-kblockd
  16183 ?        00:00:09 WebExtensions
  16197 ?        00:00:00 RDD Process
  16250 ?        00:00:02 Isolated Web Co
  16272 ?        00:00:01 Isolated Web Co
  16287 ?        00:00:06 Privileged Cont
  16379 ?        00:00:00 Utility Process
  16474 ?        00:00:00 upowerd
  17039 ?        00:00:00 kworker/3:0H-kblockd
  17218 ?        00:00:01 Isolated Web Co
  17346 ?        00:00:00 Web Content
  17438 ?        00:00:00 Web Content
  17594 pts/4    00:00:00 bash
  17758 ?        00:00:00 thttpd_wrapper
  17895 ?        00:00:00 Web Content
  19106 ?        00:00:00 kworker/u19:0-kvfree_rcu_reclaim
  19714 ?        00:00:10 thttpd
  20275 ?        00:00:00 kworker/u17:1-kvfree_rcu_reclaim
  20394 ?        00:00:00 kworker/3:0-events
  20838 pts/7    00:00:00 bash
  21030 ?        00:00:00 kworker/0:1-events
  21793 ?        00:00:00 kworker/u16:0-v3d_bin
  22044 ?        00:00:00 kworker/u19:2-kvfree_rcu_reclaim
  22183 ?        00:00:00 kworker/1:1-mm_percpu_wq
  22590 ?        00:00:00 kworker/3:1-events
  22638 ?        00:00:00 kworker/u16:2-v3d_render
  22889 ?        00:00:00 kworker/0:3-events
  23487 ?        00:00:00 kworker/u20:0-events_unbound
  23611 ?        00:00:00 kworker/u18:1-events_unbound
  24032 ?        00:00:00 kworker/2:1-events_power_efficient
  24219 ?        00:00:00 kworker/1:0+events
  24751 ?        00:00:00 kworker/u20:2-events_unbound
  24917 ?        00:00:00 kworker/2:2-mm_percpu_wq
  24962 ?        00:00:00 kworker/2:2H-kblockd
  25095 ?        00:00:00 kworker/1:1H
  25177 ?        00:00:00 kworker/2:3-events
  25229 ?        00:00:00 kworker/0:0-events
  25279 ?        00:00:00 kworker/3:3-events_power_efficient
  25282 ?        00:00:00 kworker/u17:2-events_unbound
  25286 ?        00:00:00 kworker/0:1H
  25423 ?        00:00:00 kworker/u16:1-v3d_bin
  25662 ?        00:00:00 kworker/1:2-events
  25695 ?        00:00:00 kworker/1:3
  25731 ?        00:00:00 kworker/0:2-events
  25813 pts/1    00:00:00 ps
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ date   ### 4370
Thu Aug 14 06:48:51 PM MDT 2025
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ df -H   ### 4378
Filesystem      Size  Used Avail Use% Mounted on
udev            4.2G     0  4.2G   0% /dev
tmpfs           846M   15M  831M   2% /run
/dev/mmcblk0p2  244G  6.4G  225G   3% /
tmpfs           4.3G   33k  4.3G   1% /dev/shm
tmpfs           5.3M   50k  5.2M   1% /run/lock
/dev/mmcblk0p1  535M   72M  464M  14% /boot/firmware
tmpfs           846M  263k  845M   1% /run/user/1000
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ ls -al   ### This is to check if anything got added here like a touch number or the public_html symbolic link.   ### 4392
total 584
drwx------ 18 pi   pi     4096 Aug 14 17:52 .
drwxr-xr-x 21 root root   4096 Aug 14 18:42 ..
-rw-r--r--  1 pi   pi   289408 Aug 13 17:15 2025-08-13-64bit-thttpd-build.txt
-rw-r--r--  1 pi   pi   111967 Aug 14 17:52 2025-08-14-64-bit-thttpd-build.txt
-rw-r--r--  1 pi   pi    72851 Aug 14 15:58 2025-08-14-64-bit-thttpd-build.txt~
-rw-------  1 pi   pi    12520 Aug 14 14:33 .bash_history
-rw-r--r--  1 pi   pi      220 May 12 18:06 .bash_logout
-rw-r--r--  1 pi   pi     3523 May 12 18:06 .bashrc
drwxr-xr-x  2 pi   pi     4096 May 12 18:10 Bookshelf
drwx------  9 pi   pi     4096 Aug 14 17:13 .cache
drwxr-xr-x 18 pi   pi     4096 Aug 14 14:33 .config
drwx------  3 pi   pi     4096 Aug 14 11:47 .dbus
drwxr-xr-x  2 pi   pi     4096 Aug 14 11:44 Desktop
drwxr-xr-x  2 pi   pi     4096 Aug 14 11:44 Documents
drwxr-xr-x  2 pi   pi     4096 Aug 14 17:24 Downloads
drwxr-xr-x  9 pi   pi     4096 Aug 14 18:07 freedom
-rw-------  1 pi   pi       20 Aug 14 17:05 .lesshst
drwxr-xr-x  4 pi   pi     4096 Aug 14 11:44 .local
drwx------  4 pi   pi     4096 Aug 14 17:11 .mozilla
drwxr-xr-x  2 pi   pi     4096 Aug 14 11:44 Music
drwxr-xr-x  2 pi   pi     4096 Aug 14 11:44 Pictures
drwx------  3 pi   pi     4096 Aug 14 12:58 .pp_backup
-rw-r--r--  1 pi   pi      807 May 12 18:06 .profile
drwxr-xr-x  2 pi   pi     4096 Aug 14 11:44 Public
-rw-r--r--  1 pi   pi        0 Aug 14 11:44 .sudo_as_admin_successful
drwxr-xr-x  2 pi   pi     4096 Aug 14 11:44 Templates
drwxr-xr-x  2 pi   pi     4096 Aug 14 11:44 Videos
-rw-------  1 pi   pi       56 Aug 14 14:34 .Xauthority
-rw-------  1 pi   pi     2437 Aug 14 14:34 .xsession-errors
-rw-------  1 pi   pi     2404 Aug 14 14:02 .xsession-errors.old
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ ls -al /home/local/sbin   ### 4430
total 204
drwxr-xr-x 4 root root   4096 Aug 14 17:35 .
drwxr-xr-x 5 root root   4096 Aug 14 15:19 ..
-rwxr-xr-- 1 pi   pi      185 Aug 31  2021 datelog
-r-xr-xr-- 1 pi   pi      185 Aug 31  2021 datelog~
-rwxr-xr-- 1 pi   pi      385 Aug 31  2021 dead-thttpd
-r-xr-xr-- 1 pi   pi      385 Aug 31  2021 dead-thttpd~
-rwxr-xr-x 1 root root  72288 Aug 14 15:19 htpasswd
-rwxr-sr-x 1 root www   71472 Aug 14 15:19 makeweb
drwxr-xr-x 2 pi   pi     4096 Jul 12  2022 os-debug
-r-xr-xr-x 1 root root   2878 Aug 14 15:19 syslogtocern
-r-xr-xr-x 1 bin  bin  157808 Aug 14 15:19 thttpd
drwxr-xr-x 3 pi   pi     4096 Jul 12  2022 thttpd-extras
-rwxr-xr-- 1 pi   pi      153 Aug 31  2021 thttpd_wrapper
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    Notice that the binary "thttpd" file on a 64-bit OS is only 157,808 bytes!   ### 4451
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # If you are saving the terminal file, do it now!
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ date   ### 4459
Thu Aug 14 06:52:48 PM MDT 2025
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    Stop the computer, then start the computer to see where "thttpd_wrapper" ends up, by using ps -e, as the computer loads from scratch!   ### 4465
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 






pi@raspberrypi:~ $ date   ### 4475
Thu Aug 14 06:58:38 PM MDT 2025
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ ps -e   ### 4480
    PID TTY          TIME CMD
      1 ?        00:00:02 systemd
      2 ?        00:00:00 kthreadd
      3 ?        00:00:00 pool_workqueue_release
      4 ?        00:00:00 kworker/R-kvfree_rcu_reclaim
      5 ?        00:00:00 kworker/R-rcu_gp
      6 ?        00:00:00 kworker/R-sync_wq
      7 ?        00:00:00 kworker/R-slub_flushwq
      8 ?        00:00:00 kworker/R-netns
      9 ?        00:00:00 kworker/0:0-rcu_gp
     10 ?        00:00:00 kworker/0:0H-mmc_complete
     11 ?        00:00:00 kworker/0:1-events
     12 ?        00:00:00 kworker/u16:0-v3d_render
     13 ?        00:00:00 kworker/R-mm_percpu_wq
     14 ?        00:00:00 rcu_tasks_kthread
     15 ?        00:00:00 rcu_tasks_rude_kthread
     16 ?        00:00:00 rcu_tasks_trace_kthread
     17 ?        00:00:00 ksoftirqd/0
     18 ?        00:00:00 rcu_preempt
     19 ?        00:00:00 rcu_exp_par_gp_kthread_worker/0
     20 ?        00:00:00 rcu_exp_gp_kthread_worker
     21 ?        00:00:00 migration/0
     22 ?        00:00:00 cpuhp/0
     23 ?        00:00:00 cpuhp/1
     24 ?        00:00:00 migration/1
     25 ?        00:00:00 ksoftirqd/1
     26 ?        00:00:00 kworker/1:0-events
     27 ?        00:00:00 kworker/1:0H-events_highpri
     28 ?        00:00:00 cpuhp/2
     29 ?        00:00:00 migration/2
     30 ?        00:00:00 ksoftirqd/2
     31 ?        00:00:00 kworker/2:0-rcu_gp
     32 ?        00:00:00 kworker/2:0H-events_highpri
     33 ?        00:00:00 cpuhp/3
     34 ?        00:00:00 migration/3
     35 ?        00:00:00 ksoftirqd/3
     36 ?        00:00:00 kworker/3:0-events_freezable
     37 ?        00:00:00 kworker/3:0H-events_highpri
     38 ?        00:00:00 kworker/u17:0-events_unbound
     39 ?        00:00:00 kworker/u18:0-events_unbound
     40 ?        00:00:00 kworker/u19:0-events_unbound
     41 ?        00:00:00 kworker/u20:0-kvfree_rcu_reclaim
     42 ?        00:00:00 kdevtmpfs
     43 ?        00:00:00 kworker/R-inet_frag_wq
     44 ?        00:00:00 kauditd
     45 ?        00:00:00 khungtaskd
     46 ?        00:00:00 oom_reaper
     47 ?        00:00:00 kworker/u17:1-async
     48 ?        00:00:00 kworker/R-writeback
     49 ?        00:00:00 kcompactd0
     50 ?        00:00:00 kcompactd1
     51 ?        00:00:00 kcompactd2
     52 ?        00:00:00 kcompactd3
     53 ?        00:00:00 kcompactd4
     54 ?        00:00:00 kcompactd5
     55 ?        00:00:00 kcompactd6
     56 ?        00:00:00 kcompactd7
     57 ?        00:00:00 kworker/R-kintegrityd
     58 ?        00:00:00 kworker/R-kblockd
     59 ?        00:00:00 kworker/R-blkcg_punt_bio
     60 ?        00:00:00 kworker/u17:2-events_unbound
     61 ?        00:00:00 kworker/u17:3-async
     62 ?        00:00:00 watchdogd
     63 ?        00:00:00 kworker/1:1-events
     64 ?        00:00:00 kworker/3:1-events
     65 ?        00:00:00 kworker/2:1-mm_percpu_wq
     66 ?        00:00:00 kworker/0:1H-mmc_complete
     67 ?        00:00:00 kworker/R-rpciod
     68 ?        00:00:00 kworker/R-xprtiod
     69 ?        00:00:00 kswapd0
     70 ?        00:00:00 kswapd1
     71 ?        00:00:00 kswapd2
     72 ?        00:00:00 kswapd3
     73 ?        00:00:00 kswapd4
     74 ?        00:00:00 kswapd5
     75 ?        00:00:00 kswapd6
     76 ?        00:00:00 kswapd7
     77 ?        00:00:00 kworker/R-nfsiod
     78 ?        00:00:00 kworker/R-kthrotld
     79 ?        00:00:00 kworker/2:2-rcu_gp
     80 ?        00:00:00 kworker/2:3-cgroup_destroy
     81 ?        00:00:00 kworker/2:4-events
     82 ?        00:00:00 kworker/u19:1-kvfree_rcu_reclaim
     84 ?        00:00:00 hwrng
     85 ?        00:00:00 kworker/R-iscsi_conn_cleanup
     86 ?        00:00:00 kworker/R-nvme-wq
     87 ?        00:00:00 kworker/R-nvme-reset-wq
     88 ?        00:00:00 kworker/R-nvme-delete-wq
     89 ?        00:00:00 kworker/R-DWC Notification WorkQ
     90 ?        00:00:00 kworker/R-uas
     91 ?        00:00:00 kworker/1:1H-kblockd
     92 ?        00:00:00 kworker/u21:0-hci0
     93 ?        00:00:00 kworker/u22:0
     94 ?        00:00:00 kworker/u23:0
     95 ?        00:00:00 kworker/u24:0
     96 ?        00:00:00 kworker/u25:0
     97 ?        00:00:00 kworker/u19:2-writeback
     98 ?        00:00:00 irq/38-aerdrv
    100 ?        00:00:00 kworker/u18:1
    101 ?        00:00:00 kworker/1:2-events
    102 ?        00:00:00 kworker/1:3
    103 ?        00:00:00 kworker/1:4
    104 ?        00:00:00 kworker/R-sdhci
    106 ?        00:00:00 irq/161-mmc0
    107 ?        00:00:00 kworker/u19:3
    109 ?        00:00:00 kworker/R-sdhci
    110 ?        00:00:00 irq/162-mmc1
    111 ?        00:00:00 kworker/3:2-rcu_gp
    112 ?        00:00:00 kworker/3:3-events
    114 ?        00:00:00 kworker/u20:1-ext4-rsv-conversion
    115 ?        00:00:00 kworker/R-mmc_complete
    138 ?        00:00:00 kworker/3:1H-kblockd
    162 ?        00:00:00 kworker/2:1H-kblockd
    221 ?        00:00:00 kworker/R-v3d_bin
    222 ?        00:00:00 kworker/R-v3d_render
    223 ?        00:00:00 kworker/R-v3d_tfu
    224 ?        00:00:00 kworker/R-v3d_csd
    225 ?        00:00:00 kworker/R-v3d_cache_clean
    226 ?        00:00:00 kworker/R-v3d_cpu
    227 ?        00:00:00 kworker/3:2H-kblockd
    228 ?        00:00:00 kworker/u18:2-kvfree_rcu_reclaim
    242 ?        00:00:00 kworker/u20:2-events_unbound
    253 ?        00:00:00 jbd2/mmcblk0p2-8
    254 ?        00:00:00 kworker/R-ext4-rsv-conversion
    272 ?        00:00:00 kworker/R-mld
    273 ?        00:00:00 kworker/R-ipv6_addrconf
    274 ?        00:00:00 kworker/u16:1-v3d_render
    292 ?        00:00:00 kworker/1:2H-kblockd
    321 ?        00:00:00 systemd-journal
    338 ?        00:00:00 systemd-udevd
    418 ?        00:00:00 irq/170-vc4 hdmi hpd connected
    420 ?        00:00:00 irq/171-vc4 hdmi hpd disconnected
    421 ?        00:00:00 cec-vc4-hdmi-0
    422 ?        00:00:00 irq/172-vc4 hdmi cec rx
    423 ?        00:00:00 irq/173-vc4 hdmi cec tx
    438 ?        00:00:00 kworker/0:2-events
    444 ?        00:00:00 spi10
    446 ?        00:00:00 irq/176-vc4 hdmi hpd connected
    447 ?        00:00:00 irq/177-vc4 hdmi hpd disconnected
    448 ?        00:00:00 cec-vc4-hdmi-1
    449 ?        00:00:00 irq/178-vc4 hdmi cec rx
    450 ?        00:00:00 irq/179-vc4 hdmi cec tx
    457 ?        00:00:00 card1-crtc0
    458 ?        00:00:00 card1-crtc1
    459 ?        00:00:00 card1-crtc2
    460 ?        00:00:00 card1-crtc3
    473 ?        00:00:00 irq/184-1000800000.codec
    478 ?        00:00:00 kworker/R-cfg80211
    488 ?        00:00:00 kworker/0:3-events
    498 ?        00:00:00 kworker/R-brcmf_wq/mmc1:0001:1
    503 ?        00:00:00 brcmf_wdog/mmc1:0001:1
    544 ?        00:00:00 kworker/u21:1-hci0
    545 ?        00:00:00 kworker/u21:2-brcmf_wq/mmc1:0001:1
    574 ?        00:00:00 kworker/2:2H-kblockd
    588 ?        00:00:00 kworker/0:2H-kblockd
    596 ?        00:00:00 systemd-timesyn
    605 ?        00:00:00 accounts-daemon
    607 ?        00:00:00 avahi-daemon
    608 ?        00:00:00 bluetoothd
    609 ?        00:00:00 cron
    610 ?        00:00:00 dbus-daemon
    614 ?        00:00:00 polkitd
    624 ?        00:00:00 systemd-logind
    627 ?        00:00:00 thd
    633 ?        00:00:00 udisksd
    636 ?        00:00:00 avahi-daemon
    730 ?        00:00:00 NetworkManager
    748 ?        00:00:00 wpa_supplicant
    758 ?        00:00:00 ModemManager
    778 ?        00:00:00 cupsd
    780 ?        00:00:00 lightdm
    804 tty7     00:00:00 Xorg
    816 ?        00:00:00 lightdm
    821 ?        00:00:00 systemd
    822 ?        00:00:00 (sd-pam)
    837 ?        00:00:00 pipewire
    838 ?        00:00:00 pipewire
    839 ?        00:00:00 wireplumber
    840 ?        00:00:00 pipewire-pulse
    841 ?        00:00:00 lxsession
    851 ?        00:00:00 dbus-daemon
    856 ?        00:00:00 rtkit-daemon
    923 ?        00:00:00 ssh-agent
    933 ?        00:00:00 gvfsd
    975 ?        00:00:00 gvfsd-fuse
    985 ?        00:00:00 openbox
    988 ?        00:00:00 lxpolkit
    991 ?        00:00:00 lxpanel
    994 ?        00:00:00 pcmanfm
   1001 ?        00:00:00 ssh-agent
   1017 ?        00:00:00 systemd-inhibit
   1020 ?        00:00:00 xcompmgr
   1036 ?        00:00:00 gtk-nop
   1038 ?        00:00:00 kworker/u16:2-v3d_render
   1041 ?        00:00:00 krfcommd
   1074 ?        00:00:00 gvfs-udisks2-vo
   1079 ?        00:00:00 gvfs-goa-volume
   1083 ?        00:00:00 gvfs-mtp-volume
   1087 ?        00:00:00 gvfs-afc-volume
   1092 ?        00:00:00 gvfs-gphoto2-vo
   1097 ?        00:00:00 gvfsd-trash
   1106 ?        00:00:00 menu-cached
   1251 ?        00:00:02 packagekitd
   1264 ?        00:00:00 cups-browsed
   1268 ?        00:00:00 thttpd_wrapper
   1270 tty1     00:00:00 login
   1271 ?        00:00:00 agetty
   1273 ?        00:00:00 thttpd
   1280 tty1     00:00:00 bash
   1672 ?        00:00:00 lxterminal
   1678 pts/0    00:00:00 bash
   1720 ?        00:00:00 kworker/u16:3-v3d_bin
   1736 pts/0    00:00:00 ps
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 



pi@raspberrypi:~ $ ps -p 1268 1273   ### 4700
    PID TTY      STAT   TIME COMMAND
   1268 ?        S      0:00 /bin/sh /home/local/sbin/thttpd_wrapper
   1273 ?        Ss     0:00 /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ ### **************************************************************** ### 4707
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ # cd ~/freedom   ### (The directory "freedom" should be in "/home/(pi)/" (the main user's home directory)).   ### 4713
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    It would probably be a good idea to read through this install before one sits down and starts building their web site, just to get an idea of what one will be copying and what the computer will be sending back. "thttpd" will start when the computer loads and if something causes it to stop, it will restart in 10 seconds. "thttpd" is designed to be a 24/7/365 World Wide Web server. When the OS needs to "reboot", thttpd will be running by the time the desktop appears. It is totally AWESOME!!!   ### 4719
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $      Since the Raspberry Pi has wireless capabilities, using a wireless router (even one not connected to the internet), in a classroom situation, more than 200 students can be connected to the same "C" class network (192.168.xxx.0/24) and can each connect to each other's web servers, where xxx is the same for all, and the 0 position can very from 2 - 254, with 0 representing the network, 255 is reserved for the broadcast address, and 1 reserved for the router address. With the router set up as a “DHCP Server” all of the computers would receive dynamic IP addresses and all of their http websites would be available in the addresses they were assigned. The http port number (80) is assigned by thttpd and the IP addresses are assigned from the router.   ### 4724
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $      I have tried to make this install simple enough even a third of fourth grader should be able to get through it. Since I have had trouble missing some commands I will mark them, as a comment, with "###" and "### sudo", for commands that need to be executed as "sudo". This way a person should be able to find all of the command lines with just "###". There will be times one has to make their own changes to a command so be careful. It is almost all "copy and paste" but there are a few times one will have to use their own words, like file names and passwords for their site. This file is long but I did not strip any of the computer generated lines out of it and added blank lines so one will be able to better see the next item that needs to be copied, pasted, and entered on the terminal.   ### 4729
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    The thttpd man page gives a good idea what this program can do. As well, the Acme.com web site has more information. I have also included the: "'ACME Labs HTML Sampler -- HTML is really pretty easy to learn.' If you've ever used any sort of text formatting language, such as nroff or Scribe, this is the same idea. Even if you haven't, you should be able to pick this up pretty quick; it's just text with <special codes> interspersed to specify the formatting.   ### 4734
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ # "This page gives examples of all the basic HTML formatting codes. Read through it as a tutorial; refer back to it as a reference; use the index at the end."   ### 4738
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    To start with one can even use just regular files and thttpd will actually serve them. My site: http://162.250.19.7/ is built mostly that way. But there are some of my old sites that are under "ac0xl/" and then "www/" which I built around 2004 or so. One just has to click on the directory and it will open. To get back up one level just click on the (../) two periods and a slash.   ### 4743
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    On a 32-bit OS "thttpd" is limited to displaying files less than 2 GB (2**31 = 2,147,483,647 or 7fff ffff) Bytes. While a 64-bit OS is limited to displaying (2**63 = 9.223372031^18 or 7fff ffff ffff ffff) Bytes. I have tried a 5 GB (5,368,709,120 Bytes) file with no problems! This is with no changes being made in "thttpd". Out of the box, thttpd is bullet proof since it's web site is read-only but capable of doing CGI, as well as several other things, and is safe to run on the "World Wide Web"! My web site: http://162.250.19.7/, has been up and running on the WWW since August 01, 2019 without any problems with hackers doing any damage to my site! The config file is simple and short! The thttpd binary file I created using Raspberry Pi 64-bit OS on a Raspberry Pi 400, Mar 16 21:27, is only 121,272 bytes long and I basically have been using this config file since the beginning:   ### 4748
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # # -r-xr-xr-x 1 bin  bin  121272 Mar 16 21:27 thttpd   ### 4750
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # pi@raspberrypi:/home/local/www $    ### 4752
pi@raspberrypi:~ $ # pi@raspberrypi:/home/local/www $ cat thttpd_config
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # /home/local/www/thttpd_config
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ # dir=/home/local/www
pi@raspberrypi:~ $ # chroot             #chroot jail
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # data_dir=users
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ # #vhost    # if you use a domain name you will have to uncomment (remove the # at the beginning) and then make a "user" directory using your external IPv4 address (xxx.xxx.xxx.xxx) and inside this directory make symbolic links back up to your other files in "users" (ln -rs ../"user-name"), see: "vhost-DN-test".
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ # cgipat=**.cgi
pi@raspberrypi:~ $ # logfile=/home/local/www/logs/thttpd_log
pi@raspberrypi:~ $ # pidfile=/var/run/thttpd.pid
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ # pi@raspberrypi:/home/local/www $ 
pi@raspberrypi:~ $ # pi@raspberrypi:/home/local/www $    ### 4769
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ #    The thttpd binary file I created using Raspberry Pi 32-bit OS on a Raspberry Pi B version 2.0, with only 512 Megabytes of RAM, Jun  1 21:26, is only 91,232 bytes long:   ### 4774
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # -r-xr-xr-x 1 bin  bin  91232 Jun  1 21:26 thttpd.   ### 4777
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ #    When I looked at Apache, which out of the box is only safe as an internal web server, I could not make it through the config file and found "thttpd - tiny/turbo/throttling web server." from Acme.com which used to be the number seven (7) most popular web server.   ### 4780
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # I have since found "ps -p xxxx xxxx" with the "xxxx" being the PID numbers, and will print out what the PID number goes to so one does not wipe out something one should not! Be Safe!!!   ### 4783
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # *****************************   ### 4786
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ #    Adding "whois" will let you lookup IP Addresses of visitors to your "World Wide Website"!   ### 4789
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ date     ### 4793
Thu Aug 14 07:20:01 PM MDT 2025
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ sudo apt install whois     ### 4799
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  whois
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 69.1 kB of archives.
After this operation, 493 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main arm64 whois arm64 5.5.17 [69.1 kB]
Fetched 69.1 kB in 0s (235 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend requires a screen at least 13 lines tall and 31 columns wide.)
debconf: falling back to frontend: Readline
Selecting previously unselected package whois.
(Reading database ... 151250 files and directories currently installed.)
Preparing to unpack .../whois_5.5.17_arm64.deb ...
Unpacking whois (5.5.17) ...
Setting up whois (5.5.17) ...
Processing triggers for man-db (2.11.2-2) ...
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ whois 162.250.19.7     ### 4826

#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/resources/registry/whois/tou/
#
# If you see inaccuracies in the results, please report at
# https://www.arin.net/resources/registry/whois/inaccuracy_reporting/
#
# Copyright 1997-2025, American Registry for Internet Numbers, Ltd.
#


NetRange:       162.250.16.0 - 162.250.23.255
CIDR:           162.250.16.0/21
NetName:        RCW
NetHandle:      NET-162-250-16-0-1
Parent:         NET162 (NET-162-0-0-0-0)
NetType:        Direct Allocation
OriginAS:       
Organization:   River Canyon Wireless (RE-27)
RegDate:        2013-12-12
Updated:        2013-12-12
Ref:            https://rdap.arin.net/registry/ip/162.250.16.0


OrgName:        River Canyon Wireless
OrgId:          RE-27
Address:        611 S. Main
City:           Moab
StateProv:      UT
PostalCode:     84532
Country:        US
RegDate:        2012-02-06
Updated:        2024-11-25
Ref:            https://rdap.arin.net/registry/entity/RE-27


OrgTechHandle: HICKM57-ARIN
OrgTechName:   Hickman, Ryan 
OrgTechPhone:  +1-435-259-6763 
OrgTechEmail:  Ryan@Royceselectronics.com
OrgTechRef:    https://rdap.arin.net/registry/entity/HICKM57-ARIN

OrgNOCHandle: HICKM57-ARIN
OrgNOCName:   Hickman, Ryan 
OrgNOCPhone:  +1-435-259-6763 
OrgNOCEmail:  Ryan@Royceselectronics.com
OrgNOCRef:    https://rdap.arin.net/registry/entity/HICKM57-ARIN

OrgAbuseHandle: COLCO8-ARIN
OrgAbuseName:   Colcord, Bill 
OrgAbusePhone:  +1-435-259-6763 
OrgAbuseEmail:  bill.c@rivercanyonwireless.com
OrgAbuseRef:    https://rdap.arin.net/registry/entity/COLCO8-ARIN


#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/resources/registry/whois/tou/
#
# If you see inaccuracies in the results, please report at
# https://www.arin.net/resources/registry/whois/inaccuracy_reporting/
#
# Copyright 1997-2025, American Registry for Internet Numbers, Ltd.
#

pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ 


pi@raspberrypi:~ $ #    This is installing thttpd. Most of the commands can be copied from the install file and pasted to a terminal. A few things will need to be changed but most will be: copy, paste, enter. WWW pages for EVERYONE!!!   ### 4900
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


thttpd-2.29-file-changes.txt   ### 4905


	To reduce the amount of work needed to install thttpd, I have copied the files from Acme.com and made some modifications. These files have been changed in thttpd-2.29, and these are the changes that were made! *****If you expand "thttpd-2.29.tar.gz" these changes will be missing!*****    ### 4908


*****These files are in: cd ~/freedom/Acme.com/thttpd-2.29/ #*****   ### 4911


	The first change in "thttpd-2.29" is in "Makefile.in" by adding the directory "man1", without this a fresh install will fail! In "Makefile.in" copy line 116 and paste it before, and change man8 to man1, and save the file. The result will be: (This file is: "Makefile.in".)   ### 4914

		114 

		115 install-man:

		116	-mkdir -p $(DESTDIR)$(MANDIR)/man1

		117	-mkdir -p $(DESTDIR)$(MANDIR)/man8

		118	$(INSTALL) -m 444 -o bin -g bin thttpd.8 $(DESTDIR)$(MANDIR)/man8

		119



	The second change in "thttpd-2.29" is in "config.h" where we want to be able to use the "makeweb" program. Here it is making "users" active by copying line 127, adding some extra lines at 130 and pasting the "users" line on line 131, then saving the file. The result will be: (This file is: "config.h".)   ### 4930

		126 #ifdef notdef

		127 #define TILDE_MAP_1 "users"

		128 #define TILDE_MAP_2 "public_html"

		129 #endif

		130 

		131 #define TILDE_MAP_1 "users"

		132 



	The third change in "thttpd-2.29" is in "configure" and is to change where all of the data is written from: "/usr/local" to "/home/local" since the only directory that can be saved when changing operating systems (OS's) is the "/home/" directory, all of the others get over written! This change is in "configure" where line 12 is changed from "/usr/local" to "/home/local", giving the following result, then save the file. (This file is: "configure".)   ### 4948

		 9 

		10 # Defaults:

		11 ac_help=

		12 ac_default_prefix=/home/local

		13 # Any additions from configure.in:

		14 



	This is the end of the changes in "thttpd-2.29"   ### 4964



*****************************   ### 4968


pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ #    If one does an OS change, the other files that need to be changed in "/etc/" are:   ### 4971
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ #   sudo cp -iav /home/local/sbin/thttpd-extras/thttpd-rotate /etc/cron.daily/thttpd-rotate   ### 4975
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ #   # or if you are using the os-debug version,   ### 4978
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ #   sudo cp -iav /home/local/sbin/os-debug/thttpd-rotate  /etc/cron.daily/thttpd-rotate     # this file needs other programs found in "os-debug" see: "readme.txt" in "os-debug".   ### 4980
pi@raspberrypi:~ $ #
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ # sudo cp -iav /home/local/sbin/thttpd-extras/rc.local /etc/rc.local     # Make sure you don't wipe out a file that might already be there!   # 4984
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ #  sudo cp -iav /home/local/sbin/thttpd-extras/thttpd.sh /etc/thttpd.sh     # This file pulls in the "thttpd_wrapper" which restarts "thttpd" in 10 seconds.   ### 4986
pi@raspberrypi:~ $ #
pi@raspberrypi:~ $ #
pi@raspberrypi:~ $ #   sudo cp -iav /home/local/sbin/thttpd-extras/thttpd.sh /etc/thttpd.sh     # This file pulls in the "thttpd_wrapper" which restarts "thttpd" in 10 seconds.   ### 4989
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # *****************************   ### 4992
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ #    With the older Pi's with only 512 MB of RAM "Chromium" would choke and not want to run, so I found a "text" browser which works great to test the "thttpd" install since one will only be testing text, to see if "thttpd" is functioning right. "Lynx" is built into "/bin" and works great!   ### 4995
pi@raspberrypi:~ $ # 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ date     ### 4999
Thu Aug 14 07:36:12 PM MDT 2025
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ # *****************************   ### 5003
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 


*
