La commande adduser
peut exécuter un script spécifique à un site pour effectuer toute configuration telle que la suppression de fichiers. Dans la mesure où il est acceptable de commencer par une copie complète, puis de supprimer certains fichiers, cette approche peut fonctionner pour vous.
À partir de la page de manuel de adduser (8) :
If the file /usr/local/sbin/adduser.local
exists, it will be executed after the user account has been set
up in order to do any local setup. The arguments passed to
adduser.local
are:
username uid gid home-directory
Donc, tout ce que vous avez à faire est d’écrire un script qui prend quatre paramètres et de l’utiliser pour supprimer tous les fichiers dont vous avez besoin. Enregistrez-le sous /usr/local/sbin/adduser.local
et assurez-vous qu'il est marqué comme exécutable ( chmod a+x
).
Voici quelque chose pour vous aider à démarrer:
#!/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
La partie intéressante, que vous voudrez éditer, sont les lignes qui ressemblent à celle-ci:
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
Vous pouvez indiquer le nom du groupe et le comportement que vous souhaitez voir au lieu de a)
et rm not_for_a.txt
.