The adduser
perintah dapat menjalankan script spesifik lokasi untuk melakukan setup seperti menghapus file. Selama dapat diterima untuk memulai dengan salinan lengkap dan kemudian menghapus beberapa file setelahnya, maka pendekatan ini dapat bekerja untuk Anda.
Dari halaman manual adduser (8) :
Jika file /usr/local/sbin/adduser.local
ada, itu akan dieksekusi setelah akun pengguna telah diatur untuk melakukan pengaturan lokal. Argumen yang diteruskan
adduser.local
adalah:
direktori rumah nama pengguna uid gid
Jadi yang perlu Anda lakukan adalah menulis skrip yang mengambil empat parameter dan menggunakannya menghapus file yang Anda butuhkan. Simpan sebagai /usr/local/sbin/adduser.local
dan pastikan itu ditandai executable ( chmod a+x
).
Berikut ini sesuatu untuk Anda mulai:
#!/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
Bagian yang menarik, yang ingin Anda edit, adalah garis-garis yang terlihat seperti ini:
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
Anda dapat mengisi nama grup aktual dan perilaku yang ingin Anda lihat alih-alih a)
dan rm not_for_a.txt
.
useradd
tidak disarankan untuk sistem berbasis debian di halaman manual pada sistem 16.04 saya. Jika alasan kehati-hatian ini berubah, bisakah Anda menambahkannya ke jawaban Anda. Juga pada 16,04useradd
danadduser
program yang berbeda dengan opsi yang berbeda, mungkin Anda dapat mengedit jawaban Anda untuk kejelasan.