Der adduser
Befehl kann ein ortsspezifisches Skript ausführen, um alle Einstellungen wie das Entfernen von Dateien vorzunehmen. Solange es akzeptabel ist, mit einer vollständigen Kopie zu beginnen und anschließend einige Dateien zu löschen, könnte dieser Ansatz für Sie funktionieren.
Aus der Adduser (8) Manpage :
Wenn die Datei /usr/local/sbin/adduser.local
vorhanden ist, wird sie ausgeführt, nachdem das Benutzerkonto eingerichtet wurde, um lokale Einstellungen vorzunehmen. Die übergebenen Argumente
adduser.local
sind:
Benutzername uid gid Home-Verzeichnis
Sie müssen also nur ein Skript schreiben, das vier Parameter verwendet, und damit alle benötigten Dateien entfernen. Speichern Sie es als /usr/local/sbin/adduser.local
und stellen Sie sicher, dass es als ausführbar ( chmod a+x
) markiert ist .
Hier ist etwas, um Ihnen den Einstieg zu erleichtern:
#!/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
Der interessante Teil, den Sie bearbeiten möchten, sind die Zeilen, die wie folgt aussehen:
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
Sie können den tatsächlichen Gruppennamen und das Verhalten eingeben, das Sie anstelle von a)
und sehen möchten rm not_for_a.txt
.
useradd
wird für Debian-basierte Systeme in der Manpage auf meinem 16.04-System nicht empfohlen. Wenn sich der Grund für diese Vorsicht geändert hat, können Sie ihn Ihrer Antwort hinzufügen. Auch am 16.04useradd
undadduser
sind verschiedene Programme mit unterschiedlichen Optionen, vielleicht könnten Sie Ihre Antwort aus Gründen der Klarheit bearbeiten.