2022-04-30-AC0XL-Pi-B-Plus-install.txt I loaded "elinks" to be able to view the web site. frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo apt update Hit:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease Hit:2 http://archive.raspberrypi.org/debian bullseye InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 34 packages can be upgraded. Run 'apt list --upgradable' to see them. frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo apt full-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following package was automatically installed and is no longer required: libfuse2 Use 'sudo apt autoremove' to remove it. The following packages will be upgraded: ffmpeg gnome-session-bin gnome-session-common gnome-session-noshell gzip libavcodec58 libavdevice58 libavfilter7 libavformat58 libavresample4 libavutil56 libcamera-tools libcamera0 libexpat1 libexpat1-dev liblzma5 libpostproc55 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 libswresample3 libswscale5 pi-bluetooth piwiz raspi-config realvnc-vnc-server realvnc-vnc-viewer rpi-eeprom userconf-pi wolfram-engine wolframscript xcompmgr xz-utils 34 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 958 MB of archives. After this operation, 548 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.raspberrypi.org/debian bullseye/main armhf wolframscript armhf 1.6.0+20220413297 [1,692 kB] Get:2 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf gzip armhf 1.10-4+deb11u1 [124 kB] Get:3 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf liblzma5 armhf 5.2.5-2.1~deb11u1 [159 kB] Get:4 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf xz-utils armhf 5.2.5-2.1~deb11u1 [216 kB] Get:5 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf libexpat1-dev armhf 2.2.10-2+deb11u3 [123 kB] Get:6 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf libexpat1 armhf 2.2.10-2+deb11u3 [74.9 kB] Get:7 http://archive.raspberrypi.org/debian bullseye/main armhf wolfram-engine armhf 13.0.1+20220411250 [926 MB] Get:8 http://archive.raspberrypi.org/debian bullseye/main armhf ffmpeg armhf 7:4.3.4-0+deb11u1+rpt1 [1,581 kB] Get:9 http://archive.raspberrypi.org/debian bullseye/main armhf libavdevice58 armhf 7:4.3.4-0+deb11u1+rpt1 [158 kB] Get:10 http://archive.raspberrypi.org/debian bullseye/main armhf libavfilter7 armhf 7:4.3.4-0+deb11u1+rpt1 [1,773 kB] Get:11 http://archive.raspberrypi.org/debian bullseye/main armhf libswscale5 armhf 7:4.3.4-0+deb11u1+rpt1 [260 kB] Get:12 http://archive.raspberrypi.org/debian bullseye/main armhf libavformat58 armhf 7:4.3.4-0+deb11u1+rpt1 [1,566 kB] Get:13 http://archive.raspberrypi.org/debian bullseye/main armhf libavcodec58 armhf 7:4.3.4-0+deb11u1+rpt1 [9,111 kB] Get:14 http://archive.raspberrypi.org/debian bullseye/main armhf libswresample3 armhf 7:4.3.4-0+deb11u1+rpt1 [120 kB] Get:15 http://archive.raspberrypi.org/debian bullseye/main armhf libpostproc55 armhf 7:4.3.4-0+deb11u1+rpt1 [95.3 kB] Get:16 http://archive.raspberrypi.org/debian bullseye/main armhf libavresample4 armhf 7:4.3.4-0+deb11u1+rpt1 [105 kB] Get:17 http://archive.raspberrypi.org/debian bullseye/main armhf libavutil56 armhf 7:4.3.4-0+deb11u1+rpt1 [462 kB] Get:18 http://archive.raspberrypi.org/debian bullseye/main armhf libraspberrypi-bin armhf 1:2+git20220324~090146+c4fd1b8-1 [149 kB] Get:19 http://archive.raspberrypi.org/debian bullseye/main armhf libraspberrypi-dev armhf 1:2+git20220324~090146+c4fd1b8-1 [177 kB] Get:20 http://archive.raspberrypi.org/debian bullseye/main armhf libraspberrypi0 armhf 1:2+git20220324~090146+c4fd1b8-1 [167 kB] Get:21 http://archive.raspberrypi.org/debian bullseye/main armhf gnome-session-noshell all 3.38.0-4+rpt2 [49.8 kB] Get:22 http://archive.raspberrypi.org/debian bullseye/main armhf gnome-session-common all 3.38.0-4+rpt2 [219 kB] Get:23 http://archive.raspberrypi.org/debian bullseye/main armhf gnome-session-bin armhf 3.38.0-4+rpt2 [125 kB] Get:24 http://archive.raspberrypi.org/debian bullseye/main armhf libcamera0 armhf 0~git20220426+18e68a9b-1 [548 kB] Get:25 http://archive.raspberrypi.org/debian bullseye/main armhf libcamera-tools armhf 0~git20220426+18e68a9b-1 [75.4 kB] Get:26 http://archive.raspberrypi.org/debian bullseye/main armhf libraspberrypi-doc all 1:2+git20220324~090146+c4fd1b8-1 [1,908 B] Get:27 http://archive.raspberrypi.org/debian bullseye/main armhf pi-bluetooth all 0.1.19 [5,764 B] Get:28 http://archive.raspberrypi.org/debian bullseye/main armhf raspi-config all 20220425 [30.3 kB] Get:29 http://archive.raspberrypi.org/debian bullseye/main armhf userconf-pi all 0.2 [5,736 B] Get:30 http://archive.raspberrypi.org/debian bullseye/main armhf piwiz armhf 0.40 [167 kB] Get:31 http://archive.raspberrypi.org/debian bullseye/main armhf realvnc-vnc-server armhf 6.9.1.46706 [8,343 kB] Get:32 http://archive.raspberrypi.org/debian bullseye/main armhf realvnc-vnc-viewer armhf 6.22.315.46706 [2,314 kB] Get:33 http://archive.raspberrypi.org/debian bullseye/main armhf rpi-eeprom armhf 13.13-1 [2,037 kB] Get:34 http://archive.raspberrypi.org/debian bullseye/main armhf xcompmgr armhf 1.1.8-1+rpt1 [25.6 kB] Fetched 958 MB in 1h 8min 58s (232 kB/s) Reading changelogs... Done Extracting templates from packages: 100% Preconfiguring packages ... (Reading database ... 175073 files and directories currently installed.) Preparing to unpack .../gzip_1.10-4+deb11u1_armhf.deb ... Unpacking gzip (1.10-4+deb11u1) over (1.10-4) ... Setting up gzip (1.10-4+deb11u1) ... (Reading database ... 175073 files and directories currently installed.) Preparing to unpack .../liblzma5_5.2.5-2.1~deb11u1_armhf.deb ... Unpacking liblzma5:armhf (5.2.5-2.1~deb11u1) over (5.2.5-2) ... Setting up liblzma5:armhf (5.2.5-2.1~deb11u1) ... (Reading database ... 175073 files and directories currently installed.) Preparing to unpack .../00-wolframscript_1.6.0+20220413297_armhf.deb ... Unpacking wolframscript (1.6.0+20220413297) over (1.6.0+20211008249) ... Preparing to unpack .../01-wolfram-engine_13.0.1+20220411250_armhf.deb ... wolfram-eula license has already been accepted Unpacking wolfram-engine (13.0.1+20220411250) over (12.3.1+20211005270) ... Preparing to unpack .../02-xz-utils_5.2.5-2.1~deb11u1_armhf.deb ... Unpacking xz-utils (5.2.5-2.1~deb11u1) over (5.2.5-2) ... Preparing to unpack .../03-ffmpeg_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking ffmpeg (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../04-libavdevice58_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libavdevice58:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../05-libavfilter7_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libavfilter7:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../06-libswscale5_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libswscale5:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../07-libavformat58_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libavformat58:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../08-libavcodec58_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libavcodec58:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../09-libswresample3_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libswresample3:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../10-libpostproc55_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libpostproc55:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../11-libavresample4_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libavresample4:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../12-libavutil56_7%3a4.3.4-0+deb11u1+rpt1_armhf.deb ... Unpacking libavutil56:armhf (7:4.3.4-0+deb11u1+rpt1) over (7:4.3.3-0+rpt3+deb11u1) ... Preparing to unpack .../13-libraspberrypi-bin_1%3a2+git20220324~090146+c4fd1b8-1_armhf.deb ... Unpacking libraspberrypi-bin (1:2+git20220324~090146+c4fd1b8-1) over (1:2+git20211125~155417+14b90ff-3) ... Preparing to unpack .../14-libraspberrypi-dev_1%3a2+git20220324~090146+c4fd1b8-1_armhf.deb ... Unpacking libraspberrypi-dev (1:2+git20220324~090146+c4fd1b8-1) over (1:2+git20211125~155417+14b90ff-3) ... Preparing to unpack .../15-libraspberrypi0_1%3a2+git20220324~090146+c4fd1b8-1_armhf.deb ... Unpacking libraspberrypi0:armhf (1:2+git20220324~090146+c4fd1b8-1) over (1:2+git20211125~155417+14b90ff-3) ... Preparing to unpack .../16-gnome-session-noshell_3.38.0-4+rpt2_all.deb ... Unpacking gnome-session-noshell (3.38.0-4+rpt2) over (3.38.0-4+rpt1) ... Preparing to unpack .../17-gnome-session-common_3.38.0-4+rpt2_all.deb ... Unpacking gnome-session-common (3.38.0-4+rpt2) over (3.38.0-4+rpt1) ... Preparing to unpack .../18-gnome-session-bin_3.38.0-4+rpt2_armhf.deb ... Unpacking gnome-session-bin (3.38.0-4+rpt2) over (3.38.0-4+rpt1) ... Preparing to unpack .../19-libcamera0_0~git20220426+18e68a9b-1_armhf.deb ... Unpacking libcamera0:armhf (0~git20220426+18e68a9b-1) over (0~git20220303+e68e0f1e-1) ... Preparing to unpack .../20-libcamera-tools_0~git20220426+18e68a9b-1_armhf.deb ... Unpacking libcamera-tools (0~git20220426+18e68a9b-1) over (0~git20220303+e68e0f1e-1) ... Preparing to unpack .../21-libexpat1-dev_2.2.10-2+deb11u3_armhf.deb ... Unpacking libexpat1-dev:armhf (2.2.10-2+deb11u3) over (2.2.10-2+deb11u2) ... Preparing to unpack .../22-libexpat1_2.2.10-2+deb11u3_armhf.deb ... Unpacking libexpat1:armhf (2.2.10-2+deb11u3) over (2.2.10-2+deb11u2) ... Preparing to unpack .../23-libraspberrypi-doc_1%3a2+git20220324~090146+c4fd1b8-1_all.deb ... Unpacking libraspberrypi-doc (1:2+git20220324~090146+c4fd1b8-1) over (1:2+git20211125~155417+14b90ff-3) ... Preparing to unpack .../24-pi-bluetooth_0.1.19_all.deb ... Unpacking pi-bluetooth (0.1.19) over (0.1.18) ... Preparing to unpack .../25-raspi-config_20220425_all.deb ... Unpacking raspi-config (20220425) over (20220331) ... Preparing to unpack .../26-userconf-pi_0.2_all.deb ... Unpacking userconf-pi (0.2) over (0.1) ... Preparing to unpack .../27-piwiz_0.40_armhf.deb ... Unpacking piwiz (0.40) over (0.39) ... Preparing to unpack .../28-realvnc-vnc-server_6.9.1.46706_armhf.deb ... Unpacking realvnc-vnc-server (6.9.1.46706) over (6.7.4.43891) ... Preparing to unpack .../29-realvnc-vnc-viewer_6.22.315.46706_armhf.deb ... Unpacking realvnc-vnc-viewer (6.22.315.46706) over (6.20.529.42646) ... Preparing to unpack .../30-rpi-eeprom_13.13-1_armhf.deb ... Unpacking rpi-eeprom (13.13-1) over (13.12-1) ... Preparing to unpack .../31-xcompmgr_1.1.8-1+rpt1_armhf.deb ... Unpacking xcompmgr (1.1.8-1+rpt1) over (1.1.8-1) ... Setting up libexpat1:armhf (2.2.10-2+deb11u3) ... Setting up pi-bluetooth (0.1.19) ... Setting up gnome-session-bin (3.38.0-4+rpt2) ... Setting up xcompmgr (1.1.8-1+rpt1) ... Setting up libavutil56:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up realvnc-vnc-viewer (6.22.315.46706) ... Setting up libexpat1-dev:armhf (2.2.10-2+deb11u3) ... Setting up xz-utils (5.2.5-2.1~deb11u1) ... Setting up libpostproc55:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up wolframscript (1.6.0+20220413297) ... Setting up libraspberrypi0:armhf (1:2+git20220324~090146+c4fd1b8-1) ... Setting up gnome-session-common (3.38.0-4+rpt2) ... Setting up libswscale5:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up realvnc-vnc-server (6.9.1.46706) ... Updating /etc/pam.d/vncserver Updating /etc/pam.conf... done Looking for font path... /usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/100dpi,built-ins (from xset). Original config file "/etc/vnc/config.old" preserved Original config file "/etc/vnc/pulse/daemon.conf.old" preserved Generating private key... done Installed systemd unit for VNC Server in Service Mode daemon Start or stop the service with: systemctl (start|stop) vncserver-x11-serviced.service Mark or unmark the service to be started at boot time with: systemctl (enable|disable) vncserver-x11-serviced.service Installed systemd unit for VNC Server in Virtual Mode daemon Start or stop the service with: systemctl (start|stop) vncserver-virtuald.service Mark or unmark the service to be started at boot time with: systemctl (enable|disable) vncserver-virtuald.service Setting up wolfram-engine (13.0.1+20220411250) ... Setting up libcamera0:armhf (0~git20220426+18e68a9b-1) ... Setting up raspi-config (20220425) ... Setting up libcamera-tools (0~git20220426+18e68a9b-1) ... Setting up userconf-pi (0.2) ... Setting up libswresample3:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up libavresample4:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up libraspberrypi-bin (1:2+git20220324~090146+c4fd1b8-1) ... Setting up piwiz (0.40) ... Setting up libraspberrypi-dev (1:2+git20220324~090146+c4fd1b8-1) ... Setting up rpi-eeprom (13.13-1) ... Setting up libavcodec58:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up libavformat58:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up libraspberrypi-doc (1:2+git20220324~090146+c4fd1b8-1) ... Setting up libavfilter7:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up libavdevice58:armhf (7:4.3.4-0+deb11u1+rpt1) ... Setting up ffmpeg (7:4.3.4-0+deb11u1+rpt1) ... Processing triggers for install-info (6.7.0.dfsg.2-6) ... Processing triggers for mailcap (3.69) ... Processing triggers for desktop-file-utils (0.26-1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for gnome-menus (3.36.0-1) ... Processing triggers for libglib2.0-0:armhf (2.66.8-1) ... Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u2) ... Processing triggers for man-db (2.9.4-2) ... Processing triggers for shared-mime-info (2.0-1) ... Setting up gnome-session-noshell (3.38.0-4+rpt2) ... frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo apt install whois pluma rp-imager Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package rp-imager frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo apt install whois pluma rpi-imager Reading package lists... Done Building dependency tree... Done Reading state information... Done rpi-imager is already the newest version (1.7.2). The following package was automatically installed and is no longer required: libfuse2 Use 'sudo apt autoremove' to remove it. The following additional packages will be installed: gir1.2-gtksource-3.0 gir1.2-peas-1.0 gir1.2-pluma-1.0 libpeas-1.0-0 libpeas-common libpython3.8 libpython3.8-minimal libpython3.8-stdlib mate-desktop-common pluma-common The following NEW packages will be installed: gir1.2-gtksource-3.0 gir1.2-peas-1.0 gir1.2-pluma-1.0 libpeas-1.0-0 libpeas-common libpython3.8 libpython3.8-minimal libpython3.8-stdlib mate-desktop-common pluma pluma-common whois 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded. Need to get 6,812 kB of archives. After this operation, 48.9 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf whois armhf 5.5.10 [71.4 kB] Get:2 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf gir1.2-gtksource-3.0 armhf 3.24.11-2 [28.3 kB] Get:3 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf libpeas-common all 1.28.0-2 [53.2 kB] Get:4 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf libpython3.8-minimal armhf 3.8.7-1 [753 kB] Get:5 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf libpython3.8-stdlib armhf 3.8.7-1 [1,647 kB] Get:6 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf libpython3.8 armhf 3.8.7-1 [1,344 kB] Get:7 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf libpeas-1.0-0 armhf 1.28.0-2 [56.6 kB] Get:8 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf gir1.2-peas-1.0 armhf 1.28.0-2 [12.4 kB] Get:9 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf gir1.2-pluma-1.0 armhf 1.24.1-1 [29.8 kB] Get:10 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf mate-desktop-common all 1.24.1-2 [495 kB] Get:11 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf pluma-common all 1.24.1-1 [1,938 kB] Get:12 http://mirrors.syringanetworks.net/raspbian/raspbian bullseye/main armhf pluma armhf 1.24.1-1 [383 kB] Fetched 6,812 kB in 32s (211 kB/s) Selecting previously unselected package whois. (Reading database ... 177389 files and directories currently installed.) Preparing to unpack .../00-whois_5.5.10_armhf.deb ... Unpacking whois (5.5.10) ... Selecting previously unselected package gir1.2-gtksource-3.0:armhf. Preparing to unpack .../01-gir1.2-gtksource-3.0_3.24.11-2_armhf.deb ... Unpacking gir1.2-gtksource-3.0:armhf (3.24.11-2) ... Selecting previously unselected package libpeas-common. Preparing to unpack .../02-libpeas-common_1.28.0-2_all.deb ... Unpacking libpeas-common (1.28.0-2) ... Selecting previously unselected package libpython3.8-minimal:armhf. Preparing to unpack .../03-libpython3.8-minimal_3.8.7-1_armhf.deb ... Unpacking libpython3.8-minimal:armhf (3.8.7-1) ... Selecting previously unselected package libpython3.8-stdlib:armhf. Preparing to unpack .../04-libpython3.8-stdlib_3.8.7-1_armhf.deb ... Unpacking libpython3.8-stdlib:armhf (3.8.7-1) ... Selecting previously unselected package libpython3.8:armhf. Preparing to unpack .../05-libpython3.8_3.8.7-1_armhf.deb ... Unpacking libpython3.8:armhf (3.8.7-1) ... Selecting previously unselected package libpeas-1.0-0:armhf. Preparing to unpack .../06-libpeas-1.0-0_1.28.0-2_armhf.deb ... Unpacking libpeas-1.0-0:armhf (1.28.0-2) ... Selecting previously unselected package gir1.2-peas-1.0:armhf. Preparing to unpack .../07-gir1.2-peas-1.0_1.28.0-2_armhf.deb ... Unpacking gir1.2-peas-1.0:armhf (1.28.0-2) ... Selecting previously unselected package gir1.2-pluma-1.0. Preparing to unpack .../08-gir1.2-pluma-1.0_1.24.1-1_armhf.deb ... Unpacking gir1.2-pluma-1.0 (1.24.1-1) ... Selecting previously unselected package mate-desktop-common. Preparing to unpack .../09-mate-desktop-common_1.24.1-2_all.deb ... Unpacking mate-desktop-common (1.24.1-2) ... Selecting previously unselected package pluma-common. Preparing to unpack .../10-pluma-common_1.24.1-1_all.deb ... Unpacking pluma-common (1.24.1-1) ... Selecting previously unselected package pluma. Preparing to unpack .../11-pluma_1.24.1-1_armhf.deb ... Unpacking pluma (1.24.1-1) ... Setting up libpython3.8-minimal:armhf (3.8.7-1) ... Setting up whois (5.5.10) ... Setting up libpeas-common (1.28.0-2) ... Setting up mate-desktop-common (1.24.1-2) ... Setting up gir1.2-gtksource-3.0:armhf (3.24.11-2) ... Setting up pluma-common (1.24.1-1) ... Setting up libpython3.8-stdlib:armhf (3.8.7-1) ... Setting up gir1.2-pluma-1.0 (1.24.1-1) ... Setting up libpython3.8:armhf (3.8.7-1) ... Setting up libpeas-1.0-0:armhf (1.28.0-2) ... Setting up gir1.2-peas-1.0:armhf (1.28.0-2) ... Processing triggers for man-db (2.9.4-2) ... Processing triggers for mailcap (3.69) ... Processing triggers for desktop-file-utils (0.26-1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for gnome-menus (3.36.0-1) ... Processing triggers for libglib2.0-0:armhf (2.66.8-1) ... Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u2) ... Setting up pluma (1.24.1-1) ... frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ $PATH 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 frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo mkdir -v /sd /fd /hd mkdir: created directory '/sd' mkdir: created directory '/fd' mkdir: created directory '/hd' frank@AC0XL-Pi-B-Plus-1-2:~ $ cat /proc/cpuinfo processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 697.95 Features : half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2835 Revision : 0010 Serial : 0000000078c30145 Model : Raspberry Pi Model B Plus Rev 1.2 frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:/ $ frank@AC0XL-Pi-B-Plus-1-2:/ $ frank@AC0XL-Pi-B-Plus-1-2:/ $ cat /proc/meminfo MemTotal: 439816 kB MemFree: 70680 kB MemAvailable: 154780 kB Buffers: 7752 kB Cached: 126464 kB SwapCached: 204 kB Active: 69412 kB Inactive: 248820 kB Active(anon): 14080 kB Inactive(anon): 180448 kB Active(file): 55332 kB Inactive(file): 68372 kB Unevictable: 16 kB Mlocked: 16 kB SwapTotal: 102396 kB SwapFree: 85500 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 183880 kB Mapped: 62796 kB Shmem: 10512 kB KReclaimable: 10900 kB Slab: 22812 kB SReclaimable: 10900 kB SUnreclaim: 11912 kB KernelStack: 1600 kB PageTables: 4184 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 322304 kB Committed_AS: 1300016 kB VmallocTotal: 573440 kB VmallocUsed: 4516 kB VmallocChunk: 0 kB Percpu: 64 kB CmaTotal: 262144 kB CmaFree: 46452 kB frank@AC0XL-Pi-B-Plus-1-2:/ $ frank@AC0XL-Pi-B-Plus-1-2:/ $ frank@AC0XL-Pi-B-Plus-1-2:/ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cat /proc/version Linux version 5.15.32+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1538 Thu Mar 31 19:37:58 BST 2022 frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo apt autoremove Reading package lists... Done Building dependency tree... Done Reading state information... Done The following packages will be REMOVED: libfuse2 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 288 kB disk space will be freed. Do you want to continue? [Y/n] y (Reading database ... 179239 files and directories currently installed.) Removing libfuse2:armhf (2.9.9-5) ... Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u2) ... frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 05:33:00 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 06:53:25 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ cat /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi exit 0 frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo ./etc/rc.local sudo: ./etc/rc.local: command not found frank@AC0XL-Pi-B-Plus-1-2:~ $ cd /etc frank@AC0XL-Pi-B-Plus-1-2:/etc $ ./rc.local My IP address is 192.168.1.90 frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ cd frank@AC0XL-Pi-B-Plus-1-2:~ $ $PATH 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 frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ # ### This is the beginning of the "cut and paste" process! frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 06:57:58 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cd /etc ### frank@AC0XL-Pi-B-Plus-1-2:/etc $ cat group ### (we are looking for a group "www") root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:frank 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:frank fax:x:21: voice:x:22: cdrom:x:24:frank floppy:x:25: tape:x:26: sudo:x:27:frank audio:x:29:pulse,frank dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:frank sasl:x:45: plugdev:x:46:frank staff:x:50: games:x:60:frank users:x:100:frank nogroup:x:65534: systemd-journal:x:101: systemd-network:x:102: systemd-resolve:x:103: input:x:104:frank kvm:x:105: render:x:106:frank crontab:x:107: netdev:x:108:frank systemd-timesync:x:109: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:frank i2c:x:998:frank gpio:x:997:frank lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,frank ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: frank:x:1000: frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ addgroup --help ### adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a normal user adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a system user adduser --group [--gid ID] GROUP addgroup [--gid ID] GROUP Add a user group addgroup --system [--gid ID] GROUP Add a system group adduser USER GROUP Add an existing user to an existing group general options: --quiet | -q don't give process information to stdout --force-badname allow usernames which do not match the NAME_REGEX configuration variable --help | -h usage message --version | -v version number and copyright --conf | -c FILE use FILE as configuration file frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ # ### From this we get the commands we need to add a system group "www" and make "(pi)" a member of this group. frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ sudo addgroup --system www ### sudo Adding group `www' (GID 126) ... Done. frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ sudo adduser frank www ### sudo Adding user `frank' to group `www' ... Adding user frank to group www Done. frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ cat group ### root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:frank 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:frank fax:x:21: voice:x:22: cdrom:x:24:frank floppy:x:25: tape:x:26: sudo:x:27:frank audio:x:29:pulse,frank dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:frank sasl:x:45: plugdev:x:46:frank staff:x:50: games:x:60:frank users:x:100:frank nogroup:x:65534: systemd-journal:x:101: systemd-network:x:102: systemd-resolve:x:103: input:x:104:frank kvm:x:105: render:x:106:frank crontab:x:107: netdev:x:108:frank systemd-timesync:x:109: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:frank i2c:x:998:frank gpio:x:997:frank lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,frank ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: frank:x:1000: www:x:126:frank frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/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! frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ cd ~/freedom/Acme.com/thttpd-2.29 ### frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ $ ls ### bash: $: command not found frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ ls ### 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 frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ date Sat 30 Apr 2022 07:07:10 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ make clean ### Step one. for i in cgi-src extras ; do ( \ cd $i ; \ pwd ; \ make clean \ ) ; done /home/frank/freedom/Acme.com/thttpd-2.29/cgi-src make[1]: Entering directory '/home/frank/freedom/Acme.com/thttpd-2.29/cgi-src' rm -f *.o redirect ssi phf make[1]: Leaving directory '/home/frank/freedom/Acme.com/thttpd-2.29/cgi-src' /home/frank/freedom/Acme.com/thttpd-2.29/extras make[1]: Entering directory '/home/frank/freedom/Acme.com/thttpd-2.29/extras' rm -f *.o makeweb htpasswd make[1]: Leaving directory '/home/frank/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 frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ ./configure ### Step two. loading cache ./config.cache checking host system type... Invalid configuration `armv6l-pc-linux-gnuoldld': machine `armv6l-pc' not recognized checking target system type... Invalid configuration `armv6l-pc-linux-gnuoldld': machine `armv6l-pc' not recognized checking build system type... Invalid configuration `armv6l-pc-linux-gnuoldld': machine `armv6l-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 frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ make ### Step three. 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 libhttpd.c: In function ‘ls’: libhttpd.c:2846:10: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=] 2846 | (void) strncpy( nameptrs[nnames], de->d_name, namlen ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ libhttpd.c:64:25: note: length computed here 64 | # define NAMLEN(dirent) strlen((dirent)->d_name) | ^~~~~~~~~~~~~~~~~~~~~~~~ libhttpd.c:2845:12: note: in expansion of macro ‘NAMLEN’ 2845 | namlen = NAMLEN(de); | ^~~~~~ 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/frank/freedom/Acme.com/thttpd-2.29/cgi-src make[1]: Entering directory '/home/frank/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 ssi.c: In function ‘get_filename.constprop’: ssi.c:183:9: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=] 183 | (void) strncpy( fn, filename, fl - vl ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ssi.c:169:10: note: length computed here 169 | fl = strlen( filename ); | ^~~~~~~~~~~~~~~~~~ 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/frank/freedom/Acme.com/thttpd-2.29/cgi-src' /home/frank/freedom/Acme.com/thttpd-2.29/extras make[1]: Entering directory '/home/frank/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/frank/freedom/Acme.com/thttpd-2.29/extras' frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ sudo make install ### sudo - Step four. 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/frank/freedom/Acme.com/thttpd-2.29/cgi-src make[1]: Entering directory '/home/frank/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/frank/freedom/Acme.com/thttpd-2.29/cgi-src' /home/frank/freedom/Acme.com/thttpd-2.29/extras make[1]: Entering directory '/home/frank/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/frank/freedom/Acme.com/thttpd-2.29/extras' frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ ### "thttpd" is now installed. frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ date Sat 30 Apr 2022 07:12:41 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom/Acme.com/thttpd-2.29 $ cd /home/local/www ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ ls -al ### total 12 drwxr-xr-x 3 root root 4096 Apr 30 19:11 . drwxr-xr-x 5 root root 4096 Apr 30 19:11 .. drwxr-xr-x 2 root root 4096 Apr 30 19:11 cgi-bin frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ sudo mkdir -v logs users ### sudo mkdir: created directory 'logs' mkdir: created directory 'users' frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ ls -al ### total 20 drwxr-xr-x 5 root root 4096 Apr 30 19:14 . drwxr-xr-x 5 root root 4096 Apr 30 19:11 .. drwxr-xr-x 2 root root 4096 Apr 30 19:11 cgi-bin drwxr-xr-x 2 root root 4096 Apr 30 19:14 logs drwxr-xr-x 2 root root 4096 Apr 30 19:14 users frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ ### ***** Now we need to change the permissions on "users" so those in the "www" group can write to this directory!***** frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ sudo chmod -v 775 users ### sudo mode of 'users' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x) frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ ls -al ### total 20 drwxr-xr-x 5 root root 4096 Apr 30 19:14 . drwxr-xr-x 5 root root 4096 Apr 30 19:11 .. drwxr-xr-x 2 root root 4096 Apr 30 19:11 cgi-bin drwxr-xr-x 2 root root 4096 Apr 30 19:14 logs drwxrwxr-x 2 root root 4096 Apr 30 19:14 users frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ # ### Make sure users is now 0775 (drwxrwxr-x). frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www $ cd ../ ### frank@AC0XL-Pi-B-Plus-1-2:/home/local $ frank@AC0XL-Pi-B-Plus-1-2:/home/local $ sudo chown -vR root:www www ### sudo 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/ssi' 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/redirect' 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local $ frank@AC0XL-Pi-B-Plus-1-2:/home/local $ ls -al ### total 20 drwxr-xr-x 5 root root 4096 Apr 30 19:11 . drwxr-xr-x 4 root root 4096 Apr 30 19:11 .. drwxr-xr-x 4 root root 4096 Apr 30 19:11 man drwxr-xr-x 2 root root 4096 Apr 30 19:11 sbin drwxr-xr-x 5 root www 4096 Apr 30 19:14 www frank@AC0XL-Pi-B-Plus-1-2:/home/local $ frank@AC0XL-Pi-B-Plus-1-2:/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. frank@AC0XL-Pi-B-Plus-1-2:/home/local $ frank@AC0XL-Pi-B-Plus-1-2:/home/local $ cd ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ addgroup --help ### adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a normal user adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a system user adduser --group [--gid ID] GROUP addgroup [--gid ID] GROUP Add a user group addgroup --system [--gid ID] GROUP Add a system group adduser USER GROUP Add an existing user to an existing group general options: --quiet | -q don't give process information to stdout --force-badname allow usernames which do not match the NAME_REGEX configuration variable --help | -h usage message --version | -v version number and copyright --conf | -c FILE use FILE as configuration file frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo adduser --add_extra_groups ac0xl ### sudo Adding user `ac0xl' ... Adding new group `ac0xl' (1001) ... Adding new user `ac0xl' (1001) with group `ac0xl' ... Creating home directory `/home/ac0xl' ... Copying files from `/etc/skel' ... New password: Retype new password: Sorry, passwords do not match. passwd: Authentication token manipulation error passwd: password unchanged Try again? [y/N] y 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 []: Frank Anderson Room Number []: 651 N Broadway Work Phone []: 435-210-0710 Home Phone []: 970-424-1451 Other []: Green River UTah 84525-0615 Is the information correct? [Y/n] y Adding new user `ac0xl' to extra groups ... Adding user `ac0xl' to group `dialout' ... Adding user `ac0xl' to group `cdrom' ... Adding user `ac0xl' to group `floppy' ... Adding user `ac0xl' to group `audio' ... Adding user `ac0xl' to group `video' ... Adding user `ac0xl' to group `plugdev' ... Adding user `ac0xl' to group `users' ... frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cat /etc/group ### root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:frank 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:frank,ac0xl fax:x:21: voice:x:22: cdrom:x:24:frank,ac0xl floppy:x:25:ac0xl tape:x:26: sudo:x:27:frank audio:x:29:pulse,frank,ac0xl dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:frank,ac0xl sasl:x:45: plugdev:x:46:frank,ac0xl staff:x:50: games:x:60:frank users:x:100:frank,ac0xl nogroup:x:65534: systemd-journal:x:101: systemd-network:x:102: systemd-resolve:x:103: input:x:104:frank kvm:x:105: render:x:106:frank crontab:x:107: netdev:x:108:frank systemd-timesync:x:109: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:frank i2c:x:998:frank gpio:x:997:frank lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,frank ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: frank:x:1000: www:x:126:frank ac0xl:x:1001: frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo adduser ac0xl www ### sudo adduser XXXX to group yyy. Adding user `ac0xl' to group `www' ... Adding user ac0xl to group www Done. frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cat /etc/group ### root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:frank 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:frank,ac0xl fax:x:21: voice:x:22: cdrom:x:24:frank,ac0xl floppy:x:25:ac0xl tape:x:26: sudo:x:27:frank audio:x:29:pulse,frank,ac0xl dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:frank,ac0xl sasl:x:45: plugdev:x:46:frank,ac0xl staff:x:50: games:x:60:frank users:x:100:frank,ac0xl nogroup:x:65534: systemd-journal:x:101: systemd-network:x:102: systemd-resolve:x:103: input:x:104:frank kvm:x:105: render:x:106:frank crontab:x:107: netdev:x:108:frank systemd-timesync:x:109: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:frank i2c:x:998:frank gpio:x:997:frank lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,frank ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: frank:x:1000: www:x:126:frank,ac0xl ac0xl:x:1001: frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 07:26:53 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cd /home ### frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ ls -al ### total 20 drwxr-xr-x 5 root root 4096 Apr 30 19:22 . drwxr-xr-x 21 root root 4096 Apr 30 17:30 .. drwxr-xr-x 2 ac0xl ac0xl 4096 Apr 30 19:22 ac0xl drwxr-xr-x 16 frank frank 4096 Apr 30 18:41 frank drwxr-xr-x 5 root root 4096 Apr 30 19:11 local frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ su ac0xl ### we have to change to user "(ac0xl)" Password: ac0xl@AC0XL-Pi-B-Plus-1-2:/home $ ac0xl@AC0XL-Pi-B-Plus-1-2:/home $ cd ### ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 ac0xl ac0xl 4096 Apr 30 19:22 . drwxr-xr-x 5 root root 4096 Apr 30 19:22 .. -rw-r--r-- 1 ac0xl ac0xl 220 Apr 30 19:22 .bash_logout -rw-r--r-- 1 ac0xl ac0xl 3523 Apr 30 19:22 .bashrc -rw-r--r-- 1 ac0xl ac0xl 1670 Apr 30 19:22 .mkshrc -rw-r--r-- 1 ac0xl ac0xl 807 Apr 30 19:22 .profile ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ touch .1001 ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/ac0xl Created symbolic link /home/ac0xl/public_html ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 ac0xl ac0xl 4096 Apr 30 19:31 . drwxr-xr-x 5 root root 4096 Apr 30 19:22 .. -rw-r--r-- 1 ac0xl ac0xl 0 Apr 30 19:30 .1001 -rw-r--r-- 1 ac0xl ac0xl 220 Apr 30 19:22 .bash_logout -rw-r--r-- 1 ac0xl ac0xl 3523 Apr 30 19:22 .bashrc -rw-r--r-- 1 ac0xl ac0xl 1670 Apr 30 19:22 .mkshrc -rw-r--r-- 1 ac0xl ac0xl 807 Apr 30 19:22 .profile lrwxrwxrwx 1 ac0xl www 27 Apr 30 19:31 public_html -> /home/local/www/users/ac0xl ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ ac0xl@AC0XL-Pi-B-Plus-1-2:~ $ exit ### changing back to (pi) and where we were. exit frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ cd /home/local/www/users ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ ls -al ### total 12 drwxrwxr-x 3 root www 4096 Apr 30 19:31 . drwxr-xr-x 5 root www 4096 Apr 30 19:14 .. drwxr-xr-x 2 ac0xl ac0xl 4096 Apr 30 19:31 ac0xl frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ sudo chown -vR ac0xl:www ac0xl ### sudo changed ownership of 'ac0xl' from ac0xl:ac0xl to ac0xl:www frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ ls -al ### total 12 drwxrwxr-x 3 root www 4096 Apr 30 19:31 . drwxr-xr-x 5 root www 4096 Apr 30 19:14 .. drwxr-xr-x 2 ac0xl www 4096 Apr 30 19:31 ac0xl frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ # So far so good! We now have a main www user installed. frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ date Sat 30 Apr 2022 07:36:29 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ cd /home/local/sbin ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ ls -al ### total 136 drwxr-xr-x 2 root root 4096 Apr 30 19:11 . drwxr-xr-x 5 root root 4096 Apr 30 19:11 .. -rwxr-xr-x 1 root root 13692 Apr 30 19:11 htpasswd -rwxr-sr-x 1 root www 12996 Apr 30 19:11 makeweb -r-xr-xr-x 1 root root 2878 Apr 30 19:11 syslogtocern -r-xr-xr-x 1 bin bin 91232 Apr 30 19:11 thttpd frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ cd ~/freedom ### (The directory "freedom" should be in "/home/(pi)/"). frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ ls -al ### total 8748 drwxr-xr-x 6 frank frank 4096 Apr 30 18:08 . drwxr-xr-x 16 frank frank 4096 Apr 30 18:41 .. -r--r--r-- 1 frank frank 32014 Jan 8 2020 2010Website.pdf -r--r--r-- 1 frank frank 11024 Jan 8 2020 2019-09-05-Project.txt -r--r--r-- 1 frank frank 11941 Jan 8 2020 2019-10-01-website.txt -r--r--r-- 1 frank frank 6365 Jan 8 2020 2019-11-26-web-server.txt -r--r--r-- 1 frank frank 21340 Jan 8 2020 2019-12-06-Google-Search-Is-Broken.txt -r--r--r-- 1 frank frank 12787 Mar 18 2021 2020-07-17-thttpd.txt -r--r--r-- 1 frank frank 17955 Sep 10 2021 2021-09-01.txt -r--r--r-- 1 frank frank 17955 Sep 10 2021 2021-09-01.txt~ -r--r--r-- 1 frank frank 18393 Sep 11 2021 2021-09-07-Formatting-Drives-Greater-Than-512GB.txt -rw-r--r-- 1 frank frank 225785 Mar 23 18:33 2022-03-21-Install-thttpd-on-Raspberry-Pi-OS.txt -r--r--r-- 1 frank frank 225785 Mar 23 18:36 2022-03-21-Install-thttpd-on-Raspberry-Pi-OS.txt~ -rw-r--r-- 1 frank frank 916555 Mar 30 21:09 2022-03-25-Install-thttpd-32-or-64bit.txt -rw-r--r-- 1 frank frank 916555 Mar 30 21:09 2022-03-25-Install-thttpd-on-32-or-64-bit-OS.txt -rw-r--r-- 1 frank frank 916545 Apr 18 17:19 2022-03-25-Install-thttpd-Raspberry-Pi-Model-B-Plus-Rev-1.2-with-512-MB-RAM.txt -rw-r--r-- 1 frank frank 1145421 Apr 2 22:41 2022-04-01-Install-thttpd-on-32-or-64-bit-OS-bak.txt -rw-r--r-- 1 frank frank 1177316 Apr 2 22:21 2022-04-01-Install-thttpd-on-32-or-64-bit-OS.txt -rw-r--r-- 1 frank frank 1145420 Apr 1 01:06 2022-04-01-Install-thttpd-on-32-or-64-bit-OS.txt~ -r--r--r-- 1 frank frank 214133 Apr 2 22:32 2022-04-02-Install.test.txt -rw-r--r-- 1 frank frank 214133 Apr 2 22:32 2022-04-02-Install.test.txt~ -rw-r--r-- 1 frank frank 518399 Apr 8 18:18 2022-04-08-files-to-web.txt -rw-r--r-- 1 frank frank 267954 Apr 18 20:15 2022-04-11-Install.test.txt -rw-r--r-- 1 frank frank 188476 Apr 11 22:20 2022-04-11-Install.test.txt~ -rw-r--r-- 1 frank frank 467720 Apr 22 17:46 2022-04-18-AC0XL-Pi-400-thttpd-install.txt -rw-r--r-- 1 frank frank 23040 Apr 30 17:41 2022-04-30-AC0XL-Pi-B-Plus-install.txt drwxr-xr-x 22 frank frank 4096 Apr 30 17:49 Acme.com drwxr-xr-x 4 frank frank 4096 Apr 30 17:49 'HTML Sampler_files' -r--r--r-- 1 frank frank 26907 Aug 16 2021 'HTML Sampler.html' drwxr-xr-x 2 frank frank 4096 Apr 30 17:49 os-debug -r--r--r-- 1 frank frank 40532 Sep 13 2021 readme.txt -r--r--r-- 1 frank frank 80728 Sep 8 2021 rfc3875-CGI.txt -r--r--r-- 1 frank frank 186 Jan 8 2020 sitemap.xml -r--r--r-- 1 frank frank 186 Jan 8 2020 sitemap.xml.txt -rwxr-xr-- 1 frank frank 472 Aug 31 2021 thttpd_config -r-xr-xr-- 1 frank frank 472 Aug 31 2021 thttpd_config~ drwxr-xr-x 2 frank frank 4096 Apr 30 17:49 thttpd-extras frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ sudo cp -rv thttpd-extras /home/local/sbin/ ### sudo 'thttpd-extras' -> '/home/local/sbin/thttpd-extras' 'thttpd-extras/thttpd.sh' -> '/home/local/sbin/thttpd-extras/thttpd.sh' 'thttpd-extras/thttpd_config' -> '/home/local/sbin/thttpd-extras/thttpd_config' 'thttpd-extras/anvil_thttpd.gif' -> '/home/local/sbin/thttpd-extras/anvil_thttpd.gif' 'thttpd-extras/readme.txt' -> '/home/local/sbin/thttpd-extras/readme.txt' 'thttpd-extras/thttpd-rotate~' -> '/home/local/sbin/thttpd-extras/thttpd-rotate~' 'thttpd-extras/thttpd.sh~' -> '/home/local/sbin/thttpd-extras/thttpd.sh~' 'thttpd-extras/thttpd_config~' -> '/home/local/sbin/thttpd-extras/thttpd_config~' 'thttpd-extras/sitemap.xml' -> '/home/local/sbin/thttpd-extras/sitemap.xml' 'thttpd-extras/thttpd-rotate' -> '/home/local/sbin/thttpd-extras/thttpd-rotate' 'thttpd-extras/sitemap.xml.txt' -> '/home/local/sbin/thttpd-extras/sitemap.xml.txt' 'thttpd-extras/favicon.ico' -> '/home/local/sbin/thttpd-extras/favicon.ico' 'thttpd-extras/rc.local~' -> '/home/local/sbin/thttpd-extras/rc.local~' 'thttpd-extras/thttpd_wrapper' -> '/home/local/sbin/thttpd-extras/thttpd_wrapper' 'thttpd-extras/robots-site.txt' -> '/home/local/sbin/thttpd-extras/robots-site.txt' 'thttpd-extras/robots.txt' -> '/home/local/sbin/thttpd-extras/robots.txt' 'thttpd-extras/rc.local' -> '/home/local/sbin/thttpd-extras/rc.local' 'thttpd-extras/thttpd_wrapper~' -> '/home/local/sbin/thttpd-extras/thttpd_wrapper~' frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ sudo cp -rv os-debug /home/local/sbin/ ### sudo 'os-debug' -> '/home/local/sbin/os-debug' 'os-debug/2022-03-25-Install-thttpd-Raspberry-Pi-Model-B-Plus-Rev-1.2-with-512-MB-RAM.txt' -> '/home/local/sbin/os-debug/2022-03-25-Install-thttpd-Raspberry-Pi-Model-B-Plus-Rev-1.2-with-512-MB-RAM.txt' 'os-debug/readme.txt~' -> '/home/local/sbin/os-debug/readme.txt~' 'os-debug/readme.txt' -> '/home/local/sbin/os-debug/readme.txt' 'os-debug/dead-thttpd' -> '/home/local/sbin/os-debug/dead-thttpd' 'os-debug/thttpd-rotate~' -> '/home/local/sbin/os-debug/thttpd-rotate~' 'os-debug/thttpd-rotate' -> '/home/local/sbin/os-debug/thttpd-rotate' 'os-debug/datelog~' -> '/home/local/sbin/os-debug/datelog~' 'os-debug/dead-thttpd~' -> '/home/local/sbin/os-debug/dead-thttpd~' 'os-debug/thttpd_wrapper' -> '/home/local/sbin/os-debug/thttpd_wrapper' 'os-debug/datelog' -> '/home/local/sbin/os-debug/datelog' 'os-debug/thttpd_wrapper~' -> '/home/local/sbin/os-debug/thttpd_wrapper~' frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ frank@AC0XL-Pi-B-Plus-1-2:~/freedom $ cd /home/local/sbin/thttpd-extras ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -al ### total 76 drwxr-xr-x 2 root root 4096 Apr 30 19:39 . drwxr-xr-x 4 root root 4096 Apr 30 19:39 .. -r--r--r-- 1 root root 533 Apr 30 19:39 anvil_thttpd.gif -rw-r--r-- 1 root root 533 Apr 30 19:39 favicon.ico -rwxr-xr-- 1 root root 485 Apr 30 19:39 rc.local -r-xr-xr-- 1 root root 485 Apr 30 19:39 rc.local~ -rw-r--r-- 1 root root 308 Apr 30 19:39 readme.txt -r--r--r-- 1 root root 73 Apr 30 19:39 robots-site.txt -rw-r--r-- 1 root root 27 Apr 30 19:39 robots.txt -rw-r--r-- 1 root root 186 Apr 30 19:39 sitemap.xml -r--r--r-- 1 root root 186 Apr 30 19:39 sitemap.xml.txt -rwxr-xr-- 1 root root 472 Apr 30 19:39 thttpd_config -r-xr-xr-- 1 root root 472 Apr 30 19:39 thttpd_config~ -rwxr-xr-- 1 root root 1746 Apr 30 19:39 thttpd-rotate -r-xr-xr-- 1 root root 1746 Apr 30 19:39 thttpd-rotate~ -rwxr-xr-- 1 root root 136 Apr 30 19:39 thttpd.sh -r-xr-xr-- 1 root root 136 Apr 30 19:39 thttpd.sh~ -rwxr-xr-- 1 root root 122 Apr 30 19:39 thttpd_wrapper -r-xr-xr-- 1 root root 122 Apr 30 19:39 thttpd_wrapper~ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat /etc/rc.local ### #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi exit 0 frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ # ***** rc.local is a file that is part of "systemd" which is in "/etc", and may or may not be empty or even exist. ***** frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat rc.local ### #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # Start thttpd echo "Starting thttpd. \n" . /etc/thttpd.sh # exit 0 frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ### since what was there matches what is above what we are adding we over write the file. frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -iav rc.local /etc/rc.local ### sudo cp: overwrite '/etc/rc.local'? y 'rc.local' -> '/etc/rc.local' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -l /etc/rc.local ### -rwxr-xr-- 1 root root 485 Apr 30 19:39 /etc/rc.local frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -l /etc/rc.local ### -rwxr-xr-- 1 root root 485 Apr 30 19:39 /etc/rc.local frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ # We now need to copy thttpd.sh to /etc and make sure it is 0754. frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd.sh /etc/ ### sudo 'thttpd.sh' -> '/etc/thttpd.sh' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ date Sat 30 Apr 2022 07:47:56 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -l /etc/thttpd.sh ### -rwxr-xr-- 1 root root 136 Apr 30 19:39 /etc/thttpd.sh frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ # (thttpd.sh is still 0754) frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat thttpd.sh ### #!/bin/sh # thttpd.sh if [ -x /home/local/sbin/thttpd_wrapper ] ; then echo " thttpd " /home/local/sbin/thttpd_wrapper & fi # exit 0 frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ### thttpd.sh is looking for thttpd_wrapper to be in "/home/local/sbin/" and being 0754, so we will copy "thttpd_wrapper" up one level to there. frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd_wrapper ../ ### sudo 'thttpd_wrapper' -> '../thttpd_wrapper' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -l /home/local/sbin ### total 140 -rwxr-xr-x 1 root root 13692 Apr 30 19:11 htpasswd -rwxr-sr-x 1 root www 12996 Apr 30 19:11 makeweb drwxr-xr-x 2 root root 4096 Apr 30 19:39 os-debug -r-xr-xr-x 1 root root 2878 Apr 30 19:11 syslogtocern -r-xr-xr-x 1 bin bin 91232 Apr 30 19:11 thttpd drwxr-xr-x 2 root root 4096 Apr 30 19:39 thttpd-extras -rwxr-xr-- 1 root root 122 Apr 30 19:39 thttpd_wrapper frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat thttpd_wrapper ### #!/bin/sh # thttpd_wrapper while true ; do /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config sleep 10 done # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ # Next "thttpd-rotate" needs to be moved to "/etc/cron.daily/" so our log files get moved every day. The time they get rotated is in "/etc/crontab" frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat /etc/crontab ### # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd-rotate /etc/cron.daily/ ### sudo 'thttpd-rotate' -> '/etc/cron.daily/thttpd-rotate' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -al /etc/cron.daily ### total 40 drwxr-xr-x 2 root root 4096 Apr 30 19:53 . drwxr-xr-x 129 root root 12288 Apr 30 19:47 .. -rwxr-xr-x 1 root root 1478 Jun 10 2021 apt-compat -rwxr-xr-x 1 root root 1298 Apr 29 2021 dpkg -rwxr-xr-x 1 root root 377 Feb 28 2021 logrotate -rwxr-xr-x 1 root root 1123 Feb 19 2021 man-db -rw-r--r-- 1 root root 102 Feb 22 2021 .placeholder -rwxr-xr-- 1 root root 1746 Apr 30 19:39 thttpd-rotate frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat thttpd-rotate ### #!/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 w >> thttpd_log mv thttpd_log thttpd_log.01 date > thttpd_log w >> thttpd_log kill -usr1 `cat /var/run/thttpd.pid` # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ### The last files to copy will be the "thttpd_config" files which go to "/home/local/www/". frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -av thttpd_config* /home/local/www/ ### sudo 'thttpd_config' -> '/home/local/www/thttpd_config' 'thttpd_config~' -> '/home/local/www/thttpd_config~' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -al /home/local/www/ ### total 28 drwxr-xr-x 5 root www 4096 Apr 30 19:55 . drwxr-xr-x 5 root root 4096 Apr 30 19:11 .. drwxr-xr-x 2 root www 4096 Apr 30 19:11 cgi-bin drwxr-xr-x 2 root www 4096 Apr 30 19:14 logs -rwxr-xr-- 1 root root 472 Apr 30 19:39 thttpd_config -r-xr-xr-- 1 root root 472 Apr 30 19:39 thttpd_config~ drwxrwxr-x 3 root www 4096 Apr 30 19:31 users frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat thttpd_config ### # /home/local/www/thttpd_config dir=/home/local/www chroot #chroot jail data_dir=users #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" (../"user-name"). cgipat=**.cgi logfile=/home/local/www/logs/thttpd_log pidfile=/var/run/thttpd.pid # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat thttpd_config ### # /home/local/www/thttpd_config dir=/home/local/www chroot #chroot jail data_dir=users #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" (../"user-name"). cgipat=**.cgi logfile=/home/local/www/logs/thttpd_log pidfile=/var/run/thttpd.pid # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ### TESTING: frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ date Sat 30 Apr 2022 07:57:56 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ### We need the line from thttpd_wrapper without the wrapper. frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cd ../ ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ cat thttpd_wrapper ### #!/bin/sh # thttpd_wrapper while true ; do /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config sleep 10 done # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin $ cd ### We are changing to pi home and will need to start a new terminal since it is going to lock up as soon as thttpd starts. frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ ### ***** On a new terminal ***** frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ # sudo /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config ### copy the line without the first # and paste it on to the command prompt in a new terminal window, as it will lock up when thttpd starts running. frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ # ### On your web browser, type in: localhost ### This goes in the address box. If "thttpd" is working you should see a green screen with a little bit of text and "Index of /" which means thttpd is active on the local computer. frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ # Chromium did not respond but just locked the system up, but I did manage to get a response by putting in my IP Address "192.168.1.90" into my Android phone and was able to see the web site. frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 08:59:07 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ ### Everything should be working at this point. Test one OK. frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ ps -e PID TTY TIME CMD 1 ? 00:00:12 systemd 2 ? 00:00:00 kthreadd 6 ? 00:00:00 mm_percpu_wq 7 ? 00:00:00 rcu_tasks_rude_ 8 ? 00:00:00 rcu_tasks_trace 9 ? 00:01:32 ksoftirqd/0 10 ? 00:00:00 kdevtmpfs 11 ? 00:00:00 netns 12 ? 00:00:00 inet_frag_wq 14 ? 00:00:00 kauditd 15 ? 00:00:00 khungtaskd 16 ? 00:00:00 oom_reaper 17 ? 00:00:00 writeback 18 ? 00:00:02 kcompactd0 33 ? 00:00:00 kblockd 34 ? 00:00:00 blkcg_punt_bio 35 ? 00:00:00 watchdogd 38 ? 00:00:00 rpciod 39 ? 00:00:00 kworker/u3:0 40 ? 00:00:00 xprtiod 41 ? 00:09:13 kswapd0 42 ? 00:00:00 nfsiod 43 ? 00:00:00 iscsi_eh 44 ? 00:00:00 iscsi_conn_clea 45 ? 00:00:00 dwc_otg 46 ? 00:00:00 DWC Notificatio 48 ? 00:00:00 vchiq-slot/0 49 ? 00:00:00 vchiq-recy/0 50 ? 00:00:00 vchiq-sync/0 51 ? 00:00:00 zswap-shrink 54 ? 00:00:00 mmc_complete 56 ? 00:00:00 jbd2/mmcblk0p2- 57 ? 00:00:00 ext4-rsv-conver 60 ? 00:00:00 mld 61 ? 00:00:00 ipv6_addrconf 101 ? 00:00:07 systemd-journal 122 ? 00:00:02 systemd-udevd 138 ? 00:00:00 vchiq-keep/0 139 ? 00:00:00 SMIO 147 ? 00:00:00 mmal-vchiq 150 ? 00:00:00 mmal-vchiq 151 ? 00:00:00 mmal-vchiq 152 ? 00:00:00 mmal-vchiq 154 ? 00:00:00 mmal-vchiq 155 ? 00:00:00 mmal-vchiq 156 ? 00:00:00 mmal-vchiq 245 ? 00:00:01 avahi-daemon 247 ? 00:00:00 cron 248 ? 00:00:03 dbus-daemon 249 ? 00:00:00 avahi-daemon 258 ? 00:00:01 polkitd 284 ? 00:00:00 rsyslogd 302 ? 00:00:01 systemd-logind 305 ? 00:00:28 thd 309 ? 00:00:01 udisksd 317 ? 00:00:01 wpa_supplicant 342 ? 00:00:00 cfg80211 343 ? 00:00:00 dhcpcd 358 ? 00:00:01 ModemManager 360 ? 00:00:00 cupsd 361 ? 00:00:00 rngd 362 ? 00:00:01 epmd 374 ? 00:00:00 lightdm 377 ? 00:00:00 cups-browsed 394 tty1 00:00:00 login 395 ? 00:00:00 agetty 446 ? 00:00:01 systemd 465 ? 00:00:00 (sd-pam) 482 ? 00:00:01 systemd-timesyn 520 ? 00:00:00 pipewire 521 ? 00:00:03 pulseaudio 523 tty1 00:00:00 bash 524 ? 00:00:00 rtkit-daemon 526 tty7 00:10:08 Xorg 529 ? 00:00:00 cec-vc4 530 ? 00:00:00 irq/64-vc4 hdmi 531 ? 00:00:00 card0-crtc0 532 ? 00:00:00 card0-crtc1 533 ? 00:00:00 card0-crtc2 534 ? 00:00:00 card0-crtc3 546 ? 00:00:01 dbus-daemon 547 ? 00:00:00 pipewire-media- 580 ? 00:00:00 lightdm 584 ? 00:00:03 lxsession 634 ? 00:00:00 ssh-agent 661 ? 00:00:00 gvfsd 666 ? 00:00:00 gvfsd-fuse 676 ? 00:00:15 openbox 677 ? 00:00:00 lxpolkit 681 ? 00:15:57 lxpanel 682 ? 00:00:16 pcmanfm 689 ? 00:00:00 agent 696 ? 00:00:07 applet.py 697 ? 00:00:00 ssh-agent 703 ? 00:00:00 xcompmgr 768 ? 00:00:00 gvfs-udisks2-vo 774 ? 00:00:00 menu-cached 780 ? 00:00:00 gvfs-goa-volume 784 ? 00:00:00 gvfs-gphoto2-vo 788 ? 00:00:03 gvfs-afc-volume 793 ? 00:00:00 gvfs-mtp-volume 817 ? 00:00:00 gvfsd-trash 866 ? 00:01:00 packagekitd 1007 ? 00:12:39 geany 1014 pts/0 00:00:01 bash 1026 ? 00:00:00 gvfsd-network 1032 ? 00:00:02 gvfsd-smb-brows 1034 ? 00:00:00 dconf-service 1044 ? 00:00:00 gvfsd-dnssd 1062 ? 00:00:47 pluma 1794 ? 00:00:07 kworker/0:2-events 1831 ? 00:00:26 lxterminal 1837 pts/1 00:00:00 bash 1842 pts/1 00:00:00 sudo 1843 ? 00:03:00 thttpd 2105 ? 00:00:01 upowerd 2306 pts/2 00:00:00 bash 2429 ? 00:01:59 kworker/0:0H-mmc_complete 2569 ? 00:00:00 kworker/0:0-events_power_efficient 2623 ? 00:00:36 kworker/0:1H-kblockd 2626 ? 00:00:00 kworker/u2:0-events_unbound 2648 ? 00:00:00 kworker/0:1-events_power_efficient 2652 ? 00:00:00 kworker/u2:2-events_unbound 2660 ? 00:00:00 kworker/0:3-events_freezable 2662 pts/0 00:00:00 ps frank@AC0XL-Pi-B-Plus-1-2:~ $ ps p 1842 1843 PID TTY STAT TIME COMMAND 1842 pts/1 S+ 0:00 sudo /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config 1843 ? Ss 3:02 /home/local/sbin/thttpd -D -C /home/local/www/thttpd_config frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo kill 1842 1843 frank@AC0XL-Pi-B-Plus-1-2:~ $ sudo kill 1842 1843 kill: (1842): No such process kill: (1843): No such process frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ ### Now you can look at your log file in: /home/local/www/logs/ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 09:02:39 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cd /home/local/www/logs ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ls -al ### total 12 drwxr-xr-x 2 root www 4096 Apr 30 20:02 . drwxr-xr-x 5 root www 4096 Apr 30 19:55 .. -rw-r--r-- 1 nobody nogroup 1606 Apr 30 20:56 thttpd_log frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cat *log ### 192.168.1.219 - - [01/May/2022:02:08:59 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:09:01 +0000] "GET /favicon.ico HTTP/1.1" 404 0 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.3.0) Gecko/68.3.0 Firefox/68.3.0" 192.168.1.219 - - [01/May/2022:02:09:09 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:26 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:31 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:40 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" ::1 - - [01/May/2022:02:48:30 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; CrOS armv6l 13597.84.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.106 Safari/537.36" ::1 - - [01/May/2022:02:49:50 +0000] "UNKNOWN UNKNOWN" 408 0 "" "" 192.168.1.219 - - [01/May/2022:02:56:16 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:56:23 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ date Sat 30 Apr 2022 09:04:13 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ### The program thttpd is working OK. frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ### Now we need to add the files to "users" that are in "/home/local/sbin/thttpd-extras". frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd /home/local/sbin/thttpd-extras/ ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ls -al ### total 76 drwxr-xr-x 2 root root 4096 Apr 30 19:39 . drwxr-xr-x 4 root root 4096 Apr 30 19:50 .. -r--r--r-- 1 root root 533 Apr 30 19:39 anvil_thttpd.gif -rw-r--r-- 1 root root 533 Apr 30 19:39 favicon.ico -rwxr-xr-- 1 root root 485 Apr 30 19:39 rc.local -r-xr-xr-- 1 root root 485 Apr 30 19:39 rc.local~ -rw-r--r-- 1 root root 308 Apr 30 19:39 readme.txt -r--r--r-- 1 root root 73 Apr 30 19:39 robots-site.txt -rw-r--r-- 1 root root 27 Apr 30 19:39 robots.txt -rw-r--r-- 1 root root 186 Apr 30 19:39 sitemap.xml -r--r--r-- 1 root root 186 Apr 30 19:39 sitemap.xml.txt -rwxr-xr-- 1 root root 472 Apr 30 19:39 thttpd_config -r-xr-xr-- 1 root root 472 Apr 30 19:39 thttpd_config~ -rwxr-xr-- 1 root root 1746 Apr 30 19:39 thttpd-rotate -r-xr-xr-- 1 root root 1746 Apr 30 19:39 thttpd-rotate~ -rwxr-xr-- 1 root root 136 Apr 30 19:39 thttpd.sh -r-xr-xr-- 1 root root 136 Apr 30 19:39 thttpd.sh~ -rwxr-xr-- 1 root root 122 Apr 30 19:39 thttpd_wrapper -r-xr-xr-- 1 root root 122 Apr 30 19:39 thttpd_wrapper~ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -iav favicon.ico /home/local/www/users/ ### sudo 'favicon.ico' -> '/home/local/www/users/favicon.ico' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -iav readme.txt /home/local/www/users/ ### sudo 'readme.txt' -> '/home/local/www/users/readme.txt' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo cp -iav robots.txt /home/local/www/users/ ### sudo 'robots.txt' -> '/home/local/www/users/robots.txt' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ sudo ls -al /home/local/www/users/ ### sudo total 24 drwxrwxr-x 3 root www 4096 Apr 30 21:07 . drwxr-xr-x 5 root www 4096 Apr 30 19:55 .. drwxr-xr-x 2 ac0xl www 4096 Apr 30 19:31 ac0xl -rw-r--r-- 1 root root 533 Apr 30 19:39 favicon.ico -rw-r--r-- 1 root root 308 Apr 30 19:39 readme.txt -rw-r--r-- 1 root root 27 Apr 30 19:39 robots.txt frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ date Sat 30 Apr 2022 09:08:36 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat robots-site.txt ### User-agent: * Disallow: Sitemap: http://xxx.xxx.xxx.xxx/sitemap.xml/ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cat sitemap.xml ### http://xxx.xxx.xxx.xxx/ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ ### You would use "robots-site.txt" replacing the XXX.xxx.xxx.xxx with your external static IPv4 address and then naming it "robots.txt". Likewise, with the "sitemap.xml" file and keep the same name for it. Adding both of these files to “/home/local/www/users/”, if you have an external static IP address. frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/thttpd-extras $ cd /etc ### frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ ### **** If you don't use sudo here it will start looping every 10 seconds. Then you would have to find the PID number for thttpd_wrapper and sudo kill "pid-number" because it is trying to write to root files!!!, or just turn off the computer. **** frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ date Sat 30 Apr 2022 09:11:06 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ sudo ./rc.local ### sudo (Starting thttpd from rc.local, REMEMBER the sudo!!!!!!) My IP address is 192.168.1.90 Starting thttpd. thttpd frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ cat /home/local/www/logs/*log ### 192.168.1.219 - - [01/May/2022:02:08:59 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:09:01 +0000] "GET /favicon.ico HTTP/1.1" 404 0 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.3.0) Gecko/68.3.0 Firefox/68.3.0" 192.168.1.219 - - [01/May/2022:02:09:09 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:26 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:31 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:40 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" ::1 - - [01/May/2022:02:48:30 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; CrOS armv6l 13597.84.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.106 Safari/537.36" ::1 - - [01/May/2022:02:49:50 +0000] "UNKNOWN UNKNOWN" 408 0 "" "" 192.168.1.219 - - [01/May/2022:02:56:16 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:56:23 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:17 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:30 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:51 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:01 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:11 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:18 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ ### At this point I want to do a log rotate and check it out. frank@AC0XL-Pi-B-Plus-1-2:/etc $ frank@AC0XL-Pi-B-Plus-1-2:/etc $ cd cron.daily ### frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ ls -al ### total 40 drwxr-xr-x 2 root root 4096 Apr 30 19:53 . drwxr-xr-x 129 root root 12288 Apr 30 19:47 .. -rwxr-xr-x 1 root root 1478 Jun 10 2021 apt-compat -rwxr-xr-x 1 root root 1298 Apr 29 2021 dpkg -rwxr-xr-x 1 root root 377 Feb 28 2021 logrotate -rwxr-xr-x 1 root root 1123 Feb 19 2021 man-db -rw-r--r-- 1 root root 102 Feb 22 2021 .placeholder -rwxr-xr-- 1 root root 1746 Apr 30 19:39 thttpd-rotate frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ ### One has to use sudo because they are owned by root. The period "." stands for "do" then it needs a space, hence the "/". frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ sudo ./thttpd-rotate ### # These files do not exist yet because we do not have 50 log files. 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 mv: cannot stat 'thttpd_log.01': No such file or directory frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ cat /home/local/www/logs/*log ### Sat 30 Apr 2022 09:16:55 PM MDT 21:16:56 up 2:37, 2 users, load average: 0.99, 0.85, 2.39 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 2:37m 0.86s 0.70s -bash frank tty7 :0 18:41 2:36m 12:08 3.52s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ cat /home/local/www/logs/*log.01 ### 192.168.1.219 - - [01/May/2022:02:08:59 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:09:01 +0000] "GET /favicon.ico HTTP/1.1" 404 0 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.3.0) Gecko/68.3.0 Firefox/68.3.0" 192.168.1.219 - - [01/May/2022:02:09:09 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:26 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:31 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:40 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" ::1 - - [01/May/2022:02:48:30 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; CrOS armv6l 13597.84.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.106 Safari/537.36" ::1 - - [01/May/2022:02:49:50 +0000] "UNKNOWN UNKNOWN" 408 0 "" "" 192.168.1.219 - - [01/May/2022:02:56:16 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:56:23 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:17 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:30 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:51 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:01 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:11 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:18 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" Sat 30 Apr 2022 09:16:55 PM MDT 21:16:55 up 2:37, 2 users, load average: 0.99, 0.85, 2.39 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 2:37m 0.86s 0.70s -bash frank tty7 :0 18:41 2:36m 12:08 3.52s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ cd ### Change to Pi home. frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man makeweb ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man htpasswd ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man syslogtocern ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man thttpd ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man redirect ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man ssi ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man strftime ### frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man weblog_parse ### No manual entry for weblog_parse frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ man http_get ### No manual entry for http_get frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ ### It looks like all of the man pages that come with thttpd are working. Some systems will not find the path to the man pages and those systems can use: sudo cp -iav /home/local/man/* /usr/local/man # to copy them over into "/usr/local/man" (see below). frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 09:26:01 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ ###****************************make log entries using different machines or phones.* frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ # 3043 frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 09:45:59 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cat /proc/cpuinfo processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 697.95 Features : half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2835 Revision : 0010 Serial : 0000000078c30145 Model : Raspberry Pi Model B Plus Rev 1.2 frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ date Sat 30 Apr 2022 09:46:25 PM MDT frank@AC0XL-Pi-B-Plus-1-2:~ $ frank@AC0XL-Pi-B-Plus-1-2:~ $ cd /home/local/www/logs frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ls -al total 16 drwxr-xr-x 2 root www 4096 Apr 30 21:16 . drwxr-xr-x 5 root www 4096 Apr 30 19:55 .. -rw-r--r-- 1 nobody nogroup 1713 Apr 30 21:49 thttpd_log -rw-r--r-- 1 nobody nogroup 3009 Apr 30 21:16 thttpd_log.01 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cat *log.01 192.168.1.219 - - [01/May/2022:02:08:59 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:09:01 +0000] "GET /favicon.ico HTTP/1.1" 404 0 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.3.0) Gecko/68.3.0 Firefox/68.3.0" 192.168.1.219 - - [01/May/2022:02:09:09 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:26 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:31 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:40 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" ::1 - - [01/May/2022:02:48:30 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; CrOS armv6l 13597.84.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.106 Safari/537.36" ::1 - - [01/May/2022:02:49:50 +0000] "UNKNOWN UNKNOWN" 408 0 "" "" 192.168.1.219 - - [01/May/2022:02:56:16 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:56:23 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:17 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:30 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:51 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:01 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:11 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:18 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" Sat 30 Apr 2022 09:16:55 PM MDT 21:16:55 up 2:37, 2 users, load average: 0.99, 0.85, 2.39 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 2:37m 0.86s 0.70s -bash frank tty7 :0 18:41 2:36m 12:08 3.52s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cat *log Sat 30 Apr 2022 09:16:55 PM MDT 21:16:56 up 2:37, 2 users, load average: 0.99, 0.85, 2.39 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 2:37m 0.86s 0.70s -bash frank tty7 :0 18:41 2:36m 12:08 3.52s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi 192.168.1.241 - - [01/May/2022:03:48:24 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:48:49 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:48:51 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:13 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:30 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:32 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:52 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:55 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ date Sat 30 Apr 2022 09:51:58 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/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 # frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd /home/local/sbin/os-debug/ ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ ls -al ### total 944 drwxr-xr-x 2 root root 4096 Apr 30 19:39 . drwxr-xr-x 4 root root 4096 Apr 30 19:50 .. -rw-r--r-- 1 root root 916545 Apr 30 19:39 2022-03-25-Install-thttpd-Raspberry-Pi-Model-B-Plus-Rev-1.2-with-512-MB-RAM.txt -rwxr-xr-- 1 root root 185 Apr 30 19:39 datelog -r-xr-xr-- 1 root root 185 Apr 30 19:39 datelog~ -rwxr-xr-- 1 root root 385 Apr 30 19:39 dead-thttpd -r-xr-xr-- 1 root root 385 Apr 30 19:39 dead-thttpd~ -r--r--r-- 1 root root 792 Apr 30 19:39 readme.txt -r--r--r-- 1 root root 792 Apr 30 19:39 readme.txt~ -rwxr-xr-- 1 root root 1965 Apr 30 19:39 thttpd-rotate -r-xr-xr-- 1 root root 1965 Apr 30 19:39 thttpd-rotate~ -rwxr-xr-- 1 root root 153 Apr 30 19:39 thttpd_wrapper -r-xr-xr-- 1 root root 153 Apr 30 19:39 thttpd_wrapper~ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ cat readme.txt ### #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 $ 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 $ # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ sudo cp -av d* thttp*r ../ ### sudo 'datelog' -> '../datelog' 'datelog~' -> '../datelog~' 'dead-thttpd' -> '../dead-thttpd' 'dead-thttpd~' -> '../dead-thttpd~' 'thttpd_wrapper' -> '../thttpd_wrapper' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ sudo cp -av thttpd-rotate /etc/cron.daily ### sudo - we are adding lines for thttpd pid information. 'thttpd-rotate' -> '/etc/cron.daily/thttpd-rotate' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ sudo cp -av d* thttp*r ../ ### sudo 'datelog' -> '../datelog' 'datelog~' -> '../datelog~' 'dead-thttpd' -> '../dead-thttpd' 'dead-thttpd~' -> '../dead-thttpd~' 'thttpd_wrapper' -> '../thttpd_wrapper' frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ cat thttpd_wrapper ### #!/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 # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ cat thttpd-rotate ### #!/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 # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ cat dead-thttpd ### #!/bin/sh # dead-thttpd echo "old dead-thttpd pid = " `cat /var/run/thttpd.pid` >> /home/local/www/logs/thttpd_log date >> /home/local/www/logs/thttpd_log w >> /home/local/www/logs/thttpd_log # sleep 15 # echo "dead-thttpd, new 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 # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ cat datelog ### #!/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 # frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ date Sat 30 Apr 2022 10:02:27 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/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. frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/sbin/os-debug $ cd /etc/cron.daily ### frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ ls -al ### total 40 drwxr-xr-x 2 root root 4096 Apr 30 19:53 . drwxr-xr-x 129 root root 12288 Apr 30 19:47 .. -rwxr-xr-x 1 root root 1478 Jun 10 2021 apt-compat -rwxr-xr-x 1 root root 1298 Apr 29 2021 dpkg -rwxr-xr-x 1 root root 377 Feb 28 2021 logrotate -rwxr-xr-x 1 root root 1123 Feb 19 2021 man-db -rw-r--r-- 1 root root 102 Feb 22 2021 .placeholder -rwxr-xr-- 1 root root 1965 Apr 30 19:39 thttpd-rotate frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ cat thttpd-rotate ### #!/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 # frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/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. frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ ### Notice that this program takes 15 seconds so that the new PID number will have time to come up. frank@AC0XL-Pi-B-Plus-1-2:/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 takin more requests. 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 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. frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ sudo ./thttpd-rotate ### sudo 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 frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ sudo datelog sudo: datelog: command not found frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/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/"! frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ sudo ls -al /home/local/sbin ### total 164 drwxr-xr-x 4 root root 4096 Apr 30 21:55 . drwxr-xr-x 5 root root 4096 Apr 30 19:11 .. -rwxr-xr-- 1 root root 185 Apr 30 19:39 datelog -r-xr-xr-- 1 root root 185 Apr 30 19:39 datelog~ -rwxr-xr-- 1 root root 385 Apr 30 19:39 dead-thttpd -r-xr-xr-- 1 root root 385 Apr 30 19:39 dead-thttpd~ -rwxr-xr-x 1 root root 13692 Apr 30 19:11 htpasswd -rwxr-sr-x 1 root www 12996 Apr 30 19:11 makeweb drwxr-xr-x 2 root root 4096 Apr 30 19:39 os-debug -r-xr-xr-x 1 root root 2878 Apr 30 19:11 syslogtocern -r-xr-xr-x 1 bin bin 91232 Apr 30 19:11 thttpd drwxr-xr-x 2 root root 4096 Apr 30 19:39 thttpd-extras -rwxr-xr-- 1 root root 153 Apr 30 19:39 thttpd_wrapper frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ sudo cp -iav /home/local/sbin/* /usr/local/sbin ### sudo '/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/2022-03-25-Install-thttpd-Raspberry-Pi-Model-B-Plus-Rev-1.2-with-512-MB-RAM.txt' -> '/usr/local/sbin/os-debug/2022-03-25-Install-thttpd-Raspberry-Pi-Model-B-Plus-Rev-1.2-with-512-MB-RAM.txt' '/home/local/sbin/os-debug/readme.txt~' -> '/usr/local/sbin/os-debug/readme.txt~' '/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-rotate~' -> '/usr/local/sbin/os-debug/thttpd-rotate~' '/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/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_wrapper~' -> '/usr/local/sbin/os-debug/thttpd_wrapper~' '/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/thttpd.sh' -> '/usr/local/sbin/thttpd-extras/thttpd.sh' '/home/local/sbin/thttpd-extras/thttpd_config' -> '/usr/local/sbin/thttpd-extras/thttpd_config' '/home/local/sbin/thttpd-extras/anvil_thttpd.gif' -> '/usr/local/sbin/thttpd-extras/anvil_thttpd.gif' '/home/local/sbin/thttpd-extras/readme.txt' -> '/usr/local/sbin/thttpd-extras/readme.txt' '/home/local/sbin/thttpd-extras/thttpd-rotate~' -> '/usr/local/sbin/thttpd-extras/thttpd-rotate~' '/home/local/sbin/thttpd-extras/thttpd.sh~' -> '/usr/local/sbin/thttpd-extras/thttpd.sh~' '/home/local/sbin/thttpd-extras/thttpd_config~' -> '/usr/local/sbin/thttpd-extras/thttpd_config~' '/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/sitemap.xml.txt' -> '/usr/local/sbin/thttpd-extras/sitemap.xml.txt' '/home/local/sbin/thttpd-extras/favicon.ico' -> '/usr/local/sbin/thttpd-extras/favicon.ico' '/home/local/sbin/thttpd-extras/rc.local~' -> '/usr/local/sbin/thttpd-extras/rc.local~' '/home/local/sbin/thttpd-extras/thttpd_wrapper' -> '/usr/local/sbin/thttpd-extras/thttpd_wrapper' '/home/local/sbin/thttpd-extras/robots-site.txt' -> '/usr/local/sbin/thttpd-extras/robots-site.txt' '/home/local/sbin/thttpd-extras/robots.txt' -> '/usr/local/sbin/thttpd-extras/robots.txt' '/home/local/sbin/thttpd-extras/rc.local' -> '/usr/local/sbin/thttpd-extras/rc.local' '/home/local/sbin/thttpd-extras/thttpd_wrapper~' -> '/usr/local/sbin/thttpd-extras/thttpd_wrapper~' '/home/local/sbin/thttpd_wrapper' -> '/usr/local/sbin/thttpd_wrapper' frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ ls -al /usr/local/sbin ### total 164 drwxr-xr-x 4 root root 4096 Apr 30 22:09 . drwxr-xr-x 10 root root 4096 Apr 4 05:45 .. -rwxr-xr-- 1 root root 185 Apr 30 19:39 datelog -r-xr-xr-- 1 root root 185 Apr 30 19:39 datelog~ -rwxr-xr-- 1 root root 385 Apr 30 19:39 dead-thttpd -r-xr-xr-- 1 root root 385 Apr 30 19:39 dead-thttpd~ -rwxr-xr-x 1 root root 13692 Apr 30 19:11 htpasswd -rwxr-sr-x 1 root www 12996 Apr 30 19:11 makeweb drwxr-xr-x 2 root root 4096 Apr 30 19:39 os-debug -r-xr-xr-x 1 root root 2878 Apr 30 19:11 syslogtocern -r-xr-xr-x 1 bin bin 91232 Apr 30 19:11 thttpd drwxr-xr-x 2 root root 4096 Apr 30 19:39 thttpd-extras -rwxr-xr-- 1 root root 153 Apr 30 19:39 thttpd_wrapper frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ sudo datelog ### frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/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/!!! frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ frank@AC0XL-Pi-B-Plus-1-2:/etc/cron.daily $ cd /home/local/www/logs ### frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ date Sat 30 Apr 2022 10:11:50 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ls -al ### total 20 drwxr-xr-x 2 root www 4096 Apr 30 22:06 . drwxr-xr-x 5 root www 4096 Apr 30 19:55 .. -rw-r--r-- 1 nobody nogroup 917 Apr 30 22:10 thttpd_log -rw-r--r-- 1 nobody nogroup 2136 Apr 30 22:06 thttpd_log.01 -rw-r--r-- 1 nobody nogroup 3009 Apr 30 21:16 thttpd_log.02 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cat *log.02 192.168.1.219 - - [01/May/2022:02:08:59 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:09:01 +0000] "GET /favicon.ico HTTP/1.1" 404 0 "" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.3.0) Gecko/68.3.0 Firefox/68.3.0" 192.168.1.219 - - [01/May/2022:02:09:09 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:26 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:31 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:37:40 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" ::1 - - [01/May/2022:02:48:30 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (X11; CrOS armv6l 13597.84.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.106 Safari/537.36" ::1 - - [01/May/2022:02:49:50 +0000] "UNKNOWN UNKNOWN" 408 0 "" "" 192.168.1.219 - - [01/May/2022:02:56:16 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:02:56:23 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:17 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:30 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:12:51 +0000] "GET / HTTP/1.1" 200 25000 "http://192.168.1.90/ac0xl/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:01 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:11 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" 192.168.1.219 - - [01/May/2022:03:13:18 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 4.4.2; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0" Sat 30 Apr 2022 09:16:55 PM MDT 21:16:55 up 2:37, 2 users, load average: 0.99, 0.85, 2.39 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 2:37m 0.86s 0.70s -bash frank tty7 :0 18:41 2:36m 12:08 3.52s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cat *log.01 Sat 30 Apr 2022 09:16:55 PM MDT 21:16:56 up 2:37, 2 users, load average: 0.99, 0.85, 2.39 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 2:37m 0.86s 0.70s -bash frank tty7 :0 18:41 2:36m 12:08 3.52s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi 192.168.1.241 - - [01/May/2022:03:48:24 +0000] "GET / HTTP/1.1" 200 25000 "" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:48:49 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:48:51 +0000] "GET /ac0xl/ HTTP/1.1" 200 25000 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:13 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:30 +0000] "GET /favicon.ico HTTP/1.1" 200 533 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:32 +0000] "GET /readme.txt HTTP/1.1" 200 308 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:52 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" 192.168.1.241 - - [01/May/2022:03:49:55 +0000] "GET /robots.txt HTTP/1.1" 200 27 "http://192.168.1.90/" "Mozilla/5.0 (Android 6.0; Mobile; rv:99.0) Gecko/99.0 Firefox/99.0" Sat 30 Apr 2022 10:06:58 PM MDT log rotate end, thttpd pid = PID TTY TIME CMD 2775 ? 00:02:16 thttpd 22:06:58 up 3:27, 2 users, load average: 1.64, 0.89, 0.82 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 3:27m 0.86s 0.70s -bash frank tty7 :0 18:41 3:27m 17:24 3.73s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cat *log Sat 30 Apr 2022 10:06:58 PM MDT old log rotate end, old thttpd pid = PID TTY TIME CMD 2775 ? 00:02:16 thttpd log rotate new, thttpd pid = PID TTY TIME CMD 3000 ? 00:00:00 thttpd 22:07:14 up 3:27, 2 users, load average: 1.35, 0.86, 0.81 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 3:27m 0.86s 0.70s -bash frank tty7 :0 18:41 3:27m 17:24 3.73s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi datelog, thttpd pid = PID TTY TIME CMD 3000 ? 00:00:10 thttpd Sat 30 Apr 2022 10:10:45 PM MDT 22:10:45 up 3:30, 2 users, load average: 0.63, 0.72, 0.77 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT frank tty1 - 18:40 3:31m 0.86s 0.70s -bash frank tty7 :0 18:41 3:30m 17:54 3.76s /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ### As you can see thttpd can be updated while it is still running! frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ### While it is still running I will finish with adding more "users" to the web site. frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ date Sat 30 Apr 2022 10:15:13 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ ### Adding more Web Users, (Headings). frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # 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. frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ addgroup --help ### adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a normal user adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--add_extra_groups] USER Add a system user adduser --group [--gid ID] GROUP addgroup [--gid ID] GROUP Add a user group addgroup --system [--gid ID] GROUP Add a system group adduser USER GROUP Add an existing user to an existing group general options: --quiet | -q don't give process information to stdout --force-badname allow usernames which do not match the NAME_REGEX configuration variable --help | -h usage message --version | -v version number and copyright --conf | -c FILE use FILE as configuration file frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # Again the process: frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # sudo adduser --ingroup www videos # (new web user "videos") frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # (use a password that is different from the one for "(pi)") frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # su videos # (shell to user "videos") frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # cd frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # touch .user-number # that is a period and the number all in one. frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # makeweb frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # ls -al frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # exit # (exit the shell back to where you were) frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # 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 re-type it, or making typing mistakes. frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # Since I am rebuilding my site, I will add delinquent-accounts/ just to keep my numbers the same. frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ date Sat 30 Apr 2022 10:22:32 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www delinquent-accounts ### sudo Adding user `delinquent-accounts' ... Adding new user `delinquent-accounts' (1002) with group `www' ... Creating home directory `/home/delinquent-accounts' ... Copying files from `/etc/skel' ... New password: Retype new password: Sorry, passwords do not match. passwd: Authentication token manipulation error passwd: password unchanged Try again? [y/N] y 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su delinquent-accounts ### Password: delinquent-accounts@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ delinquent-accounts@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ touch .1002 ### delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/delinquent-accounts Created symbolic link /home/delinquent-accounts/public_html delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 delinquent-accounts www 4096 Apr 30 22:26 . drwxr-xr-x 6 root root 4096 Apr 30 22:22 .. -rw-r--r-- 1 delinquent-accounts www 0 Apr 30 22:26 .1002 -rw-r--r-- 1 delinquent-accounts www 220 Apr 30 22:22 .bash_logout -rw-r--r-- 1 delinquent-accounts www 3523 Apr 30 22:22 .bashrc -rw-r--r-- 1 delinquent-accounts www 1670 Apr 30 22:22 .mkshrc -rw-r--r-- 1 delinquent-accounts www 807 Apr 30 22:22 .profile lrwxrwxrwx 1 delinquent-accounts www 41 Apr 30 22:26 public_html -> /home/local/www/users/delinquent-accounts delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ delinquent-accounts@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ # ******************** Lets try adding "documents". frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ date Sat 30 Apr 2022 10:28:37 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www documents ### sudo Adding user `documents' ... Adding new user `documents' (1003) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su documents ### Password: documents@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ documents@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### documents@AC0XL-Pi-B-Plus-1-2:~ $ documents@AC0XL-Pi-B-Plus-1-2:~ $ touch .1003 ### documents@AC0XL-Pi-B-Plus-1-2:~ $ documents@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/documents Created symbolic link /home/documents/public_html documents@AC0XL-Pi-B-Plus-1-2:~ $ documents@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 documents www 4096 Apr 30 22:31 . drwxr-xr-x 7 root root 4096 Apr 30 22:29 .. -rw-r--r-- 1 documents www 0 Apr 30 22:31 .1003 -rw-r--r-- 1 documents www 220 Apr 30 22:29 .bash_logout -rw-r--r-- 1 documents www 3523 Apr 30 22:29 .bashrc -rw-r--r-- 1 documents www 1670 Apr 30 22:29 .mkshrc -rw-r--r-- 1 documents www 807 Apr 30 22:29 .profile lrwxrwxrwx 1 documents www 31 Apr 30 22:31 public_html -> /home/local/www/users/documents documents@AC0XL-Pi-B-Plus-1-2:~ $ documents@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www downloads ### sudo Adding user `downloads' ... Adding new user `downloads' (1004) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su downloads ### Password: downloads@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ downloads@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### downloads@AC0XL-Pi-B-Plus-1-2:~ $ downloads@AC0XL-Pi-B-Plus-1-2:~ $ touch .1004 ### downloads@AC0XL-Pi-B-Plus-1-2:~ $ downloads@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/downloads Created symbolic link /home/downloads/public_html downloads@AC0XL-Pi-B-Plus-1-2:~ $ downloads@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 downloads www 4096 Apr 30 22:36 . drwxr-xr-x 8 root root 4096 Apr 30 22:33 .. -rw-r--r-- 1 downloads www 0 Apr 30 22:35 .1004 -rw-r--r-- 1 downloads www 220 Apr 30 22:33 .bash_logout -rw-r--r-- 1 downloads www 3523 Apr 30 22:33 .bashrc -rw-r--r-- 1 downloads www 1670 Apr 30 22:33 .mkshrc -rw-r--r-- 1 downloads www 807 Apr 30 22:33 .profile lrwxrwxrwx 1 downloads www 31 Apr 30 22:36 public_html -> /home/local/www/users/downloads downloads@AC0XL-Pi-B-Plus-1-2:~ $ downloads@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www freedom ### sudo Adding user `freedom' ... Adding new user `freedom' (1005) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su freedom ### Password: freedom@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ freedom@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### freedom@AC0XL-Pi-B-Plus-1-2:~ $ freedom@AC0XL-Pi-B-Plus-1-2:~ $ touch .1005 ### freedom@AC0XL-Pi-B-Plus-1-2:~ $ freedom@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/freedom Created symbolic link /home/freedom/public_html freedom@AC0XL-Pi-B-Plus-1-2:~ $ freedom@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 freedom www 4096 Apr 30 22:40 . drwxr-xr-x 9 root root 4096 Apr 30 22:37 .. -rw-r--r-- 1 freedom www 0 Apr 30 22:40 .1005 -rw-r--r-- 1 freedom www 220 Apr 30 22:37 .bash_logout -rw-r--r-- 1 freedom www 3523 Apr 30 22:37 .bashrc -rw-r--r-- 1 freedom www 1670 Apr 30 22:37 .mkshrc -rw-r--r-- 1 freedom www 807 Apr 30 22:37 .profile lrwxrwxrwx 1 freedom www 29 Apr 30 22:40 public_html -> /home/local/www/users/freedom freedom@AC0XL-Pi-B-Plus-1-2:~ $ freedom@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www memes ### sudo Adding user `memes' ... Adding new user `memes' (1006) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su memes ### Password: memes@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ memes@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### memes@AC0XL-Pi-B-Plus-1-2:~ $ memes@AC0XL-Pi-B-Plus-1-2:~ $ touch .1006 ### memes@AC0XL-Pi-B-Plus-1-2:~ $ memes@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/memes Created symbolic link /home/memes/public_html memes@AC0XL-Pi-B-Plus-1-2:~ $ memes@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 memes www 4096 Apr 30 22:44 . drwxr-xr-x 10 root root 4096 Apr 30 22:42 .. -rw-r--r-- 1 memes www 0 Apr 30 22:44 .1006 -rw-r--r-- 1 memes www 220 Apr 30 22:42 .bash_logout -rw-r--r-- 1 memes www 3523 Apr 30 22:42 .bashrc -rw-r--r-- 1 memes www 1670 Apr 30 22:42 .mkshrc -rw-r--r-- 1 memes www 807 Apr 30 22:42 .profile lrwxrwxrwx 1 memes www 27 Apr 30 22:44 public_html -> /home/local/www/users/memes memes@AC0XL-Pi-B-Plus-1-2:~ $ memes@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www music ### sudo Adding user `music' ... Adding new user `music' (1007) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su music ### Password: music@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ music@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### music@AC0XL-Pi-B-Plus-1-2:~ $ music@AC0XL-Pi-B-Plus-1-2:~ $ touch .1007 ### music@AC0XL-Pi-B-Plus-1-2:~ $ music@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/music Created symbolic link /home/music/public_html music@AC0XL-Pi-B-Plus-1-2:~ $ music@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 music www 4096 Apr 30 22:49 . drwxr-xr-x 11 root root 4096 Apr 30 22:46 .. -rw-r--r-- 1 music www 0 Apr 30 22:48 .1007 -rw-r--r-- 1 music www 220 Apr 30 22:46 .bash_logout -rw-r--r-- 1 music www 3523 Apr 30 22:46 .bashrc -rw-r--r-- 1 music www 1670 Apr 30 22:46 .mkshrc -rw-r--r-- 1 music www 807 Apr 30 22:46 .profile lrwxrwxrwx 1 music www 27 Apr 30 22:49 public_html -> /home/local/www/users/music music@AC0XL-Pi-B-Plus-1-2:~ $ music@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www notices ### sudo Adding user `notices' ... Adding new user `notices' (1008) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su notices ### Password: notices@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ notices@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### notices@AC0XL-Pi-B-Plus-1-2:~ $ notices@AC0XL-Pi-B-Plus-1-2:~ $ touch .1008 ### notices@AC0XL-Pi-B-Plus-1-2:~ $ notices@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/notices Created symbolic link /home/notices/public_html notices@AC0XL-Pi-B-Plus-1-2:~ $ notices@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 notices www 4096 Apr 30 22:52 . drwxr-xr-x 12 root root 4096 Apr 30 22:50 .. -rw-r--r-- 1 notices www 0 Apr 30 22:52 .1008 -rw-r--r-- 1 notices www 220 Apr 30 22:50 .bash_logout -rw-r--r-- 1 notices www 3523 Apr 30 22:50 .bashrc -rw-r--r-- 1 notices www 1670 Apr 30 22:50 .mkshrc -rw-r--r-- 1 notices www 807 Apr 30 22:50 .profile lrwxrwxrwx 1 notices www 29 Apr 30 22:52 public_html -> /home/local/www/users/notices notices@AC0XL-Pi-B-Plus-1-2:~ $ notices@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www pictures ### sudo Adding user `pictures' ... Adding new user `pictures' (1009) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su pictures ### Password: pictures@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ pictures@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### pictures@AC0XL-Pi-B-Plus-1-2:~ $ pictures@AC0XL-Pi-B-Plus-1-2:~ $ touch .1009 ### pictures@AC0XL-Pi-B-Plus-1-2:~ $ pictures@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/pictures Created symbolic link /home/pictures/public_html pictures@AC0XL-Pi-B-Plus-1-2:~ $ pictures@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 pictures www 4096 Apr 30 22:56 . drwxr-xr-x 13 root root 4096 Apr 30 22:53 .. -rw-r--r-- 1 pictures www 0 Apr 30 22:55 .1009 -rw-r--r-- 1 pictures www 220 Apr 30 22:53 .bash_logout -rw-r--r-- 1 pictures www 3523 Apr 30 22:53 .bashrc -rw-r--r-- 1 pictures www 1670 Apr 30 22:53 .mkshrc -rw-r--r-- 1 pictures www 807 Apr 30 22:53 .profile lrwxrwxrwx 1 pictures www 30 Apr 30 22:56 public_html -> /home/local/www/users/pictures pictures@AC0XL-Pi-B-Plus-1-2:~ $ pictures@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www rome ### sudo Adding user `rome' ... Adding new user `rome' (1010) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su rome ### Password: rome@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ rome@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### rome@AC0XL-Pi-B-Plus-1-2:~ $ rome@AC0XL-Pi-B-Plus-1-2:~ $ touch .1010 ### rome@AC0XL-Pi-B-Plus-1-2:~ $ rome@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/rome Created symbolic link /home/rome/public_html rome@AC0XL-Pi-B-Plus-1-2:~ $ rome@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 rome www 4096 Apr 30 23:00 . drwxr-xr-x 14 root root 4096 Apr 30 22:57 .. -rw-r--r-- 1 rome www 0 Apr 30 22:59 .1010 -rw-r--r-- 1 rome www 220 Apr 30 22:57 .bash_logout -rw-r--r-- 1 rome www 3523 Apr 30 22:57 .bashrc -rw-r--r-- 1 rome www 1670 Apr 30 22:57 .mkshrc -rw-r--r-- 1 rome www 807 Apr 30 22:57 .profile lrwxrwxrwx 1 rome www 26 Apr 30 23:00 public_html -> /home/local/www/users/rome rome@AC0XL-Pi-B-Plus-1-2:~ $ rome@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www searles-sav-on-propane ### sudo Adding user `searles-sav-on-propane' ... Adding new user `searles-sav-on-propane' (1011) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su searles-sav-on-propane ### Password: searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:~ $ searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:~ $ touch .1011 ### searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:~ $ searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:~ $ 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@AC0XL-Pi-B-Plus-1-2:~ $ searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 searles-sav-on-propane www 4096 Apr 30 23:04 . drwxr-xr-x 15 root root 4096 Apr 30 23:01 .. -rw-r--r-- 1 searles-sav-on-propane www 0 Apr 30 23:03 .1011 -rw-r--r-- 1 searles-sav-on-propane www 220 Apr 30 23:01 .bash_logout -rw-r--r-- 1 searles-sav-on-propane www 3523 Apr 30 23:01 .bashrc -rw-r--r-- 1 searles-sav-on-propane www 1670 Apr 30 23:01 .mkshrc -rw-r--r-- 1 searles-sav-on-propane www 807 Apr 30 23:01 .profile lrwxrwxrwx 1 searles-sav-on-propane www 44 Apr 30 23:04 public_html -> /home/local/www/users/searles-sav-on-propane searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:~ $ searles-sav-on-propane@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www va ### sudo Adding user `va' ... Adding new user `va' (1012) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su va ### Password: va@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ va@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### va@AC0XL-Pi-B-Plus-1-2:~ $ va@AC0XL-Pi-B-Plus-1-2:~ $ touch .1012 ### va@AC0XL-Pi-B-Plus-1-2:~ $ va@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/va Created symbolic link /home/va/public_html va@AC0XL-Pi-B-Plus-1-2:~ $ va@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 va www 4096 Apr 30 23:07 . drwxr-xr-x 16 root root 4096 Apr 30 23:05 .. -rw-r--r-- 1 va www 0 Apr 30 23:07 .1012 -rw-r--r-- 1 va www 220 Apr 30 23:05 .bash_logout -rw-r--r-- 1 va www 3523 Apr 30 23:05 .bashrc -rw-r--r-- 1 va www 1670 Apr 30 23:05 .mkshrc -rw-r--r-- 1 va www 807 Apr 30 23:05 .profile lrwxrwxrwx 1 va www 24 Apr 30 23:07 public_html -> /home/local/www/users/va va@AC0XL-Pi-B-Plus-1-2:~ $ va@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ sudo adduser --ingroup www videos ### sudo Adding user `videos' ... Adding new user `videos' (1013) with group `www' ... 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 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ su videos ### Password: videos@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ videos@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd ### videos@AC0XL-Pi-B-Plus-1-2:~ $ videos@AC0XL-Pi-B-Plus-1-2:~ $ touch .1013 ### videos@AC0XL-Pi-B-Plus-1-2:~ $ videos@AC0XL-Pi-B-Plus-1-2:~ $ makeweb ### Created web directory /home/local/www/users/videos Created symbolic link /home/videos/public_html videos@AC0XL-Pi-B-Plus-1-2:~ $ videos@AC0XL-Pi-B-Plus-1-2:~ $ ls -al ### total 24 drwxr-xr-x 2 videos www 4096 Apr 30 23:11 . drwxr-xr-x 17 root root 4096 Apr 30 23:08 .. -rw-r--r-- 1 videos www 0 Apr 30 23:11 .1013 -rw-r--r-- 1 videos www 220 Apr 30 23:08 .bash_logout -rw-r--r-- 1 videos www 3523 Apr 30 23:08 .bashrc -rw-r--r-- 1 videos www 1670 Apr 30 23:08 .mkshrc -rw-r--r-- 1 videos www 807 Apr 30 23:08 .profile lrwxrwxrwx 1 videos www 28 Apr 30 23:11 public_html -> /home/local/www/users/videos videos@AC0XL-Pi-B-Plus-1-2:~ $ videos@AC0XL-Pi-B-Plus-1-2:~ $ exit ### exit frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ date Sat 30 Apr 2022 11:12:34 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/logs $ cd /home frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ ls -al ### total 68 drwxr-xr-x 17 root root 4096 Apr 30 23:08 . drwxr-xr-x 21 root root 4096 Apr 30 17:30 .. drwxr-xr-x 2 ac0xl ac0xl 4096 Apr 30 19:31 ac0xl drwxr-xr-x 2 delinquent-accounts www 4096 Apr 30 22:27 delinquent-accounts drwxr-xr-x 2 documents www 4096 Apr 30 22:32 documents drwxr-xr-x 2 downloads www 4096 Apr 30 22:37 downloads drwxr-xr-x 17 frank frank 4096 Apr 30 21:45 frank drwxr-xr-x 2 freedom www 4096 Apr 30 22:41 freedom drwxr-xr-x 5 root root 4096 Apr 30 19:11 local drwxr-xr-x 2 memes www 4096 Apr 30 22:45 memes drwxr-xr-x 2 music www 4096 Apr 30 22:49 music drwxr-xr-x 2 notices www 4096 Apr 30 22:53 notices drwxr-xr-x 2 pictures www 4096 Apr 30 22:57 pictures drwxr-xr-x 2 rome www 4096 Apr 30 23:00 rome drwxr-xr-x 2 searles-sav-on-propane www 4096 Apr 30 23:04 searles-sav-on-propane drwxr-xr-x 2 va www 4096 Apr 30 23:08 va drwxr-xr-x 2 videos www 4096 Apr 30 23:12 videos frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ cat /etc/group ### root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:frank 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:frank,ac0xl fax:x:21: voice:x:22: cdrom:x:24:frank,ac0xl floppy:x:25:ac0xl tape:x:26: sudo:x:27:frank audio:x:29:pulse,frank,ac0xl dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:frank,ac0xl sasl:x:45: plugdev:x:46:frank,ac0xl staff:x:50: games:x:60:frank users:x:100:frank,ac0xl nogroup:x:65534: systemd-journal:x:101: systemd-network:x:102: systemd-resolve:x:103: input:x:104:frank kvm:x:105: render:x:106:frank crontab:x:107: netdev:x:108:frank systemd-timesync:x:109: messagebus:x:110: ssh:x:111: bluetooth:x:112: avahi:x:113: spi:x:999:frank i2c:x:998:frank gpio:x:997:frank lightdm:x:114: rdma:x:115: rtkit:x:116: lpadmin:x:117:root,frank ssl-cert:x:118: pulse:x:119: pulse-access:x:120: scanner:x:121:saned saned:x:122: colord:x:123: epmd:x:124: geoclue:x:125: systemd-coredump:x:996: frank:x:1000: www:x:126:frank,ac0xl ac0xl:x:1001: frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ frank@AC0XL-Pi-B-Plus-1-2:/home $ cd /home/local/www/users frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ ls -al ### total 72 drwxrwxr-x 15 root www 4096 Apr 30 23:11 . drwxr-xr-x 5 root www 4096 Apr 30 19:55 .. drwxr-xr-x 2 ac0xl www 4096 Apr 30 19:31 ac0xl drwxr-xr-x 2 delinquent-accounts www 4096 Apr 30 22:26 delinquent-accounts drwxr-xr-x 2 documents www 4096 Apr 30 22:31 documents drwxr-xr-x 2 downloads www 4096 Apr 30 22:36 downloads -rw-r--r-- 1 root root 533 Apr 30 19:39 favicon.ico drwxr-xr-x 2 freedom www 4096 Apr 30 22:40 freedom drwxr-xr-x 2 memes www 4096 Apr 30 22:44 memes drwxr-xr-x 2 music www 4096 Apr 30 22:49 music drwxr-xr-x 2 notices www 4096 Apr 30 22:52 notices drwxr-xr-x 2 pictures www 4096 Apr 30 22:56 pictures -rw-r--r-- 1 root root 308 Apr 30 19:39 readme.txt -rw-r--r-- 1 root root 27 Apr 30 19:39 robots.txt drwxr-xr-x 2 rome www 4096 Apr 30 23:00 rome drwxr-xr-x 2 searles-sav-on-propane www 4096 Apr 30 23:04 searles-sav-on-propane drwxr-xr-x 2 va www 4096 Apr 30 23:07 va drwxr-xr-x 2 videos www 4096 Apr 30 23:11 videos frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ date Sat 30 Apr 2022 11:16:04 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 58G 8.6G 47G 16% / devtmpfs 87M 0 87M 0% /dev tmpfs 215M 0 215M 0% /dev/shm tmpfs 86M 1.1M 85M 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/mmcblk0p1 253M 50M 203M 20% /boot tmpfs 43M 44K 43M 1% /run/user/1000 frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ du -hd2 4.0K ./searles-sav-on-propane 4.0K ./downloads 4.0K ./delinquent-accounts 4.0K ./memes 4.0K ./videos 4.0K ./va 4.0K ./freedom 4.0K ./ac0xl 4.0K ./documents 4.0K ./pictures 4.0K ./music 4.0K ./rome 4.0K ./notices 68K . frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ date Sat 30 Apr 2022 11:18:01 PM MDT frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ frank@AC0XL-Pi-B-Plus-1-2:/home/local/www/users $ # 4600