Các adduser
lệnh có thể chạy một kịch bản trang web cụ thể để làm bất kỳ thiết lập giống như loại bỏ tập tin. Miễn là bắt đầu với một bản sao đầy đủ và sau đó xóa một số tệp sau đó, thì phương pháp này có thể phù hợp với bạn.
Từ trang người dùng (8) :
Nếu tệp /usr/local/sbin/adduser.local
tồn tại, nó sẽ được thực thi sau khi tài khoản người dùng đã được thiết lập để thực hiện bất kỳ thiết lập cục bộ nào. Các đối số được truyền tới
adduser.local
là:
Tên người dùng uid gid thư mục nhà
Vì vậy, tất cả những gì bạn cần làm là viết một tập lệnh có bốn tham số và sử dụng nó để loại bỏ bất kỳ tập tin nào bạn cần. Lưu nó dưới dạng /usr/local/sbin/adduser.local
và đảm bảo rằng nó được đánh dấu thực thi ( chmod a+x
).
Đây là một cái gì đó để giúp bạn bắt đầu:
#!/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
Phần thú vị mà bạn muốn chỉnh sửa là những dòng giống như thế này:
a)
[[ "${VERBOSE}" > 0 ]] && echo Removing file for a
rm "${NEW_HOME}/not_for_a.txt"
;;
Bạn có thể điền tên nhóm thực tế và hành vi bạn muốn xem thay vì a)
và rm not_for_a.txt
.
useradd
không khuyến khích các hệ thống dựa trên debian trong trang man trên hệ thống 16.04 của tôi. Nếu lý do cho sự thận trọng này đã thay đổi, bạn có thể thêm nó vào câu trả lời của mình. Cũng trong ngày 16.04useradd
vàadduser
là các chương trình khác nhau với các tùy chọn khác nhau, có lẽ bạn có thể chỉnh sửa câu trả lời của mình cho rõ ràng.