Zarządzanie systemem linuksowym, z którego korzysta bardzo wielu użytkowników może być wymagające. Dodatkowo gdy uwzględnimy fakt, że takich systemów mamy kilkadziesiąt, to bez wprowadzenia dodatkowych narzędzi, zarządzanie tym wszystkim może być uciążliwe.
Jako przykład weźmy pod uwagę sale komputerowe na Uczelni. Zakładając, że mamy jedno konto, z którego korzystają wszyscy studenci, wystarczy przed każdymi zajęciami skasować i ponownie utworzyć konto
student. Możemy to zrobić za pomocą poleceń:
sudo deluser studentsudo adduser student
Bardzo pomocne w tym celu może okazać się połączenie przez SSH, które pozwoli nam na wykonanie tych operacji z jednego komputera, po kolei na wszystkich maszynach. Wcześniej jednak musimy zainstalować serwer SSH, na każdym komputerze z osobna, co niestety będzie wymagało zalogowania się na konto z uprawnieniami administratora i wpisania następującego polecenia w okienku terminala:
sudo apt-get install ssh openssh-server
Pomimo tego, że mamy już skonfigurowany SSH i możemy podłączyć się do każdego komputera nie ruszając się z miejsca, to problem ciągle istnieje. Musimy powtórzyć te same operacje, dla każdej maszyny osobno.
Rozwiązaniem tego problemu może być skrypt
Multixterm, będący częścią pakietu
Expect. Instalację przeprowadzamy wpisując w terminalu:
sudo apt-get install expect expect-dev expectk
Następnie przygotowujemy skrypt Multixterm, który po domyślnej instalacji w Ubuntu 8.04 z niewiadomych przyczyn znajduje się w archiwum (w Ubuntu 6.10 było wszystko OK).
sudo gunzip /usr/share/doc/expect-dev/examples/multixterm.gz
sudo chmod +x /usr/share/doc/expect-dev/examples/multixterm
sudo ln -s /usr/share/doc/expect-dev/examples/multixterm /bin/multixterm
W tym momencie możemy przetestować jego działanie wpisując następujące polecenie:
multixterm -xc "ssh administrator@%n" adres_ip_1 adres_ip_2 adres_ip_n
Użytkownika
administrator zmieniamy na innego, który ma możliwość zarządzania komputerem.
Polecenie to otwiera otwiera nam tyle okenek terminala ile podaliśmy adresów IP. Dodatkowo pojawia się jedno okienko główne do wpisywania poleceń.
Jest już całkiem nieźle. Mamy to o co nam chodziło od samego początku - zarządzamy wszystkimi komputerami tak, jakbyśmy pracowali na jednym. Jest jeszcze jeden mały problem. Podczas zakładania użytkownika, program
adduser odpytuje nas o informacje o użytkowniku, takie jak login, hasło, i inne. Najlepiej jakby udało się to w jakiś sposób ominąć i wpisać wszystko w linii komend. Takie możliwości ma inny skrypt do zakładania użytkowników: useradd. Jego użycie znacznie ułatwi nam przygotowanie automatycznego skryptu do czyszczenia konta studenta. Gotowy skrypt może wyglądać np. tak:
#!/bin/bash
echo "Kasowanie uzytkownika student"
sudo rm -r /home/student/
sudo deluser student
sudo delgroup student
echo "Dodawanie uzytkownika student"
sudo useradd -m -d /home/student -s /bin/bash -c "student" student
(echo "student:haslo")|sudo chpasswd
sudo rm /home/student/Desktop/*
sudo rm /home/student/Pulpit/*
Taki skrypt możemy zapisać na każdym komputerze w katalogu domowym użytkownika z uprawnieniami administratora i po zalogowaniu za pomocą Multixterm wystarczy go uruchomić.
Na koniec warto skonfigurować połączenie SSH w taki sposób, aby łączyć się z poszczególnymi komputerami bez podawania hasła. Więcej można o tym przeczytać na polskim forum Ubuntu w
howto "ssh tips".
Prawdopodobnie cały ten proces da się jeszcze bardziej usprawnić. Jeśli macie jakieś pomysły to proszę o podpowiedź w komentarzu.