From ffd30e7b4cca032d6f32105c04d4c54a2ce98fd7 Mon Sep 17 00:00:00 2001 From: cszhz Date: Mon, 4 Aug 2025 11:01:03 +0800 Subject: [PATCH] delete users add delete users for customer request --- .../LifecycleScripts/base-config/del_users.sh | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/del_users.sh diff --git a/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/del_users.sh b/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/del_users.sh new file mode 100644 index 000000000..b3f2b0bc4 --- /dev/null +++ b/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/del_users.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# Creates/Deletes users from `shared_users.txt` file +# each line in the `shared_users.txt` file should be of the format: +# ``` +# username1,uid1,/fsx/username1 +# username2,uid2,/fsx/username2 +# ``` +# +# The script should be run as root user +# see `shared_users_sample.txt` for an example + +set -e +set -x + +SHARED_USER_FILE="shared_users.txt" + + +delete_user() { + local username=$1 + local uid=$2 + local fsx_home=$3 + +# Determine home directory based on OpenZFS filesystem availability + if df -h | grep -q "/home"; then + echo "OpenZFS is mounted at /home" + local home="/home/$username" + + # Create user with OpenZFS home + if userdel -r "$username"; then + echo "Deleted user $username." + + # Make sure fsxl directory still exists and is accessible + sudo rf -rf $fsx_home + else + echo "Failed to delete user $username with uid $uid" + fi + else + echo "OpenZFS is not mounted. Using FSxL file system" + # delete user with uid and directory + if userdel -r "$username"; then + echo "Deleted user $username with uid $uid and home $home." + else + echo "Failed to delete user $username with uid $uid" + fi + fi +} + + + +main() { + if [[ ! -f $SHARED_USER_FILE ]]; then + echo "Shared user file $SHARED_USER_FILE does not exist. Skipping adding users." + exit 0 + fi + + if [[ ! -s $SHARED_USER_FILE ]]; then + echo "Shared user file $SHARED_USER_FILE is empty. Skipping adding users." + exit 0 + fi + + while IFS="," read -r username uid home; do + echo "Requested create user: $username with uid: $uid and home directory: $home" + delete_user "$username" "$uid" "$home" + done < $SHARED_USER_FILE +} + +main "$@" +