View previous topic :: View next topic |
Author |
Message |
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Wed Jan 11, 2012 1:17 pm Post subject: "xxx.sh" brak dostepu |
|
|
Proszę kolegów i koleżanki coś spie...łem. Mianowicie, mam program księgujący, który odpala się za pomocą skryptu run.sh. Próba odpalenia każdego skryptu *.sh kończy się komunikatem "brak dostępu". Nadmienię, że to mi działało, potem coś przestawiłem (ale nie wiem co ) i przestało działać. Myślałem, że to wina xfce, ale na fluxboksie mam to samo. |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 554
|
Posted: Thu Jan 12, 2012 2:37 am Post subject: |
|
|
Spróbuj:
Code: | chmod +x run.sh
./run.sh |
Ewentualnie zobacz, czy nie majstrowałeś z flagą noexec w fstab, przy opcjach partycji, na której są skrypty.
A jak nie pójdzie (skrypt, nie program księgowy), to wrzuć na na paste lub wkleja wynik i daj tutaj linka.
Program strace trzeba zainstalować, jeśli jeszcze go nie masz.
I napisz, na jakim Linuxie to nie działa.
Bo na forum Gentoo ktoś, kto nie zna elementarnych podstaw Linuxa (używanie skryptów powłoki), zdarza się równie często, jak Twardowski na księżycu.
To by było na tyle
|
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Thu Jan 12, 2012 4:57 pm Post subject: |
|
|
Code: |
$ strace ./run.sh
execve("./run.sh", ["./run.sh"], [/* 53 vars */]) = -1 EACCES (Permission denied)
dup(2) = 3
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7801000
_llseek(3, 0, 0xbfa71b44, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Permission denied\n", 32strace: exec: Permission denied
) = 32
close(3) = 0
munmap(0xb7801000, 4096) = 0
exit_group(1) = ?
|
wynik strace nie wiele mi mówi
wpis do fstab:
Code: | /dev/sda6 /home ext3 defaults,noatime,users 0 0 |
nie uruchomiłem go nawet jako root
dodatkowo uzupełmianie tabulatorem ignoruje skrypt (tzn piszę ścieżkę dostęu np: /home/user/program/ i nazwa skryptu już się nie dopełnia)
Ostatnie reinstalowałem system (gentoo)
Wygląda to jakbym odgórnie zablokował wykonywanie skryptów. Proszę o dalsze sugestie, bo pewnie jest szkolny błąd. |
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Thu Jan 12, 2012 4:58 pm Post subject: |
|
|
PS. chyba trafiłeś na Twardowskiego :D |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 554
|
Posted: Thu Jan 12, 2012 8:07 pm Post subject: |
|
|
Quote: | Code: | execve("./run.sh", ["./run.sh"], [/* 53 vars */]) = -1 EACCES (Permission denied) |
|
Pokaż wyniki
I przede wszystkim:
Code: | ls -l `which sh` `which bash` |
Code: | ls -l `echo $SHELL` |
Powinieniś zobaczyć wyniki podobne do tych, (to u mnie i działa):
Code: | ls -l `which sh` `which bash`
-rwxr-xr-x. 1 root root 1062299 10-19 15:31 /bin/bash
lrwxrwxrwx. 1 root root 4 10-19 15:31 /bin/sh -> bash
|
Code: | ls -l `echo $SHELL`
-rwxr-xr-x. 1 root root 1062299 10-19 15:31 /bin/bash |
Spróbuj też uruchomić tak:
Nie kombinowałeś na tym systemie czasem z Selinuxem albo Grsecurity?
To by było na tyle
|
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Thu Jan 12, 2012 8:41 pm Post subject: |
|
|
Code: |
wielki ~ ls -l 'which sh' 'which bash'
ls: nie ma dostępu do which sh: Nie ma takiego pliku ani katalogu
ls: nie ma dostępu do which bash: Nie ma takiego pliku ani katalogu
wielki ~ # ls -l 'which.sh' 'which.bash'
ls: nie ma dostępu do which.sh: Nie ma takiego pliku ani katalogu
ls: nie ma dostępu do which.bash: Nie ma takiego pliku ani katalogu
wielki ~ # ls -l 'echo $SHELL'
ls: nie ma dostępu do echo $SHELL: Nie ma takiego pliku ani katalogu
|
Code: |
ls -l ./run.sh
-rwxrwxr-x 1 zbyszek zbyszek 116 10-11 09:43 ./run.sh
|
nie kombinowałem |
|
Back to top |
|
|
joi_ Apprentice
Joined: 28 Mar 2005 Posts: 171
|
Posted: Thu Jan 12, 2012 9:30 pm Post subject: |
|
|
nie przepisuj ręcznie tego co napisał Jacekalex, tylko wklej - użyłeś ' zamiast `...
co masz w pierwszej linijce skryptu?
pewnie pisałeś skrypt pod Windowsem, co? |
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Thu Jan 12, 2012 11:23 pm Post subject: |
|
|
Code: |
wielki ~ # ls -l `which sh` `which bash`
-rwxr-xr-x 1 root root 768952 01-12 21:50 /bin/bash
lrwxrwxrwx 1 root root 4 01-12 21:50 /bin/sh -> bash |
Code: |
wielki ~ # ls -l `echo $SHELL`
-rwxr-xr-x 1 root root 768952 01-12 21:50 /bin/bash |
sorki
Code: |
#!/bin/sh
srcdir=`dirname $0`
cd $srcdir
./ld-linux.so.2 --library-path './lib/' ./ledger $@ &> ~/ledger.log |
cały skrypt
Code: |
#!/bin/sh
export LD_LIBRARY_PATH=`pwd`
exec ./bricscad "$@"
|
ten też nie działa |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 554
|
Posted: Fri Jan 13, 2012 12:26 am Post subject: |
|
|
Code: | ./run.sh
./run.sh: line 3: /home/user/Desktop/bricscad: Nie ma takiego pliku ani katalogu
./run.sh: line 3: exec: /home/user/Desktop/bricscad: nie można uruchomić: Nie ma takiego pliku ani katalogu |
Jak widać, próbuje coś robić - skrypt nr 2.
Natomiast Ledger (ten ze skryptu nr 1), - to o ile pamietam jest program, który działa jako cgi przez przegladarkę (o ile to ten Ledger).
Instaluje się go na Apachu albo innym serwerze www.
Skrypt numer 1 też działa, w logu pozostawił:
Code: | cat ~/ledger.log
./run.sh: line 4: ./ld-linux.so.2: Nie ma takiego pliku ani katalogu |
Wniosek:
Skrypt run.sh, jakby nie wygladał, jak tylko ma atrybut wykonalności, działać musi, błędów bym radził szukać gdzie indziej.
Jeśli w terminalu w środowisku graficznym nie chce, to zobacz, czy na konsoli tekstowej są takie same błędy, czy inne, czy w ogóle nie ma żadnej reakcji.
To by było na tyle
|
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Fri Jan 13, 2012 1:18 pm Post subject: |
|
|
Zrobiłem mały eksperyment. Rozpakowałem bricscad na koncie innego użytkownika, kliknołem na briscad.sh i też nic. Gdzie xfce4 przechowuje informację jakim programem otwierać poszczególne pliki? bo skasowałem wszystkie ustawienia na moim koncie, a mimo wszystko xfce pamiętał co czym otwierać, może to tam ? |
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Fri Jan 13, 2012 3:07 pm Post subject: |
|
|
Nie masz tam czasem skonfigurowanego grsecurity albo selinuksa? Mi to wyglada na Trusted Path Exec z grseca. |
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Fri Jan 13, 2012 8:42 pm Post subject: |
|
|
jak to sprawdzić?
Żadnego pakietu zawierającego nazwę selinux nie mam zainstalowanego |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 554
|
Posted: Sun Jan 15, 2012 3:56 am Post subject: |
|
|
Pokaż Pan dla pewności, panie Twardowski, wynik małego testu:
z konta root:
Code: | grep -i security /boot/config-$(uname -r) | grep -v '#' |
To z ramki powyżej trzeba skopiować do terminala myszką.
Żeby nie było takiej wtopy, jak tutaj.
Pozdro
|
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Sun Jan 15, 2012 9:49 am Post subject: |
|
|
Code: | grep -i security /boot/config-$(uname -r) | grep -v '#'
grep: /boot/config-3.0.6-gentoo: Nie ma takiego pliku ani katalogu |
co to powinno pokazać?
w katalogu boot nie mam takiego pliku ani katalogu, używam lilo |
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 554
|
Posted: Mon Jan 16, 2012 1:31 pm Post subject: |
|
|
A gdzie w ogóle masz ten konfig kernela?
Sprawdź w konfigu kernela tak:
Code: | egrep -i 'grkern|security|pax' /gdzie/jest/konfig/kernela/config-$(uname -r) |
Gdzie ścieżkę /gdzie jest/konfig/kernela musisz wypełnić osobiście.
Last edited by Jacekalex on Mon Jan 16, 2012 6:15 pm; edited 1 time in total |
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Mon Jan 16, 2012 1:59 pm Post subject: |
|
|
Czy o to chodziło?
Code: | egrep -i 'grkern|security|pax' /usr/src/linux/.config
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4_FS_SECURITY is not set
# CONFIG_JFS_SECURITY is not set
# Security options
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_SECURITY=y
# CONFIG_SECURITYFS is not set
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_PATH is not set
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
CONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_DEFAULT_SECURITY="selinux" |
|
|
Back to top |
|
|
Jacekalex Guru
Joined: 17 Sep 2009 Posts: 554
|
Posted: Mon Jan 16, 2012 6:18 pm Post subject: |
|
|
Jeśli to konfig używanego aktualnie kernela, to tak.
Masz włączonego SELINUXA - on też może blokować wykonanie skryptu.
Tu masz instrukcję do Selinuxa:
http://www.gentoo.org/proj/pl/hardened/selinux/selinux-handbook.xml
Chociaż:
Code: | CONFIG_SECURITY_SELINUX_DISABLE=y |
To powinno wyłaczyć Selinuuxa.
Generalnie w dmesg i /var/log/messages powinno pisać, dlaczego skrypty się nie wykonują.
To by było na tyle
|
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Mon Jan 16, 2012 6:35 pm Post subject: |
|
|
chyba
"CONFIG_SECURITY_SELINUX_DISABLE=n"
Tak w ogóle to czy potrzebuję selinuxa, czy mogę to w wyłączyć? Poczytam |
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Tue Jan 17, 2012 8:33 am Post subject: |
|
|
przekompilowanie jądra bez selinuxa też nic nie dało
dmesg i messages też nic nie mówią
Dodatkowe infoermacje:
Jeżeli rozpakuję (w tym przypadku Briscad) w katalogu root i odpalę briscad.sh to program się uruchamia
Jeżeli rozpakuję (w tym przypadku Briscad) w innym katalogu i odpalę briscad.sh, nawet jako root, to program się nie uruchamia
pomocy |
|
Back to top |
|
|
qwaszs n00b
Joined: 21 May 2008 Posts: 40
|
Posted: Sun Jan 22, 2012 3:58 pm Post subject: |
|
|
Witam ponownie
Przeinstalowałem system, pierwsze co zrobiłem to próba uruchomienia *.sh - brak dostępu :(
To nie może być mój błąd. Nie wiem co robić.
mój make.conf może coś we flagach?
Code: | # Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -march=i686 -pipe -s"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j3"
LANGUAGE="48"
LINGUAS="pl en"
VIDEO_CARDS="nvidia fbdev vesa intel"
ALSA_CARDS="hda"
ACCEPT_LICENSE="skype-eula"
GENTOO_MIRRORS="http://gentoo.po.opole.pl ftp://gentoo.po.opole.pl rsync://ftp.vectranet.pl/gentoo/ http://ftp.vectranet.pl/gentoo/ ftp://ftp.vectranet.pl/gentoo/ http://gentoo.mirror.pw.edu.pl/"
SYNC="rsync://rsync7.pl.gentoo.org/gentoo-portage"
USE="32bit X a52 aac aacplus aalib acpi alac alsa amr animgif ao apng ass
audacious audio audiofile automount autotrace avcodec avconv avformat bl
bluetooth cairo cdda cddb cdemud cdio cdparanoia cdr cdrdao cdrom cdsound
colordiff consolekit corefonts css dar32 dbase dbus device-mapper dga
djvu dvd dvdarchive dvdchapjump dvdnav dvdr dvi dvipdfm edd edit excel
exif extras faac faad fbcon fbcondecor fbosd ffmpeg firefox firefox3 flac
flake fontconfig fonts foomaticdb fpx fusion gd gdu gif gimp
graphicsmagick gtk gtk2-perl gtk3 gtkhotkey gui gzip hpcups hpijs hwdb
ieee1394 imagemagick imlib iptv java java6 javascript jbig jpeg jpeg2k
libass libburn libcaca libcanberra libextractor libmpeg2 libtool libusb
libv4l libv4l2 lightning lilo linguas_pl_PL live lm_sensors logrotate mad
mclib menuorg metric mime mms mmx mmxext mng mozilla mp3 mp4 mpeg mpg123
mplayer msdoc new-login ntfs ntfsprogs nvidia obex odbc odf odk ods ogg
ogg123 ole opengl osdmenu output_udp parport pcf pci pdf pdf-writer
pdfannotextractor pdfimport perl pixmaps playlist plot plotutils pmu png
pnm policykit ppds pvr python python2 python3 qt-faststart qt3support qt4
quicktime rar real rtc rtmp scanner schroedinger shm skins slit smp sound
sox spell sqlite sqlite3 ssh subtitles suid svg svga swscale t1lib tga
thunar thunderbird tiff toolbar transcode truetype udev udisks ui unzip
usb utils v4l vcd vcdx vdr vidix vim wav waveout wavpack webdav webm
win32 win32codecs wma wmf xcb xcf xface xfconf xfs xft xine xinerama
xklavier xml xorgmodule xosd xpm xprint xps xscreensaver xslt xulrunner
xv xvfb xvid xvmc yaepg zip -em84xx -filters" |
|
|
Back to top |
|
|
|