O comando adduser
pode executar um script específico do site para fazer qualquer configuração, como remover arquivos. Desde que seja aceitável começar com uma cópia completa e, em seguida, excluir alguns arquivos posteriormente, essa abordagem funcionará para você.
A partir da página do manual 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
Portanto, tudo o que você precisa fazer é escrever um script que use quatro parâmetros e usá-lo para remover todos os arquivos necessários. Salve-o como /usr/local/sbin/adduser.local
e verifique se ele está marcado como executável ( chmod a+x
).
Aqui está algo para você começar:
#!/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
A parte interessante, que você deseja editar, são as linhas que se parecem com esta:
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
Você pode inserir o nome e o comportamento do grupo que gostaria de ver em vez de a)
e rm not_for_a.txt
.