Thread Datei sperren: flock() (31 answers)
Opened by bieber at 2007-07-10 15:25

bloonix
 2007-07-11 17:54
#316 #316
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Wenn man die Prozess ID hat, dann kann man auch in der Umgebung
der Prozess ID nach REMOTE_USER suchen. Die Umgebung kann man in
/proc/<pid>/environ absuchen.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use Linux::Fuser;

my $fuser = Linux::Fuser->new();
my @procs = $fuser->fuser($file) or die $!;
my $ruser = ();

foreach my $proc (@procs) {
  my $pid = $proc->pid;

  open my $fh, '<', "/proc/$pid/environ" or die $!;
  my $env = do { local $/; <$fh> };
  foreach my $pair (split /\0/, $env) {
     next unless $pair =~ /^\s*REMOTE_USER=(.+)/;
     $ruser .= "$1<br/>";
  }  
}


Bei mir funktioniert das [s]hervorragend[/s], obwohl es umständlich ist und es
sicher bessere Lösungen gibt. Aber da gibt es noch das Problem, dass
www-run nicht die notwendigen Rechte hat /proc/<pid>/fd zu lesen.\n\n

<!--EDIT|opi|1184162655-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread Datei sperren: flock()