Ostatnio konfigurowaliśmy połączenie zdalne (SSH) do Raspberry Pi – dziś coś „dla wszystkich”, tj. niezależnie od tego, czy łączysz się zdalnie (SSH), czy korzystasz z klawiatury (i myszki) podpiętej bezpośrednio do Pi. Zajmiemy się personalizacją użytkowników w Pi, tj. utworzymy nowego użytkownika, skasujemy niepotrzebnego. Pokaże też, jak zmienić nazwę, jeśli zajdzie i taka konieczność…

Użytkownicy w systemie Linux na przykładzie Raspberry Pi (Raspbian/Debian)

Standardowo w Raspberry Pi (konkretnie w systemie Raspbian) domyślne konto użytkownika nazywa się „pi”, i jeśli Wam nie przeszkadza, tj. nie potrzebujecie jako nazwy używać swojego imienia, czy pseudonimy – nie ma raczej przeszkód, by pozostać przy tej nazwie.

Natomiast na pewno trzeba zmienić domyślne hasło (raspberry), głównie ze względów bezpieczeństwa. Warto też od razu ustawić własne hasło dla drugiego standardowo znajdującego się w systemie użytkownika, czyli dla konta „root”.

Hasło dla konta „root”

Zaczniemy od ustawienia hasła dla konta „root” („główne konto” w systemie Linux, taki administrator). W tym celu w oknie konsoli wpisujemy polecenie:

sudo passwd root

i naciskamy [ENTER], po czym wpisujemy hasło (Enter new UNIX password), jeszcze raz [ENTER] i ponownie to samo hasło (Retype new UNIX password) i [ENTER]

raspberry-pi_ssh_root-psswd01

Zmiana powinna zakończyć się potwierdzeniem:

passwd: password updated successfully

Tworzymy nowego użytkownika

W moim wypadku (na potrzeby tego wpisu) będzie to użytkownik „patryk”, robimy to, korzystając z komendy:

sudo adduser patryk

raspberry-pi_ssh_nowy-uzytkownik01

I (standardowo) naciskamy klawisz [ENTER] by zatwierdzić.

raspberry-pi_ssh_nowy-uzytkownik02

Tak jak w przypadku ustawiania hasła dla konta „root”, tak i w tym wypadku obowiązuje zasada:

[nowe hasło] [ENTER] [jeszcze raz nowe hasło] [ENTER]

Z tą różnicą, że tutaj będziemy proszeni o podanie jeszcze kilku informacji, ale zazwyczaj nie ma takiej potrzeby i śmiało można przejść „na enterach”, na końcu tylko wpisując „y” dla potwierdzenia, że wszystko jest poprawnie:

raspberry-pi_ssh_nowy-uzytkownik03

Is the information coreect? [y]

Użytkownik „techniczny”

Może się jednak zdarzyć, że z jakiegoś powodu potrzebujemy użytkownika „w systemie”, ale taki użytkownik nie powinien mieć innych dostępów (np. na potrzeby Samby). W takim przypadku można stworzyć tzw. użytkownika systemowego, za pomocą polecenia:

sudo useradd -r nazwa_użytkownika

Nie zostanie utworzony katalog domowy, do tego taki użytkownik nie będzie mógł zalogować się do systemu.

SUDO

Użytkownik dodany, teraz dobrze byłoby mu nadać uprawnienia do korzystania z komendy „sudo””:

sudo (z ang. superuser do) – program stosowany w systemach operacyjnych GNU/Linux, Unix i podobnych, w celu umożliwienia użytkownikom uruchomienia aplikacji, jako inny użytkownik systemu. Najczęściej służy ono do uruchamiania aplikacji zarezerwowanych dla administratora zwanego rootem.

Dostęp do tego narzędzia kontroluje zazwyczaj plik /etc/sudoers, w którym wymienieni są wszyscy użytkownicy mogący używać sudo oraz programy, które w ten sposób mogą uruchomić. Edycja tego pliku pozwala kontrolować i zarządzać sudo.

(Źródło: Wikipedia)

Jeśli dany użytkownik nie powinien/nie potrzebuje korzystać z uprawnień administratora – pomijamy ten krok.

Zrobimy to, edytując plik „/etc/sudoers/” za pomocą takiej komendy:

sudo visudo

raspberry-pi_ssh_nowy-uzytkownik04

Kursorami przewijamy do miejsca, gdzie mamy taki zapis:

pi ALL=(ALL) NOPASSWD: ALL

i dopisujemy pod spodem:

nowy_użytkownik ALL=(ALL) NOPASSWD: ALL

W moim przypadku (użytkownik „patryk”) będzie to:

patryk ALL=(ALL) NOPASSWD: ALL

Oczywiście możliwości edycji (konfiguracji) za pomocą wpisów w tym miejscu jest sporo, a zaprezentowany powyżej przykład bazuje na domyślnej konfiguracji Raspbiana – taki użytkownik może wykonać dowolną komendę bez pytania o hasło, co jest wygodne.

W niektórych przypadkach warto rozważyć zastosowanie wariantu dość podobnego (dowolna komenda), z tym że przy pierwszym skorzystaniu z „sudo” w danej sesji pojawi się monit o hasło:

patryk ALL=(ALL) ALL

Na koniec trzeba zapisać zmiany, ja zazwyczaj robię to poprzez „wyjście”, czyli kombinację klawiszy CTRL+X (w nano, którego zazwyczaj używam), i na pytanie, czy zapisać zmiany wybieramy „Y”, po czym kasujemy „.tmp” z nazwy pliku:

raspberry-pi_ssh_nowy-uzytkownik04b

File Name to Write: /etc/sudoers.tmp

Zmieniamy na:

File Name to Write: /etc/sudoers

i zatwierdzamy.

Może się zdarzyć, że w systemie nie będziecie mieli zainstalowanej aplikacji „sudo” i tym samym traficie na błąd:

-bash: sudo command not found
-bash: visudo command not found

W przypadku Raspberry Pi i Raspbiana jest to mało prawdopodobne, ale w przypadku niektórych dystrybucji (jak i obrazów dostępnych dla serwerów VPS) może się zdarzyć taka sytuacja. Wtedy wystarczy zalogować się do systemu jako root, i zainstalować pakiet/program „sudo”:

apt-get install sudo

Logujemy się jako (nowy) użytkownik

By zalogować się na nowo utworzonego użytkownika, można uruchomić ponownie Raspberry Pi, wpisując w konsoli polecenie:

sudo shutdown -r now

Można też wylogować aktualnego użytkownika (czyli samego siebie) z systemu za pomocą komendy:

logout

Nawiązując do komentarza Krystiana, dodam, że jeśli łączymy się z Raspberry Pi zdalnie, np. za pomocą PuTTY – oczywiście można otworzyć kolejną sesję, bez zamykania aktualnej.

Po ponownym uruchomieniu możemy zalogować się na nowego użytkownika i zobaczyć czy wszystko działa:

raspberry-pi_ssh_nowy-uzytkownik05

Kasujemy (niepotrzebnego) użytkownika (pi)

Operację kasowania użytkownika – w tym przypadku „pi” – wykonamy takim poleceniem:

sudo deluser -remove-home pi

Przy okazji skasowaliśmy też katalog domowy użytkownika.

Wersja bez kasowania katalogu domowego:

sudo deluser pi

Zamiast kasować – możemy zablokować niepotrzebnego użytkownika (pi), może jeszcze kiedyś się przyda:

sudo passwd -l pi

Odblokowanie:

sudo passwd -u pi

Przy okazji jeszcze kilka komend (do przećwiczenia), które mogą się przydać, jeśli chodzi o zarządzanie użytkownikami:

Nowa grupa:

groupadd nazwa_grupy

Utworzenie użytkownika konkretnej grupy (np. „biuro” „recepcja”) użytkowników:

useradd -G nazwa_grupy nazwa_użytkownika

Zamian głównej grupy użytkownika:

usermod -g nazwa_grupy nazwa_użytkownika

Dodanie dodatkowej grupy dla użytkownika:

usermod -a -G nazwa_grupy nazwa_użytkownika

Kasowanie użytkownika z grupy:

deluser nazwa_użytkownika nazwa_grupy

Kasowanie grupy:

groupdel nazwa_grupy

Informacje o użytkowniku:

id nazwa_użytkownika

Lista użytkowników w systemie (jeden ze sposób na…):

cat /etc/passwd

I lekko zmodyfikowana wersja – tylko nazwa i katalog domowy:

sed 's/:[^:]*$//; s/:.*:/ /' /etc/passwd

Lista grup w systemie (jeden ze sposób na…):

cat /etc/group

I lekko zmodyfikowana wersja – tylko nazwa:

cut -d: -f1 /etc/group

Pamiętajcie, by poprzedzić polecenie komendą „sudo” jeśli nie wykonujecie jej z konta „root” (czyli zapewne zazwyczaj).

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk