[Megoldva] Alkalmazás futtatása nem / -ről

 ( Turion | 2013. augusztus 6., kedd - 8:10 )

Szervusztok!

A következő probléma áll fent nálam:

Adott 3 merevlemez:
/ - Samsung 160GB IDE
/media/Userfiles - Samsung 200GB SATA
/media/Bittorrent - WD 500GB SATA2

A két /media-ba felcsatolt merevlemez ext4 fájlrendszerű, az Userfiles-on vannak a zenék, képek stb, amiket belinkelek magamnak a /home -ba, így rendszerfüggetlenül vannak eltárolva. Ez tök kényelmes, hiszen single-user rendszerem van, csak én használom. A Bittorrent meg magáért beszél.

A probléma az, hogy ha van egy alkalmazásom (linuxos), akkor azt nem tudom egyik merevlemezről sem futtatni, csak ha áthelyezem a /-re. Ez elég kényelmetlen.

Nézelődtem a Yast lemezpartícionálójában és néztem, hogy az fstab opcióknál be volt ikszelve az Access Control Lists - azt hittem ettől volt, de kikapcsoltam őket és még mindig "Permission Denied", ha ezeken akarok futtatni valamit. A kikapcsolás után volt reboot.

Még ha valami biztonsági funkció is ez, aligha van rá szükségem, hiszen csak én használom a gépet - szeretném kikapcsolni.

Vannak tippek?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

milyen alkalmazas ez? mit jelent, hogy nem müködik?

Tök mindegy, hogy mi: ha bármilyen futtatható programot akarok ezeken a lemezeken futtatni, terminálból a "Permission Denied" választ kapom. Ha dolphinból futtatom, szegény KDE nem tud mit kezdeni vele és telepíteni akar hozzá valami alkalmazást (=mintha ismeretlen fájltípus lenne)
Rendes, linuxos, futtatható ELF fájlokra gondolok, de shell scriptek (*.sh) sem futnak.
A probléma nem áll fent, ha a / -ről futtatom. Olyan programokra kell gondolni, amiknek az összes fájlja egy könyvtárban van. (pl a mozilla.com -ról letölthető firefox is ilyen lenne, de nem arról van szó)

http://sadpanda.us/images/1777586-AZW34UH.png

Szerk:
Természetesen a +x jelző rajta van az adott fájlokon.


openSUSE 12.3 64-bit w/ KDE

Két tipp, máshol már "elsütöttem", de most sincs jobb:
1. mount parancs (paraméter nélkül) kimenetét megnézni, nincs-e "noexec" a fájlrendszered opciói között.
2. SELinux vagy egyéb hasonló eszköz nem korlátoz-e ilyesmiben. (tegnap tanultam meg, hogy bizonyos esetekben még a home könyvtáradban sem tudsz futtatni semmit, ha a SELinux enforce módban van - és úgy emlékszem, a SuSE alapból felrakja, csak nem tudom, milyen üzemmóddal)

upd: addig javítgattam, hogy megelőztek :)

Lehet hogy hülyeséget kérdezek, de nem noexec kapcsolóval van mountolva?

fstab exec opció?

Én is ezt mondanám, próbáltad már exec option-nal mountolni az adott merevlemezt fstabbal és megnézni hogy akkor engedi-e a futtatást?

zsigmond@opensuse:~> cat /etc/fstab
/dev/disk/by-id/ata-SAMSUNG_SP1654N_S0GEJ1DP203305-part1 /                    ext4       acl,user_xattr        1 1
/dev/disk/by-id/ata-SAMSUNG_SP1654N_S0GEJ1DP203305-part2 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-WDC_WD5000AAKS-00A7B0_WD-WMASY6218466-part1 /media/Bittorrent    ext4       user,noacl            1 2
/dev/disk/by-id/ata-SAMSUNG_HD200HJ_S16KJ90Q701253-part1 /media/Userdata      ext4       user,noacl            1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0


Ez mond valamit?

Szerk:
Rootként lecsatoltam az egyik lemezt és vissza, direkt --verbose -al, de meg se szólalt. Csak szép csendben felcsatolta.
mount -v /dev/sdb1 /media/Userdata


openSUSE 12.3 64-bit w/ KDE

Magához a könyvtárhoz úgy egyébként van jogod hozzáférni, csak a futtatás nem megy?
(a géped előtt ülve egyszerűbb lenne - ezek a jogosultsági problémák elég sok forrásból jöhetnek ;) )

Mivel most épp a SELinux a mániám és tudtommal a SuSE alapból hozza, nézd már meg root-ként, hogy a getenforce mit mond?
(ha nem talál ilyen parancsot, akkor nincs SELinux. Ha 1-et, akkor lehet, hogy az csinálja, ha 0-t, még akkor is van minimális esély rá, hogy a /var/log/audit alatt találsz valami hasznosítható infót)

Van jogosultságom hozzáférni természetesen. :) Oda tölt a Ktorrent, ami ebben a szent pillanatban is fut. Meg a másikon van az összes userfájlom.
A getenforce parancs nem található.

A jogosultság pl a Bittorrent merevlemezem gyökerében 777-re van állítva. (mindenki írhat és olvashat rajta)

Szerk.: A /var/log/audit üres.


openSUSE 12.3 64-bit w/ KDE

Sajnos most nem fér az időmbe, hogy felhúzzak egy SuSE-t (tegnap elkezdtem, de felfüggesztettem a host működését, ettől kiakadt a virtualboxban futó telepítő, mert megszakadt az internetes kapcsolata)
Délután megpróbálok összerakni egyet, ha addig nem boldogulsz és megnézem, milyen egy default suse belülről, hátha lesz több ötletem.

uff: jut eszembe... Mikor állítottad 0777-re a jogosultságot? Mount előtt vagy után? (777, nem 0777? - nem mindegy, amennyire tudom!)
Nézd meg egyesével az összes könyvtárakat, beleértve a mountpointot is (ls -ld könyvtárnév), amik a végrehajtandó programod fölött vannak, hogy valóban megvan-e rajta minden szükséges jogod!

Nem látom benne hogy exec opciót megkapná.

/dev/disk/by-id/ata-SAMSUNG_HD200HJ_S16KJ90Q701253-part1 /media/Userdata      ext4       user,noacl,exec    1 2

így próbáld ki

===============================================================================
// Hocus Pocus, grab the focus
winSetFocus(...)

http://c2.com/cgi/wiki?FunnyThingsSeenInSourceCodeAndDocumentation

Az exec ismereteim szerint default, csak akkor kell megadni, ha az fstab-ban megadottól akarsz eltérni vele.
De javíts ki, ha tévedek!

Nem dafault, csak a "defaults" opció része.

Idézet:
defaults
Use default options: rw, suid, dev, exec, auto, nouser, and async.

===============================================================================
// Hocus Pocus, grab the focus
winSetFocus(...)

http://c2.com/cgi/wiki?FunnyThingsSeenInSourceCodeAndDocumentation

Magyarán, ha opció nélkül mountolsz és az fstab nem rendelkezik másképp, akkor érvényes az exec, tehát ez a default, nem a noexec.
Más kérdés, hogy sikerült megint átlépnem pár sort a man-ban:

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).

Szóval a user opció miatt nem működött az exec, ahogy eredetileg csak feltételeztem, de végül nem találtam rá a doksiban valamiért. (tényleg időszerű lenne elmenni a szemészhez :( )

Ez megoldotta!
Csak a Yast partíciókezelőben ragasztottam rá a címkét, mint "Arbitary value", vagy valami olyasmi.

Ez egyúttal a kérdést is megválaszolja:
openSUSE alatt nem futtathatsz fájlokat másik merevlemezről, ha csak nincs exec címke rajta. :)

Köszönöm szépen a válaszokat mindenkinek!


openSUSE 12.3 64-bit w/ KDE

Na ebből megint tanultam valami újat.
Bár én a "user" opcióra gyanakodtam, hogy az helyből tiltja az exec-t, de nem találtam rá utalást a man mountban...

Semelyik más linuxon sem sikerülne nélküle.

===============================================================================
// Hocus Pocus, grab the focus
winSetFocus(...)

http://c2.com/cgi/wiki?FunnyThingsSeenInSourceCodeAndDocumentation

De csak azért, mert ott a "user" opció.
Anélkül viszont csak a root tudná mountolni.

Tehát a megoldás az exec és user együttes használata. :)


openSUSE 12.3 64-bit w/ KDE

Igen. Csak nálam a user - bár a múltból még halványan derengett valami - kellőképp kiesett, a man olvasása közben meg egyszerűen átsiklottam pont azon a két soron, amit kerestem. :(