Toon posts:

[Linux]minicom en lock-files

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer te doorgronden hoe het minicom programma (een terminal programma) lockfiles naar /var/lock schrijft.

code:
1
2
3
4
5
ls -l /usr/bin/minicom
-rwxr-xr-x    1    root    uucp    181965    Jun 23 2002    /usr/bin/minicom

ls -l /var
drwxrwxr-x    6    root    lock    4096      Oct 27 10:20    lock

Als een normale gebruiker minicom start, worden er 3 files aangemaakt in /var/lock. De eigenaar van deze files is de gebruiker en de groep is lock.
De gebruiker is geen lid van de groepen uucp en lock.

Kan iemand uitleggen hoe minicom dit voor elkaar krijgt (een hint is (ook) OK)? Ik heb geprobeerd dit uit te vinden via de sourcecode (van een nieuwere versie) maar tot nu zonder succes.

PS: OS=RH8

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Minicom doet geen locking, dat doet lockdev op RH :

[igmar@jdi ~]$ ls -l /usr/sbin/lockdev
-rwxr-sr-x  1 root lock 14592 Aug 23 03:17 /usr/sbin/lockdev


en doe wordt gewoon door minicom aangeroepen.

Verwijderd

Topicstarter
Ik heb een grep gedaan op de source code en kan geen lockdev vinden. De gegeven executable bestaat inderdaad op mijn systeem, maar er is geen man--page voor. man lockdev beschrijft library functies. Ik heb daar ook een grep op gedaan in de source code en die worden ook niet gevonden.

Blijkbaar bestaan er verschillende 'versies' van minicom. De source-code die ik bestudeer bevat aanroepen van open of creat om de lockfile te creeeren.

lockdev schijnt niet universeel te zijn, aangezien lockdev niet bestaat op mijn slack10 machine. Aangezien ik zo universeel mogelijk wil blijven, kan ik die (dus) niet gebruiken.

Bedankt voor de aanwijzing (ook in P&W mbt fcntl)

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Zonder lockfile is er maar een oplossing : een sgid lock binary :

zonder sgid :
open("/var/lock//LCK..ttyS1", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 EACCES (Permission denied)
write(2, "Cannot create lockfile. Sorry.\n", 31Cannot create lockfile. Sorry.
) = 31


met sgid lock :

[igmar@jdi lock]$ ls -ld /var/lock/
drwxrwxr-x  5 root lock 4096 Oct 27 20:27 /var/lock/
[igmar@jdi lock]$ ls -l
total 16
-rw-r--r--  1 igmar root   25 Oct 27 20:27 LCK..ttyS1


waarbij ik dus niet in de lock groep zit. setuid is ook een optie, maar da's vanzelfsprekend niet te prefereren boven sgid.