El adduser
comando puede ejecutar una secuencia de comandos específica del sitio para realizar cualquier configuración, como eliminar archivos. Siempre que sea aceptable comenzar con una copia completa y luego eliminar algunos archivos, este enfoque podría funcionar para usted.
Desde la página del comando man adduser (8) :
Si el archivo /usr/local/sbin/adduser.local
existe, se ejecutará después de que se haya configurado la cuenta de usuario para realizar cualquier configuración local. Los argumentos pasados a
adduser.local
son:
nombre de usuario uid gid directorio de inicio
Entonces, todo lo que necesita hacer es escribir un script que tome cuatro parámetros y usarlo para eliminar cualquier archivo que necesite. Guárdelo como /usr/local/sbin/adduser.local
y asegúrese de que esté marcado como ejecutable ( chmod a+x
).
Aquí hay algo para comenzar:
#!/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 parte interesante, que querrás editar, son las líneas que se parecen a esta:
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
Puede completar el nombre del grupo real y el comportamiento que le gustaría ver en lugar de a)
y rm not_for_a.txt
.
useradd
no se recomienda para sistemas basados en Debian en la página de manual de mi sistema 16.04. Si el motivo de esta precaución ha cambiado, ¿podría agregarlo a su respuesta? También en 16.04useradd
yadduser
hay diferentes programas con diferentes opciones, quizás podría editar su respuesta para mayor claridad.