Wat is eigenlijk het praktische verschil tussen "chmod 4755 filename" en "chmod 755 filename" ?
Normaal zal een programma in Ubuntu worden uitgevoerd met de rechten van de gebruiker. Maar met de 4 (in chmod 4775) worden de rechten van de “eigenaar” van het programma gebruikt.
Een voorbeeld is het bekende programma ping om te controleren of er een netwerkverbinding is. Om dit te controleren moet ping een netwerkpoort openen waar een Ubuntu gebruiker normaal geen rechten voor heeft.
cees@desktop:~$ ls -l /bin/ping
-rwsr-xr-x 1 root root 44168 mei 7 2014 /bin/ping
Aan de s op de 4e positie (bij normale programma’s een x) is te zien dat het programma de rechten van de eigenaar (root) gebruikt als het wordt gestart. Dit is ook op te merken aan de rode kleur van de bestandsnaam. Dit wordt ook wel SUID, SETUID of set-user-ID genoemd.
De vraag kwam bij mij op naar aanleiding van deze code:
cd /tmp
wget http://project-downloads.drogon.net/gertboard/avrdude_5.10-4_armhf.deb
sudo dpkg -i avrdude_5.10-4_armhf.deb
sudo chmod 4755 /usr/bin/avrdude
Het programma /usr/bin/avrdude zal als eigenaar root hebben en root-rechten worden gebruikt als je het programma start. Zonder sudo! (ik weet niet wat avrdude voor programma is, beslis zelf of dit nodig is).