Administracja Linuxem często wymaga wykonania dodatkowych czynności przy większej ilości użytkowników.

W tym przypadku:

  • dodanie użytkowników do grup
  • nadawanie miejsca na dysku (QUOTA), tu 200MB
  • nadawanie praw do bazy danych i tworzenie pustej bazy dla użytkownika

Skrypt wykrywa też, czy dany użytkownik ma już konto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
if [ -z "$1" ]
then
  echo "Użycie: ./dodajuzyt nazwauzytkownika"
  exit 1
fi
if [ -n "`grep "^$1:" /etc/passwd`" ] ; then
  echo "Błąd! Jest już taki użytkownik!";
  exit 2
fi
echo "Tworzenie uzytkownika: $1 ..."
adduser $1
echo "Przydzielanie użytkownika do grupy..."
usermod -gati $1
echo "Ograniczanie przestrzeni dyskowej użytkownikowi..."
quotatool -u $1 -bq 200M -l '200 Mb' /home
echo "Tworzenie konta bazy danych MySQL z bazą o nazwie użytkownika..."
echo "Podaj haslo MySQL INNE, niż hasło Linux: "
read -s haslo
sql="GRANT ALL ON $1.* TO '$1'@'localhost' IDENTIFIED BY '$haslo' WITH GRANT OPTION; CREATE DATABASE $1;"
echo $sql
mysql -uroot -phaslo --execute="$sql"
echo "Nadawanie uprawnień do katalogu..."
chmod 705 /home/$1
sudo -u $1 mkdir /home/$1/public_html
echo "Tworzenie kluczy SSH dla użytkownika..."
sudo -u $1 ssh-keygen -b 2048 -t rsa -C  "$1 201"
sudo -u $1 mv /home/$1/.ssh/id_rsa.pub /home/$1/.ssh/authorized_keys
echo "Konwersja klucza na format PuTTy..."
sudo -u $1 puttygen /home/$1/.ssh/id_rsa -o /home/$1/.ssh/$1.ppk
echo "Użytkownik został utworzony!"