Tips en Trucs 2021

Wachtwoorden en passwd

Gebruikersbeheer is één van de basistaken van een Linux systeembeheerder. De Linux gebruikers gegevens worden bewaard in het bestand /etc/passwd. Een tekstbestand met essentiële informatie over elke gebruiker in 7 velden.

Elke gebruiker kan het bestand /etc/passwd raadplegen (lezen). Elke gebruiker heeft in het bestand een enkele regel met informatie. Het bestand bevat drie onderdelen:

De root gebruiker, de beheerder, heeft alle bevoegdheden over alle onderdelen van het systeem. De systeem gebruikers hebben de bevoegdheid om installaties en updates uit te voeren. En de gewone gebruikers zijn de personen die het systeem en de software gebruiken.

Het /etc/logins.defs bestand bevat standaard configuratie informatie voor gebruikers. Zo bevat het de minimum en maximum waarden van de UID en GID waarden voor normale en systeem beheerders bij het aanmaken van nieuwe gebruikers.

dany@pindabook:~> grep "UID\|GID" /etc/login.defs
# SYS_UID_MIN to SYS_UID_MAX inclusive is the range for
# UIDs for dynamically allocated administrative and system accounts.
# UID_MIN to UID_MAX inclusive is the range of UIDs of dynamically
UID_MIN                  1000
UID_MAX                 60000
SYS_UID_MIN               100
SYS_UID_MAX               499
SUB_UID_MIN                100000
SUB_UID_MAX             600100000
SUB_UID_COUNT               65536
# SYS_GID_MIN to SYS_GID_MAX inclusive is the range for
# GIDs for dynamically allocated administrative and system groups.
# GID_MIN to GID_MAX inclusive is the range of GIDs of dynamically
GID_MIN                  1000
GID_MAX                 60000
SYS_GID_MIN               100
SYS_GID_MAX               499
SUB_GID_MIN                100000
SUB_GID_MAX             600100000
SUB_GID_COUNT               65536

Daarnaast worden de volgende parameters om bij het aanmaken van een gebruikers de Home map, shell, groep, enz. gebruikt.

dany@pindabook:~> cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Bij het aanmaken van een nieuwe gebruiker wordt informatie aan de vier volgende bestanden toegevoegd:

Zoals reeds hierboven vermeld kan iedereen het /etc/passwd bestand raadplegen:

dany@pindabook:~> cat /etc/passwd
avahi:x:466:468:User for Avahi:/run/avahi-daemon:/bin/false
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:468:469:Chrony Daemon:/var/lib/chrony:/bin/false
daemon:x:2:2:Daemon:/sbin:/sbin/nologin
dnsmasq:x:494:65533:dnsmasq:/var/lib/empty:/bin/false
firebird:x:496:482:Firebird SQL server:/srv/firebird:/bin/bash
flatpak:x:497:496:User for flatpak system helper:/home/flatpak:/sbin/nologin
lightdm:x:462:464:LightDM daemon:/var/lib/lightdm:/bin/false
lp:x:493:485:Printing daemon:/var/spool/lpd:/sbin/nologin
mail:x:498:497:Mailer daemon:/var/spool/clientmqueue:/sbin/nologin
man:x:13:62:Manual pages viewer:/var/lib/empty:/sbin/nologin
messagebus:x:499:498:User for D-Bus:/run/dbus:/usr/bin/false
mysql:x:60:499:MySQL database admin:/var/lib/mysql:/bin/false
nm-openconnect:x:464:466:NetworkManager user for OpenConnect:/var/lib/nm-openconnect:/sbin/nologin
nm-openvpn:x:465:467:NetworkManager user for OpenVPN:/var/lib/openvpn:/sbin/nologin
nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash
nscd:x:472:472:User for nscd:/run/nscd:/sbin/nologin
polkitd:x:492:480:User for polkitd:/var/lib/polkit:/sbin/nologin
postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false
pulse:x:473:474:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
rpc:x:474:65534:user for rpcbind:/var/lib/empty:/sbin/nologin
rtkit:x:491:479:RealtimeKit:/proc:/bin/false
scard:x:470:471:Smart Card Reader:/var/run/pcscd:/usr/sbin/nologin
sddm:x:461:463:SDDM daemon:/var/lib/sddm:/bin/false
sshd:x:469:470:SSH daemon:/var/lib/sshd:/bin/false
statd:x:471:65533:NFS statd daemon:/var/lib/nfs:/sbin/nologin
systemd-coredump:x:476:476:systemd Core Dumper:/:/sbin/nologin
systemd-network:x:475:475:systemd Network Management:/:/sbin/nologin
systemd-timesync:x:477:477:systemd Time Synchronization:/:/sbin/nologin
tftp:x:495:481:TFTP account:/srv/tftpboot:/bin/false
usbmux:x:467:65533:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin
vnc:x:463:465:user for VNC:/var/lib/empty:/sbin/nologin
dany:x:1000:100:Dany:/home/dany:/bin/bash
wwwrun:x:460:460:WWW daemon apache:/var/lib/wwwrun:/sbin/nologin

Elke regel bevat de informatie die nodig is om een gebruiker toegang te verlenen tot het systeem. Zoals de gebruikersnaam, wachtwoord, gebruikers ID, groeps ID, gebruikers informatie, home map en shell. Deze informatie wordt in zeven velden gescheiden door een dubbele punt opgeslagen.

dany@pindabook:~> grep "dany" /etc/passwd
dany:x:1000:100:Dany:/home/dany:/bin/bash
----|-|----|---|----|----------|---------
 1   2  3    4   5       6          7

Om de gewone gebruikers (met een UID vanaf 1000) uit het /etc/passwd bestand te filteren, kan je de volgende opdracht gebruiken:

dany@pindabook:~> cat /etc/passwd | cut -d":" -f1,3 | sed 's/:/ /g' | awk '{ if($2 >= 1000) print $1;}'
nobody
dany

De volgende opdracht toont alle gebruikers met een home map in /home met hun UID's:

dany@pindabook:~> cat /etc/passwd | grep /home | cut -d":" -f1,3 | sed 's/:/ /g' | column -t
flatpak  497
dany     1000

Maar hoe kunnen gewone gebruikers hun wachtwoord wijzigen als ze enkel leesrechten hebben op het /etc/passwd bestand?

dany@pindabook:~> ls -lh /etc/passwd
-rw-r--r-- 1 root root 2,1K  3 jul  2020 /etc/passwd

Wel door de gebruiker tijdelijk root rechten te geven bij het uitvoeren van de passwd opdracht om hun wachtwoord aan te passen:

dany@pindabook:~> ls -lh /usr/bin/passwd
-rwsr-xr-x 1 root shadow 60K  8 jun  2020 /usr/bin/passwd

Het s (setuid) bit zorgt daarvoor. Dit zorgt vanzelfsprekend voor een minder stevige veiligheid (meer rechten = minder veilig), maar wordt op zijn beurt beperkt door de opdracht toe te kennen aan de groep shadow. De shadow groep zorgt ervoor dat enkel het wachtwoord in het bestand /etc/shadow door gewone gebruikers kan worden aangepast. Ook de opdracht passwd zelf is ontwikkeld met de nodige zorg om de veiligheid ervan zo hoog mogelijk te houden.

Wachtwoord opdrachten

Google Chrome 91 en HiDPI schermen

Na een update naar Google Chrome 91, startte Google Chrome op mijn 4K scherm met veel te grote vensteronderdelen, tekst en afbeeldingen. M.a.w. alles is te groot. Mijn grafisch systeem schaalt op mijn 4K scherm alles naar 200 %, dit leest en werkt vlotter. Maar blijkbaar doet Google Chrome er nog eens 200 % bij, maakt in totaal 400 %. Je lost dit op door bij het starten van Google Chrome de parameter --force-device-scale-factor=2 mee te geven. Zo zorg je voor een 200 % schaling. Zo ga je te werk:

Vanaf nu start Google Chrome via de Programmastarter steeds met de juiste schaling.