2011-01-20 2 views
1

Я хочу автоматизировать добавление пользователей SFTP. Мои команды, необходимые являются следующими, принимая, например, при добавлении пользователя «Джейсона»:Помогите мне написать очень простой скрипт BASH?

useradd jason 
passwd jason 
mkdir /home/jason 
chown root:jason /home/jason 
chmod 775 /home/jason 
usermod -d /home/jason jason 
usermod -a -G sftp jason 
mount --bind /srv/ftp/~jason /home/jason 

Как я могу заменить каждое имя с переменным для BASH, и он запросит пароль в начале, так что, возможно, подключить его где это необходимо?

Я буду стараться, чтобы научиться делать это самостоятельно, мои умственные способности очень ограничены прямо сейчас ..

+1

Не 'useradd' может выполнять большинство задач, которые вы перечисляете? – eumiro

+0

Я так думаю - я попытаюсь изменить это. –

ответ

1
#!/bin/bash 

read -p "Enter user: " user 
read -s -p "Enter password: " pass 

useradd "$user" 
passwd --stdin "$user" <<<"$pass" 
mkdir /home/"$user" 
chown root:"$user" /home/"$user" 
chmod 775 /home/"$user" 
usermod -d /home/"$user" "$user" 
usermod -a -G sftp "$user" 
mount --bind /srv/ftp/~"$user" /home/"$user" 

Обратите внимание, что если ваша версия passwd не поддерживает опцию --stdin, вы» вам нужно будет использовать что-то вроде expect или autoexpect

+0

Кажется, что -stdin не вариант, как я могу ожидать? Поблагодарите свою душу за помощь. –

+0

Ah - Я читал где-нибудь вы можете использовать 'echo username: password | chpasswd', я попробую. –

+0

@Tim выглядит хорошей альтернативой. В вашем случае 'chpasswd <<<" $ user: $ pass "' – SiegeX

Смежные вопросы