Сценарий для создания пользователей на новых серверах

Таким образом, я нахожусь в этой ситуации, где мы начали добавлять набор новых серверов, потому что мы получаем новые клиенты, поэтому, нам нужны новые серверы для каждого нового клиента, который мы получаем, и с этим следует за потребностью создать пользователей на тех серверах с полномочиями и так далее. Таким образом, то, что я в основном должен сделать на каждом новом сервере, является следующими шагами:

  1. sudo adduser John
  2. sudo usermod -aG sudo John
  3. sudo su John
  4. cd /home/John
  5. mkdir .ssh
  6. chmod 700 .ssh/
  7. touch .ssh/authorized_keys
  8. chmod 600 .ssh/authorized_keys

Это очень утомительно, когда необходимо создать 4-5 пользователей на каждом сервере. Что я продолжаю работать, прямо сейчас должен создать сценарий, который делает все эти шаги для меня с простой командой как

./create_users.sh John Jim Jill Peter

Таким образом, то, что я имею до сих пор:

for i in "$@"; do
    echo creating user: "$i"
    sudo adduser $i

    echo add user to sudo group
    sudo usermod -aG sudo $i

    echo creating ssh folder and authorized_keys
    sudo su $i
    cd /home/$i
    mkdir .ssh
    chmod 700 .ssh/
    touch .ssh/authorized_keys
    chmod 600 .ssh/authorized_keys
done

Я еще не испытал его, но я знаю, что это не будет работать, так как я должен передать пароль для каждого пользователя. Таким образом, мой вопрос состоит в том, как я могу сделать это? На данный момент это должно хорошо просто установить некоторый стандартный пароль как 1Password потому что они должны изменить свой пароль так или иначе.

Это даже возможно сделать это со сценарии и/или является этим не, рекомендуют сделать это.

РЕДАКТИРОВАНИЕ 1

Ahh хорошо, мне на самом деле предлагают с установкой пароля для каждого пользователя, если я выполняю это, кажись, работать "превосходные" единственная вещь прямо сейчас, что я испытываю затруднения из-за, то, что я добираюсь до шага где я cd /home/$i который так или иначе, кажется, не работает, я получаю следующую ошибку:

mkdir: cannot create directory ‘.ssh’: Permission denied 
chmod: cannot access '.ssh/': No such file or directory
touch: cannot touch '.ssh/authorized_keys': No such file or directory
chmod: cannot access '.ssh/authorized_keys': No such file or directory

Который имеет смысл, так как я не нахожусь в корректном каталоге. Таким образом, я не добираюсь почему мой cd /home/$i не работает...?

0
задан 30 November 2018 в 08:01

1 ответ

Извините, я выяснил решение несколько дней назад и здесь являюсь моим решением:

for i in "$@"; do
    echo creating user: "$i"
    sudo adduser $i

    echo add user to sudo group
    sudo usermod -aG sudo $i

    echo creating ssh folder and authorized_keys
    sudo -H -u $i bash -c 'mkdir -p /home/"$0"/.ssh' $i
    sudo -H -u $i bash -c 'chmod 700 /home/"$0"/.ssh/' $i
    sudo -H -u $i bash -c 'touch /home/"$0"/.ssh/authorized_keys' $i
    sudo -H -u $i bash -c 'chmod 600 /home/"$0"/.ssh/authorized_keys' $i
done

Это требует, чтобы я, конечно, создал новый сценарий на каждом сервере, но является все еще путем быстрее, чем необходимость выполнить все те команды вручную для 5 пользователей. Таким образом, то, что я делаю на каждом сервере:

  1. touch create_users.sh
  2. chmod +x create_users.sh
  3. vi create_users.sh и мимо в "коде сценария"
  4. Наконец я работаю ./create_users.sh john joe jill

Мне затем предлагают каждого пользователя ввести пароль, я затем просто создаю простой пароль для каждого пользователя и позволяю им изменить его как можно скорее. Это работает на меня и является путем быстрее, чем выполнение adduser --> usermod --> mkdir etc. вручную для каждого пользователя. Таким образом, на данный момент я придерживаюсь этого.

Не стесняйтесь отправлять свои решения, если таковые имеются, я хотел бы видеть другие подходы, особенно потому что я довольно плохо знаком со сценариями и работой с серверами человечности.

0
ответ дан 27 October 2019 в 01:00

Другие вопросы по тегам:

Похожие вопросы: