[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