Во-первых, вы должны избегать такого количества sudo
звонков. Вместо этого вы должны запустить скрипт с sudo
. Окончательная версия будет выглядеть так:
#!/bin/bash # first check for root user if [ ! $UID -eq 0 ]; then echo "This script must be run as root." exit 1 fi # check if the user provided an argument if [ -z $1 ]; then echo "No username provided. Usage: $0 username" exit 2 fi username=$1 # set the first argument as the username mkdir "/store/sftp/$username" useradd -d /incoming "$username" passwd "$username" ## Password needs to be typed or passed in here usermod -g sftp "$username" usermod -s /bin/false "$username" chmod 755 "/store/sftp/$username" mkdir "/store/sftp/$username/incoming" chown "$username:sftp" "/store/sftp/$username/incoming"
Заключение в кавычки необходимо, потому что имя пользователя может содержать пробелы (но, конечно, это не так).
Отредактировано для работы.