Schritt 1: Passworte ändern
Nach der Grundinstallation kann man sich auf dem Raspberry mit dem Unix User „pi“ und dem default Password einloggen. Dieses sollte man als erstes ändern:
passwd
Changing password for pi.
Current password:
New password:
Retype new password:
Oh – neuerdings – insbesondere beim 64 Bit Raspberry OS für den Raspberry Pi 4:
das default Password für den User pi gibt es nicht mehr!!! Also – die Karte wieder in einen anderen Raspberry extern einstecken, mounten und in der Datei /etc/shadow den Eintrag von dem User pi auf diesem Raspberry übernehmen (cut&paste). Dann wieder zurück … nun kann der User pi sich mit dem Password vom alten Raspberry einloggen.
Schritt 2: neue User
Es ist auch empfehlenswert, einen neuen User anzulegen, da die Hacker natürlich zuerst versuchen, mit „pi“ reinzukommen. Also am Beispiel des neuen Unix Users „newly“:
sudo useradd --home-dir /home/newly --inactive -1 --create-home newly
Der Parameter –password schreibt das neue Password lediglich in /etc/passwd rein – gearbeitet wird aber mit /etc/shadow – d.h. das funktioniert so nicht. Also noch anschließend:
sudo passwd newly
New password:
Retype new password:
passwd: password updated successfully
Nun kann sich der neue Benutzer einloggen: su – newly
Doch nun braucht er noch weitere Rechte, falls er den Unix User „pi“ beerben soll.
Schritt 3: enable root access
Hier werde ich vielleicht von manchen Unix Freaks ausgeschimpft. Ich öffne gerne den root User für dauerhaften Zugriff, d.h. ich vergebe ein Password für root, so dass man sich unter root einloggen kann und somit die Verwendung von sudo vermeidet. Ist das wirklich ein Sicherheitsrisiko? Also:
sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
Schritt 4: Landeseinstellung und Hostname
Will man in Deutsch seine Fehlermeldungen sehen, kann man weiters wie folgt machen:
[sudo] raspi-config
5 Localisation Options Configure language and regional settings
L1 Locale Configure language and regional settings
--> [*] de_DE.UTF-8 UTF-8 - eventuell auch en_GB.UTF-8
L2 Timezone Configure time zone --> Europe --> Berlin
1 System Options
S4 Hostname
--> Wähle einen anderen Namen als den Default Raspberry
Finish --> reboot: yes
Schritt 5: Rechtevergabe
Der eben angelegte neue Unix User newly darf noch keine sudo machen! Also mache als Unix User root (su – ) (oder mit sudo):
cd /etc/sudoers.d
cp 010_pi-nopasswd 020_newly-nopasswd
vi 020_newly-nopasswd
--> exchange pi with the name of the new user
Weitere Rechte:
vi /etc/group
--> füge den neuen User da hinzu, wo pi schon die Rechte hat - am Besten natürlich erst bei Bedarf!
--> Gemacht:
adm:x:4:pi,newly
users:x:100:pi,newly
i2c:x:998:pi,newly
gpio:x:997:pi,newly
audio:x:29:pi,pulse,newly
sudo:x:27:newly
Vergib sudo nur an newly, nicht an pi, damit hat pi keine sudo rechte mehr!
Schritt 6: Rechtewegname
Nun sollte man dem Standard User pi seine Rechte wegnehmen, also weiterhin als root User:
cd /etc/sudoers.d
rm 010_pi-nopasswd
Sollte man oben bei group pi nicht aus der Gruppe sudo genommen haben, geht noch: pi mit sudo, aber pi muss sein Password angeben – sein eigenes – und kommt weiter! Also auch noch, falls nicht oben schon gemacht:
vi /etc/group
--> remove pi from sudo entry (if not done previously)
Dann hat der Unix User pi keine Möglichkeit mehr, sudo zu benutzen. Sollte man ihm noch adm entziehen?
Zusatzschritt: Grundeinstellungen für die User
Ich habe immer ganz gerne, wenn ich mit ll anstatt ls -l mein Filelisting bekomme. Auch mein „privates“ Kommando lt = „Fileliste nach Datum“ sortiert habe ich immer gerne. Deswegen trage ich in $HOME/.profile aller meiner User folgendes ein:
# folgendes ist default nach Installation
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
# mein Teil:
mylt()
{
ls -alt $* | head;
}
alias lt=mylt
alias ll='ls -al'
# date >> $HOME/logs/login.log
# unset DISPLAY
Die beiden letzten setzte ich nur bei Bedarf:
Die Zeile mit date gibt mir ein Listing, wann ich mich eingeloggt habe. Das Directory logs muss natürlich existieren!
Nächster Hint nicht mehr aktuell, das dieser Effekt nur bei einer bestimmten Installation auftrat. Aber vielleicht noch mal nötig?
Die Zeile mit unset habe ich dann aktiv, wenn ich nur mit putty/ssh eingeloggt bin, ansonsten versucht vim zuerst seine Graphik Version zu öffnen und dann erst die Charakter Version, was zu einer Zeitverzögerung führt. Geht vermutlich auch mit einer Option! Darf nicht für vnc disabled sein, d.h. vnc braucht die Definition von DISPLAY, die automatisch gesetzt wird.
Noch ein Schritt: nützliche Tools nachinstallieren
Als erstes nenne ich mal den erweiterten vi Editior vim
apt-get update #!important
apt-get upgrade # kann dauern!
apt-get install vim
Hinweis: cut&paste geht im vim nur mit shift-Maustaste, anstatt nur mit Maustaste!
Falls apt-get update schief geht, siehe Raspberry – Problem beim apt-get
Nützliches Tool, um Bilddateien zu Konvertieren:
apt-get install imagemagick