Portál AbcLinuxu, 12. května 2025 07:39
./startpeki.sh: /bin/sh: bad interpreter: Permission denied/bin/sh je normálně tam, kde má být. Ve vlastnostech je, že je to odkaz na bash ( spustitelný soubor). Systém jsem stěhoval přes cp -a. Dá se s tím něco dělat? Předem děkuji za odpovědi.
/dev/sda3 / reiserfs defaults 1 1 /dev/fd0 /media/floppy auto noauto,user,sync 0 0 /dev/sda1 /windows/C vfat users,gid=users,umask=0002,utf8=true 0 0 /dev/sda5 swap swap default 0 0 /dev/sda6 /home auto auto,user 0 0 /dev/sda7 /windows/D vfat users,gid=users,umask=0002,utf8=true 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 proc /proc proc defaults 0 0 usbfs /proc/bus/usb usbfs noauto 0 0Noexec tam nikde není. Odkaz v Googlu, který máte asi na mysli, jsem už taky prošel a exec to nespravilo. Možná jsem měl hledat důkladněji, ale řešení jsem tam nenašel. Nebo se ztratilo v tom množství.
Taky mě napadlo smazat ten link a vytvořit ho znovu, ale protože ukazuje nejspíše dobře, asi by to taky nebylo k ničemu. Prostě nevím.
/bin/sh ./startpeki.sh
exec
máte v podstatě jen na root partition, čili předpokládám že se ten link (i soubor na který linkuje) nachází tam, ano?
Kdyžtak k defaults zkuste přidat ještě exec (i když dle man by to mělo být defaults ok).
Zkontrolujte si důkladně ty shelly:
bash$ ls -l /bin/*sh -rwxr-xr-x 1 root root 640720 Jul 24 17:08 /bin/bash lrwxrwxrwx 1 root root 9 Nov 23 09:46 /bin/csh -> /bin/tcsh lrwxrwxrwx 1 root root 4 Nov 23 09:46 /bin/rbash -> bash lrwxrwxrwx 1 root root 4 Nov 23 09:46 /bin/sh -> bash -rwxr-xr-x 1 root root 340096 Mar 7 2006 /bin/tcsh
user Allow an ordinary user to mount the file system. The name of the mounting user is written to mtab so that he can unmount the file system again. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).Na mountování /home by ti mělo vyhovovat "defaults".
exec
". Jinak předpokládám, že ne pořadí voleb nezáleží... nebo jste tímto chtěl říct že ano?
ls -l startpeki.sh2) Súborový systém je mountovaný v "noexec" rezime. V akom adresári je umiestnený ten skript? Čo vypíše
mount -p3) Za "#!/bin/sh" v hlavičke skriptu je windowsový koniec riadku. Nie je pri otvorení skriptu pomocou
vim -b startpeki.shna prvom radku
#!/bin/sh^M? Ak áno, treba ^M zmazať.
ls -l /bin/*sh -rwxr-xr-x 1 root root 114744 Nov 25 2006 /bin/ash -rwxr-xr-x 1 root root 557704 Nov 25 2006 /bin/bash lrwxrwxrwx 1 root root 4 Sep 22 21:26 /bin/csh -> tcsh lrwxrwxrwx 1 root root 12 Sep 22 21:26 /bin/ksh -> /lib/ast/ksh -rwxr-xr-x 1 root root 11369 Nov 25 2006 /bin/rescan-scsi-bus.sh -rwxr-xr-x 1 root root 641596 Nov 26 2006 /bin/sash lrwxrwxrwx 1 root root 4 Sep 22 21:26 /bin/sh -> bash -rwxr-xr-x 1 root root 318356 Nov 25 2006 /bin/tcsh -rwxr-xr-x 1 root root 502840 Nov 28 2006 /bin/zsh
ls -l startpeki.sh -rwxr-xr-x 1 novak users 52 Sep 27 20:23 startpeki.sh
mount -- p mount: can't find p in /etc/fstab or /etc/mtab
#!/bin/sh cd /windows/D/Peki/data java -jar peki.jardo /etc/fstab jsem doplnil k /dev/sda6 exec. Začalo fungovat spouštění v dřívějším rozsahu. Jen u Wine se mi zdá, že se nespustí jeden program, který dříve spustit šel, ale nevím to určitě. Spouštěcí skripty jsou všechny v /home. Spouštěné soubory ve /windows/D a /home. Asi vám výpisy řeknou víc mě. S tím exec je to nějaká záhada. Díval jsem se do /etc/fstab u Debianu, a ani tam jsem nic podobného nenašel. Začalo mi tedy fungovat spouštění, ale netuším, proč, když exec asi není úplně není ten problém. Jiný systém ho neobsahuje a taky funguje.
/etc/fstab
odstranit parametr exec
a script upravit takto:#!/bin/bash
/home
už jste ho jak říkáte přidal, a pro /windows/D
to udělejte také.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.