Таким образом, я нахожусь в этой ситуации, где мы начали добавлять набор новых серверов, потому что мы получаем новые клиенты, поэтому, нам нужны новые серверы для каждого нового клиента, который мы получаем, и с этим следует за потребностью создать пользователей на тех серверах с полномочиями и так далее. Таким образом, то, что я в основном должен сделать на каждом новом сервере, является следующими шагами:
sudo adduser John
sudo usermod -aG sudo John
sudo su John
cd /home/John
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
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
не работает...?
Извините, я выяснил решение несколько дней назад и здесь являюсь моим решением:
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 пользователей. Таким образом, то, что я делаю на каждом сервере:
touch create_users.sh
chmod +x create_users.sh
vi create_users.sh
и мимо в "коде сценария" ./create_users.sh john joe jill
Мне затем предлагают каждого пользователя ввести пароль, я затем просто создаю простой пароль для каждого пользователя и позволяю им изменить его как можно скорее. Это работает на меня и является путем быстрее, чем выполнение adduser --> usermod --> mkdir etc.
вручную для каждого пользователя. Таким образом, на данный момент я придерживаюсь этого.
Не стесняйтесь отправлять свои решения, если таковые имеются, я хотел бы видеть другие подходы, особенно потому что я довольно плохо знаком со сценариями и работой с серверами человечности.