Skip to content

Commit 6dba6fb

Browse files
committed
build: add removeuser module
1 parent c883c5a commit 6dba6fb

File tree

4 files changed

+146
-85
lines changed

4 files changed

+146
-85
lines changed

.github/workflows/deploy-docker-github.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# @type github workflow
33
# @author Aetherinox
44
# @url https://github.com/Aetherinox
5-
# @usage deploys docker container to Github GHCR and send message to discord
5+
# @usage builds and releases a new docker image to Dockerhub and send message to discord
66
# upload this workflow to the following branches:
77
# - https://github.com/Aetherinox/docker-base-ubuntu/tree/main
88
# - https://github.com/Aetherinox/docker-base-ubuntu/tree/docker/ubuntu-*

Dockerfile

Lines changed: 83 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -364,92 +364,93 @@ RUN \
364364

365365
RUN \
366366
echo "**** Ripped from Ubuntu Docker Logic ****" && \
367-
rm -f /etc/apt/sources.list.d/ubuntu.sources && \
368-
set -xe && \
369-
echo '#!/bin/sh' \
370-
> /usr/sbin/policy-rc.d && \
371-
echo 'exit 101' \
372-
>> /usr/sbin/policy-rc.d && \
373-
chmod +x \
374-
/usr/sbin/policy-rc.d && \
375-
dpkg-divert --local --rename --add /sbin/initctl && \
376-
cp -a \
377-
/usr/sbin/policy-rc.d \
378-
/sbin/initctl && \
379-
sed -i \
380-
's/^exit.*/exit 0/' \
381-
/sbin/initctl && \
382-
echo 'force-unsafe-io' \
383-
> /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \
384-
echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \
385-
> /etc/apt/apt.conf.d/docker-clean && \
386-
echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \
387-
>> /etc/apt/apt.conf.d/docker-clean && \
388-
echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \
389-
>> /etc/apt/apt.conf.d/docker-clean && \
390-
echo 'Acquire::Languages "none";' \
391-
> /etc/apt/apt.conf.d/docker-no-languages && \
392-
echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \
393-
> /etc/apt/apt.conf.d/docker-gzip-indexes && \
394-
echo 'Apt::AutoRemove::SuggestsImportant "false";' \
395-
> /etc/apt/apt.conf.d/docker-autoremove-suggests && \
396-
mkdir -p /run/systemd && \
397-
echo 'docker' \
398-
> /run/systemd/container && \
367+
rm -f /etc/apt/sources.list.d/ubuntu.sources && \
368+
set -xe && \
369+
echo '#!/bin/sh' \
370+
> /usr/sbin/policy-rc.d && \
371+
echo 'exit 101' \
372+
>> /usr/sbin/policy-rc.d && \
373+
chmod +x \
374+
/usr/sbin/policy-rc.d && \
375+
dpkg-divert --local --rename --add /sbin/initctl && \
376+
cp -a \
377+
/usr/sbin/policy-rc.d \
378+
/sbin/initctl && \
379+
sed -i \
380+
's/^exit.*/exit 0/' \
381+
/sbin/initctl && \
382+
echo 'force-unsafe-io' \
383+
> /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \
384+
echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \
385+
> /etc/apt/apt.conf.d/docker-clean && \
386+
echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \
387+
>> /etc/apt/apt.conf.d/docker-clean && \
388+
echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \
389+
>> /etc/apt/apt.conf.d/docker-clean && \
390+
echo 'Acquire::Languages "none";' \
391+
> /etc/apt/apt.conf.d/docker-no-languages && \
392+
echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \
393+
> /etc/apt/apt.conf.d/docker-gzip-indexes && \
394+
echo 'Apt::AutoRemove::SuggestsImportant "false";' \
395+
> /etc/apt/apt.conf.d/docker-autoremove-suggests && \
396+
mkdir -p /run/systemd && \
397+
echo 'docker' \
398+
> /run/systemd/container && \
399399
echo "**** install apt-utils and locales ****" && \
400-
apt-get update && \
401-
apt-get upgrade -y && \
402-
apt-get install -y \
403-
apt-utils \
404-
locales && \
400+
apt-get update && \
401+
apt-get upgrade -y && \
402+
apt-get install -y \
403+
apt-utils \
404+
locales && \
405405
echo "**** install packages ****" && \
406-
apt-get install -y \
407-
bash \
408-
sudo \
409-
nano \
410-
ca-certificates \
411-
catatonit \
412-
coreutils \
413-
cron \
414-
lsb-release \
415-
curl \
416-
findutils \
417-
iproute2 \
418-
git \
419-
gnupg \
420-
jq \
421-
netcat-openbsd \
422-
systemd-standalone-sysusers \
423-
tzdata && \
406+
apt-get install -y \
407+
bash \
408+
sudo \
409+
nano \
410+
ca-certificates \
411+
catatonit \
412+
coreutils \
413+
cron \
414+
lsb-release \
415+
curl \
416+
findutils \
417+
iproute2 \
418+
git \
419+
gnupg \
420+
jq \
421+
netcat-openbsd \
422+
systemd-standalone-sysusers \
423+
tzdata && \
424424
echo "**** generate locale ****" && \
425-
locale-gen en_US.UTF-8 && \
426-
echo "**** create dockerx user and make our folders ****" && \
427-
useradd --uid ${UUID1} \
428-
--user-group \
429-
--home /config \
430-
--shell /bin/false \
431-
${USER1} && \
432-
usermod -aG ${USER1} ${USER1} && \
433-
usermod -aG sudo ${USER1} && \
434-
usermod -aG users ${USER1} && \
435-
mkdir -p \
436-
/app \
437-
/config \
438-
/defaults \
439-
/aetherxpy && \
425+
locale-gen en_US.UTF-8 && \
426+
echo "**** Creating user 'dockerx' and structure ****" && \
427+
sudo sed -i "s|^UID_MIN.*|UID_MIN\t\t\t 100|" /etc/login.defs && \
428+
useradd --uid ${UUID1} \
429+
--user-group \
430+
--home /config \
431+
--shell /bin/false \
432+
${USER1} && \
433+
usermod -aG ${USER1} ${USER1} && \
434+
usermod -aG sudo ${USER1} && \
435+
usermod -aG users ${USER1} && \
436+
mkdir -p \
437+
/app \
438+
/config \
439+
/defaults \
440+
/aetherxpy && \
440441
echo "**** cleanup ****" && \
441-
userdel ubuntu && \
442-
mkdir -p /etc/sudoers.d/ && \
443-
echo ${USER1} ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/${USER1} && \
444-
chmod 0440 /etc/sudoers.d/${USER1} && \
445-
update-ca-certificates -f && \
446-
apt-get autoremove -yq && \
447-
apt-get clean -yq && \
448-
rm -rf \
449-
/tmp/* \
450-
/var/lib/apt/lists/* \
451-
/var/tmp/* \
452-
/var/log/*
442+
userdel ubuntu && \
443+
mkdir -p /etc/sudoers.d/ && \
444+
echo ${USER1} ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/${USER1} && \
445+
chmod 0440 /etc/sudoers.d/${USER1} && \
446+
update-ca-certificates -f && \
447+
apt-get autoremove -yq && \
448+
apt-get clean -yq && \
449+
rm -rf \
450+
/tmp/* \
451+
/var/lib/apt/lists/* \
452+
/var/tmp/* \
453+
/var/log/*
453454

454455
# #
455456
# scratch › add local files

root/etc/s6-overlay/s6-rc.d/init-removeuser/run

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,68 @@
11
#!/usr/bin/with-contenv bash
22
# shellcheck shell=bash
33

4+
# #
5+
# define > colors
6+
#
7+
# Use the color table at:
8+
# - https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797
9+
# #
10+
11+
declare -A c=(
12+
[end]=$'\e[0m'
13+
[white]=$'\e[97m'
14+
[bold]=$'\e[1m'
15+
[dim]=$'\e[2m'
16+
[underline]=$'\e[4m'
17+
[strike]=$'\e[9m'
18+
[blink]=$'\e[5m'
19+
[inverted]=$'\e[7m'
20+
[hidden]=$'\e[8m'
21+
[black]=$'\e[0;30m'
22+
[redl]=$'\e[0;91m'
23+
[redd]=$'\e[0;31m'
24+
[red1]=$'\e[38;5;160m'
25+
[red2]=$'\e[38;5;196m'
26+
[magental]=$'\e[0;95m'
27+
[magentad]=$'\e[0;35mm'
28+
[fuchsia1]=$'\e[38;5;205m'
29+
[fuchsia2]=$'\e[38;5;198m'
30+
[bluel]=$'\e[0;94m'
31+
[blued]=$'\e[0;34m'
32+
[blue1]=$'\e[38;5;033m'
33+
[blue2]=$'\e[38;5;033m'
34+
[blue3]=$'\e[38;5;68m'
35+
[cyanl]=$'\e[0;96m'
36+
[cyand]=$'\e[0;36m'
37+
[greenl]=$'\e[0;92m'
38+
[greend]=$'\e[0;32m'
39+
[green1]=$'\e[38;5;2m'
40+
[green2]=$'\e[38;5;76m'
41+
[yellowl]=$'\e[0;93m'
42+
[yellowd]=$'\e[0;33m'
43+
[yellow1]=$'\e[38;5;184m'
44+
[yellow2]=$'\e[38;5;190m'
45+
[yellow3]=$'\e[38;5;193m'
46+
[orange1]=$'\e[38;5;202m'
47+
[orange2]=$'\e[38;5;208m'
48+
[greyl]=$'\e[0;37m'
49+
[greyd]=$'\e[0;90m'
50+
[grey1]=$'\e[38;5;240m'
51+
[grey2]=$'\e[38;5;244m'
52+
[grey3]=$'\e[38;5;250m'
53+
[navy]=$'\e[38;5;62m'
54+
[olive]=$'\e[38;5;144m'
55+
[peach]=$'\e[38;5;210m'
56+
)
57+
458
# #
559
# Removes users from the base system
6-
#
60+
#
761
# getent group list groups
862
# getent passwd list users
963
# id -Gn irc list users in group
1064
# cut -d: -f1 /etc/passwd list users
11-
#
65+
#
1266
# for user in $(awk -F: '{print $1}' /etc/passwd); do groups $user; done
1367
# #
1468

@@ -42,3 +96,9 @@ for user in ${removeUsers[@]}; do
4296
deluser --remove-home $user &>/dev/null
4397
delgroup $user &>/dev/null
4498
done
99+
100+
# #
101+
# Finish
102+
# #
103+
104+
printf '%-29s %-65s\n' " ${c[bluel]}Users${c[end]}" "${c[end]}Removed base users${c[end]}"

0 commit comments

Comments
 (0)