← Back to team overview

sslug-teknik team mailing list archive

Re: xterm: Can't execvp /usr/local/bin/comgt: Permission denied

 

On Thu, 2008-07-24 at 11:59 +0200, Mogens Kjaer wrote:
> Søren Larsen wrote:
> ...
> > xterm: Can't execvp /usr/local/bin/comgt: Permission denied
> > 
> > Hvis jeg så kigger på rettighederne på comgt:
> > 
> > soren@soren-laptop:~$ ls -al /usr/local/bin/
> > drwxr-xr-x 3 root root 4096 2008-07-21 14:45 .
> > drwxr-xr-x 10 root root 4096 2008-04-22 19:48 ..
> > drwxr-xr-x 2 root root 4096 2008-07-21 14:45 comgt
> > 
> > Er der nogen der kan fortælle mig, hvorfor xterm kommer med Permission
> > denied?
> > 
> > Skal /usr/local/bin/comgt egentligt være tomt?
> 
> Du kan ikke eksekvere et directory. comgt burde være en eksekverbar
> fil.
> 
> Mogens

Nej, selvfølgelig da ikke. Det havde jeg ikke lige fokus på.
Jeg er lidt usikker på, om programmet comgt, bliver installeret
ordentligt, når jeg køre en "make install". Derfor har jeg prøvet, at
studere filen Makefile, som har følgende indhold:

LIB     = -L/usr/local/lib
INC     = -I/usr/local/include
EXE     = /usr/local/bin
MAN     = /usr/share/man/man1
CPROG   = comgt
SCRIPTPATH = /etc/comgt/
SCRIPTSRC = ./scripts/
BIN     = $(CPROG)
MANP    = comgt.1 sigmon.1

CFLAGS  = -c
LDFLAGS =

all: $(BIN)

install:
        chmod a-w $(BIN)
        chmod u+rw $(BIN)
        chmod a+x $(BIN)
        cp $(BIN) $(EXE)
        chmod a-wx $(MANP)
        chmod u+rw $(MANP)
        chmod a+r $(MANP)
        cp $(MANP) $(MAN)
        -mkdir $(SCRIPTPATH)
        chmod a-w $(SCRIPTPATH)
        chmod u+rw $(SCRIPTPATH)
        chmod a+x $(SCRIPTPATH)
        cp -f $(SCRIPTSRC)* $(SCRIPTPATH)
        chmod a-w $(SCRIPTPATH)*
        chmod u+rw $(SCRIPTPATH)*
        chmod a+x $(SCRIPTPATH)*

uninstall:
        cd $(EXE); rm $(BIN)
        cd $(MAN); rm $(MANP)
        -rm -r $(SCRIPTPATH)

clean:
        -rm *.o
        -rm $(CPROG)
        -rm *~
        -rm $(SCRIPTSRC)*~

comgt: comgt.o
        cc comgt.o $(LDFLAGS) -o comgt

comgt.o: comgt.c comgt.h
        cc comgt.c $(CFLAGS)

Når "make install" køres stopper den med en fejl:

root@soren-laptop:/home/soren/Desktop/comgt.0.32# make install
chmod a-w comgt 
chmod u+rw comgt 
chmod a+x comgt 
cp comgt  /usr/local/bin
cp: omitting directory `comgt'
make: *** [install] Error 1
root@soren-laptop:/home/soren/Desktop/comgt.0.32#

Derfor har jeg været inde i Makefile og rettet følgende:
"cp $(BIN) $(EXE)" til "cp -r $(BIN) $(EXE)", for at få den til at
kører færdig.

Resultat er, at der bliver oprettet i tomt katalog ved navn comgt
i /usr/local/bin og et katalog ved navn comgt i /etc.
Kataloget /etc/comgt indeholder:

root@soren-laptop:/etc/comgt# ls -al
total 36
drwxrwxrwx   2 root root  4096 2008-07-21 14:45 .
drwxr-xr-x 124 root root 12288 2008-07-24 11:02 ..
-rwxrwxrwx   1 root root   662 2008-07-21 14:45 command
-rwxrwxrwx   1 root root   470 2008-07-21 14:45 dump
-rwxrwxrwx   1 root root  3046 2008-07-21 14:45 operator
-rwxrwxrwx   1 root root   731 2008-07-21 14:45 README
-rwxrwxrwx   1 root root  1372 2008-07-21 14:45 sigmon

Skal kataloget "/usr/local/bin/comgt", ik' også indeholde noget?




Follow ups

References