[linux] /dev/shm/bestand door iedereen te overschrijven

Geert Stappers stappers op stappers.nl
Ma Nov 9 21:59:43 CET 2020


On Mon, Nov 09, 2020 at 07:38:58PM +0100, Daniel C. von Asmuth wrote:
> Aldus schreef Geert Stappers op Mon, Nov 09, 2020 at 06:29:15PM +0100:
> > Hoi,
> > 
> > Wat ik gedacht had, is een bestand in /dev/shm te zetten
> > en dat bestand voor iedereen overschrijfbaar te maken.
> > 
> > Maar dat lukt niet en ik begrijp nog niet waarom niet.
> > 
> > <screenshot>
> > </screenshot>
> > 
> > <history om="probleem te kunnen reproduceren">
> > cd /dev/shm
> > pwd
> > id
> > sudo id
> > date | tee user.datum
> > date | sudo tee root.datum
> > ls -l *.datum
> > sudo chmod a+rw *.datum
> > ls -l *.datum
> > date | sudo tee user.datum 
> > stat user.datum
> > cat user.datum 
> > </history>
> > 
> > In welke hoek zou ik de mogelijke oorzaak kunnen vinden?
> > 
> 
> Interessant; reproduceerbaar. 
> 
> Mijn bevinding is dat als je de schrijfpermissie voor iedereen
> open zet, dat 'asmuth' dan wel de file van 'root' kan overschrijven,
> maar 'root' niet die van 'asmuth'. 
> 
> Probeer eens:
> 	ls -la /dev/shm
> 

stappers op trancilo:~
$ ls -la /dev/shm
total 12
drwxrwxrwt  2 root     root      100 Nov  9 20:50 .
drwxr-xr-x 22 root     root     4000 Nov  1 19:11 ..
-rw-rw-rw-  1 gs0604   gs0604      5 Nov  9 17:55 move-forward.timestamp
-rw-rw-rw-  1 root     root       29 Nov  9 18:06 root.datum
-rw-rw-rw-  1 stappers stappers   29 Nov  9 18:05 stappers.datum
stappers op trancilo:~
$ ls -lad /dev/shm
drwxrwxrwt 2 root root 100 Nov  9 20:51 /dev/shm
stappers op trancilo:~
$ 



> Dit gedrag is het gevolg van het feit dat /dev/shm is gemount met het
> 't' permissie-bit gezet, net zoals de /tmp directory.


OK,  eigenschap van de directory.   Klinkt goed. Dank

<screenshot met="testjes"
           maar="het verwacht gedrag van t permissie NIET kunnen reproduceren">
stappers op trancilo:/dev/shm
$ cd
stappers op trancilo:~
$ touch bestand
stappers op trancilo:~
$ ls -la bestand
-rw-r--r-- 1 stappers stappers 0 Nov  9 20:42 bestand
stappers op trancilo:~
$ chmod o+t bestand
stappers op trancilo:~
$ ls -la bestand
-rw-r--r-T 1 stappers stappers 0 Nov  9 20:42 bestand
stappers op trancilo:~
$ touch bestand2
stappers op trancilo:~
$ ls -l bestand
-rw-r--r-T 1 stappers stappers 0 Nov  9 20:42 bestand
stappers op trancilo:~
$ ls -l bestand2
-rw-r--r-- 1 stappers stappers 0 Nov  9 20:44 bestand2
stappers op trancilo:~
$ chmod o+t bestand2
stappers op trancilo:~
$ ls -l bestand2
-rw-r--r-T 1 stappers stappers 0 Nov  9 20:44 bestand2
stappers op trancilo:~
$ echo iets | tee bestand2
iets
stappers op trancilo:~
$ chmod o-t bestand
stappers op trancilo:~
$ ls -l bestand{,2}
-rw-r--r-- 1 stappers stappers 0 Nov  9 20:42 bestand
-rw-r--r-T 1 stappers stappers 5 Nov  9 20:45 bestand2
stappers op trancilo:~
$ echo iets | sudo tee bestand
[sudo] password for stappers: 
iets
stappers op trancilo:~
$ echo ietsanders | sudo tee bestand2
ietsanders
stappers op trancilo:~
$ ls -l bestand{,2}
-rw-r--r-- 1 stappers stappers  5 Nov  9 20:47 bestand
-rw-r--r-T 1 stappers stappers 11 Nov  9 20:47 bestand2
stappers op trancilo:~
$ mkdir probeersel
stappers op trancilo:~
$ ls -ld probeersel/
drwxr-xr-x 2 stappers stappers 4096 Nov  9 20:59 probeersel/
stappers op trancilo:~
$ chmod o+t probeersel/
stappers op trancilo:~
$ ls -ld probeersel/
drwxr-xr-t 2 stappers stappers 4096 Nov  9 20:59 probeersel/
stappers op trancilo:~
$ echo iets | tee probeersel/bestand
iets
stappers op trancilo:~
$ ls -l probeersel/bestand 
-rw-r--r-- 1 stappers stappers 5 Nov  9 21:01 probeersel/bestand
stappers op trancilo:~
$ chmod a+w probeersel/bestand 
stappers op trancilo:~
$ ls -l probeersel/bestand 
-rw-rw-rw- 1 stappers stappers 5 Nov  9 21:01 probeersel/bestand
stappers op trancilo:~
$ echo ietsanders | sudo tee probeersel/bestand
ietsanders
stappers op trancilo:~
$ cat probeersel/bestand 
ietsanders
stappers op trancilo:~
$ chmod a+w probeersel
stappers op trancilo:~
$ ls -ld probeersel/
drwxrwxrwt 2 stappers stappers 4096 Nov  9 21:01 probeersel/
stappers op trancilo:~
$ echo nogietsanders | sudo tee probeersel/bestand
nogietsanders
stappers op trancilo:~
$ 
</screenshot>

> 
> Lees onderstaande over het gebruik van /dev/shm:
> https://superuser.com/questions/45342/when-should-i-use-dev-shm-and-when-should-i-use-tmp
 

URL bezocht.
Omschakelen van /dev/shm  naar /tmp   gaat me niet van 't' afhelpen.

<screenshot>
$ ls -ld /tmp /dev/shm
drwxrwxrwt  2 root root   100 Nov  9 21:15 /dev/shm
drwxrwxrwt 24 root root 12288 Nov  9 20:41 /tmp
</screenshot>


Op de plek waar ik het probleem ontdekte
kan ik voorkomen dat twee gebruikers ( root en andere user )
allebei de tijdelijke file gaan herschrijven.


> Met afstandelijke groet,
> 
> Daniel von Asmuth
> 
> 	How long it takes to reach your goal
> 	depends less on your speed than on your direction.

Die kwoot is geweldig


Groeten
Geert Stappers
-- 
Silence is hard to parse


Meer informatie over de Linux maillijst