adduser
Polecenia można uruchomić skrypt site-specific wykonywać żadnej konfiguracji jak usuwanie plików. Tak długo, jak dopuszczalne jest rozpoczęcie od pełnej kopii, a następnie później usunięcie niektórych plików, takie podejście może działać dla Ciebie.
Ze strony podręcznika adduser (8) :
Jeśli plik /usr/local/sbin/adduser.local
istnieje, zostanie wykonany po skonfigurowaniu konta użytkownika w celu przeprowadzenia lokalnej konfiguracji. Przekazane argumenty
adduser.local
to:
nazwa użytkownika uid gid katalog domowy
Wszystko, co musisz zrobić, to napisać skrypt, który ma cztery parametry i użyć go, aby usunąć wszystkie potrzebne pliki. Zapisz go jako /usr/local/sbin/adduser.local
i upewnij się, że jest oznaczony jako wykonywalny ( chmod a+x
).
Oto coś na początek:
#!/bin/bash
## Site-specific setup for newly-created users.
## adduser(8) will call this script after setting up a new user.
set -euo pipefail
if [[ "$#" != 4 ]]; then
echo "usage: $0 username uid gid home" > /dev/stderr
fi
NEW_USERNAME="${1:?}"
NEW_UID="${2:?}"
NEW_GID="${3:?}"
NEW_HOME="${4:?}"
# The groups command outputs a space-separated list of group names
IFS=' '
for group in $(groups "${NEW_USERNAME}"); do
case "${group}" in
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
b)
[[ "${VERBOSE}" > 0 ]] && echo Removing dir for b
rm -r "${NEW_HOME}/not_for_b/"
;;
*)
[[ "${VERBOSE}" > 1 ]] && echo No special setup required for $group
;;
esac
done
Interesującą częścią, którą chcesz edytować, są linie, które wyglądają tak:
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
Możesz wpisać rzeczywistą nazwę grupy i zachowanie, które chcesz zobaczyć zamiast a)
i rm not_for_a.txt
.
useradd
jest odradzane dla systemów opartych na Debianie na stronie man w moim systemie 16.04. Jeśli przyczyna tego ostrzeżenia uległa zmianie, możesz dodać ją do swojej odpowiedzi. Również 16.04useradd
iadduser
są różne programy z różnymi opcjami, być może możesz edytować swoją odpowiedź dla jasności.