Forum Linux.pl
Programowanie => Inne => Wątek zaczęty przez: daave w 2005-08-12, 08:05:29
-
witam
czytajac watki o pen drivach itp rzeczach nie pomoglo mi nic w rozwiazaniu mojego problemu
jestem jak narazie szczesliwym uzytkownikiem Mandrivy LE 2005 (badz jak kto woli Mandrake 10.2) z jajkiem 2.6.11-6mdk
montowanie mojego mp3-playera pod usb przechodzi bez problemu system wykrywa mi go automatycznie
wszystko jest cacy jezeli chodzi o delete i read z niego
gorzej z wrzuceniem czegokolwiek - nie mozna pisac do /mnt/removable
kombinowalem juz z chown, chmod, umask
nawet edycja fstab nic nie daje bo dajac zapisz (oczywiscie jako root) niby zapisuje ale po podlaczeniu ponownym tworzy sobie nowy wpis usuwajac stary
a wyglada on tak:
# This file is edited by fstab-sync - see \\'man fstab-sync\\' for details
/dev/sda1 / ext3 defaults 1 1
/dev/sda6 /home ext3 defaults 1 2
/dev/hdc /mnt/cdrom iso9660 user,iocharset=iso8859-2,noauto,ro,exec 0 0
none /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0022,iocharset=iso8859-2,sync,codepage=852 0 0
none /proc proc defaults 0 0
/dev/sda5 swap swap defaults 0 0
/dev/sdb /mnt/removable vfat pamconsole,exec,noauto,noatime,sync,codepage=852,iocharset=iso8859-2,managed 0 0
prosze o pomoc z zaznaczeniem jak dla newbie+ :))
-
a umount\\'ujesz PRZED wyjaciem urzadzenia USB ? masz tam na nim jakas diode ? jak miga, to poczekaj az skonczy... chodzi o to, ze jak cos wrzucasz, to niekoniecznie musi to byc od razu fizycznie zapisywane...
-
2005-08-12 09:13:38 chmooreck napisał:
> a umount\\'ujesz PRZED wyjaciem urzadzenia USB ? masz tam na nim jakas diode ? jak miga, to
> poczekaj az skonczy... chodzi o to, ze jak cos wrzucasz, to niekoniecznie musi to byc od razu
> fizycznie zapisywane...
diody brak
nie umount-uje przed wyjeciem bo nie moge nic wogole wrzucic
pisze \\"nie mozna pisac do /mnt/removable/\\" i po zabawie
-
2005-08-12 17:53:38 daave napisał:
> diody brak
> nie umount-uje przed wyjeciem bo nie moge nic wogole wrzucic
> pisze \\"nie mozna pisac do /mnt/removable/\\" i po zabawie
Sprobuj cos takiego w fstab:
/dev/sdb /mnt/removable auto user,noauto,iocharset=iso8859-2,codepage=852,umask=0,exec 0 0
Dopasuj do swojej konfiguracji (/dev i /mnt).
--
Maciek
-
2005-08-12 22:34:44 Maciek_Rutecki napisał:
> 2005-08-12 17:53:38 daave napisał:
>
>
> > diody brak
> > nie umount-uje przed wyjeciem bo nie moge nic wogole wrzucic
> > pisze \\"nie mozna pisac do /mnt/removable/\\" i po zabawie
>
> Sprobuj cos takiego w fstab:
>
> /dev/sdb /mnt/removable auto user,noauto,iocharset=iso8859-2,codepage=852,umask=0,exec
> 0 0
>
> Dopasuj do swojej konfiguracji (/dev i /mnt).
>
> --
> Maciek
jak piszalem wyzej zapis formuly w fstab nie daje nic bo jak zapisze (jako root) i przeloguje na usera to fstab automatycznie po podpieciu playera zmienia sobie wpis
-
Automatycznie zmienia sobie wpis i mozesz zamountowac??
A to ciekawe, bo wedlug mnie powinno byc: /dev/sdb1 a nie /dev/sdb, bo to caly dysk a nie patrycja na tym dysku. Nie mozna zamountowac calego dysku, a tylko patrycje.... Pierwsze auto, mozesz tez zamienic na vfat, bo wszystkie tego rodzaju peny i pamieci maja zapewne fat16 (porazka)...
-
2005-08-16 08:20:20 de_laurent napisał:
> Automatycznie zmienia sobie wpis i mozesz zamountowac??
> A to ciekawe, bo wedlug mnie powinno byc: /dev/sdb1 a nie /dev/sdb, bo to caly dysk a nie
> patrycja na tym dysku.
Niekoniecznie, mam pendrive\\'a ktory widnieje jako sda nie sda1 i to jest prawidlowo. mkdosfs potrafi tak formatowac (bodajze opcja -i).
--
Maciek
-
2005-08-16 13:01:19 Maciek_Rutecki napisał:
> 2005-08-16 08:20:20 de_laurent napisał:
>
> > Automatycznie zmienia sobie wpis i mozesz zamountowac??
> > A to ciekawe, bo wedlug mnie powinno byc: /dev/sdb1 a nie /dev/sdb, bo to caly dysk a
> nie
> > patrycja na tym dysku.
>
> Niekoniecznie, mam pendrive\\'a ktory widnieje jako sda nie sda1 i to jest prawidlowo. mkdosfs
> potrafi tak formatowac (bodajze opcja -i).
>
> --
> Maciek
>
Kazdy dzien przynosi cos nowego :) Dzieki.
-
2005-08-16 08:20:20 de_laurent napisał:
> Automatycznie zmienia sobie wpis i mozesz zamountowac??
> A to ciekawe, bo wedlug mnie powinno byc: /dev/sdb1 a nie /dev/sdb, bo to caly dysk a nie
> patrycja na tym dysku. Nie mozna zamountowac calego dysku, a tylko patrycje.... Pierwsze auto,
> mozesz tez zamienic na vfat, bo wszystkie tego rodzaju peny i pamieci maja zapewne fat16
> (porazka)...
>
automatycznie zmienia sobie wpis a jest taki jaki podalem
mountuje sie automatyznie nie mountuje go recznie wiec...
-
2005-08-17 12:40:04 daave napisał:
> 2005-08-16 08:20:20 de_laurent napisał:
>
> > Automatycznie zmienia sobie wpis i mozesz zamountowac??
> > A to ciekawe, bo wedlug mnie powinno byc: /dev/sdb1 a nie /dev/sdb, bo to caly dysk a
> nie
> > patrycja na tym dysku. Nie mozna zamountowac calego dysku, a tylko patrycje.... Pierwsze
> auto,
> > mozesz tez zamienic na vfat, bo wszystkie tego rodzaju peny i pamieci maja zapewne fat16
> > (porazka)...
> >
>
>
> automatycznie zmienia sobie wpis a jest taki jaki podalem
> mountuje sie automatyznie nie mountuje go recznie wiec..
panowie przy logoaniu najko root i przy cp mam cos takiego
[root@pc-180 Desktop]# cp duzepe-tetris_final.mp3 /mnt/removable/hh/
cp: nie można utworzyć zwykłego pliku `/mnt/removable/hh/duzepe-tetris_final.mp3\\': Read-only file system
przy ls -ln
[root@pc-180 dave]# ls -la /mnt/removable
razem 140
drwxr--r-- 7 dave dom 16384 sty 1 1970 ./
drwxr-xr-x 6 root root 4096 sie 21 23:47 ../
drwxr--r-- 2 dave dom 8192 cze 23 01:13 Coma \\'\\'Pierwsze Wyjście z Mroku\\'\\'/
-rwxr--r-- 1 dave dom 36352 maj 15 17:45 cv.doc*
-rwxr--r-- 1 dave dom 36352 maj 15 17:45 CV(z_cb).DOC*
drwxr--r-- 2 dave dom 8192 sie 8 20:12 hh/
drwxr--r-- 2 dave dom 8192 kwi 20 08:53 Rock/
drwxr--r-- 11 dave dom 8192 kwi 19 21:32 swsz/
drwxr--r-- 2 dave dom 8192 kwi 20 08:25 Techno/
jak ktos ma jeszcze jakies pomysli pomozcie
-
moja wypowiedz odwoła się do wątków poruszanych przez kilku autorów :
mam kernela 2.6.12.5 , usb obsługuje mi hotplug którego świeżo co skonfigurowałem , dystrybucja slackware 10.1 oczywiście ]:->
wspomniano o tym , że urzadzenia usb są widoczne jako np: /dev/sda1
ja mam natomiast inaczej , dla ścisłości :
/dev/sda - kontroler sata
zawartośc aparatu fotograficznego montuje przy uzyciu modułu usb-storage oraz urzadzenia /dev/sdb !!! SDB
na starszym kernelu 2.6.8.X miałem to samo
na kernelu serii2.6.9 miałem bład podsystemu usb i nie powiem , nie rozpoznawało mi patrycji na aparacie
z takimi samymi ustawieniami montowałem pendrive
tu kawałek fstab :
/dev/sdb /mnt/usb vfat noauto,user,rw 1 1
none /proc/bus/usb usbfs auto 0 0
druga linijka umozliwia poprawne działanie sterownika , mozna sie z poziomu skryptów odwoływać do informacji zawartych w /proc/bus/usb co bywa wygodne
to ze po podpięciu urzadzenia typu usb-storage zmienia sie fstab to zasługa hotpluga , trzeba go przekonfigurować , ja mam ustawione \\"statycznie\\"
podejzewam ze problem z tym ze nie mozesz kasować plików z mp3playera polega na tym ze dysk jest montowany jako root co u mnie np. powodowało ustawienie uprawnien dla punktu montowania jako 755 root.root co kładzie sprawe z punktu widzienia zwykłego usera
obszedłem to wykorzystując samego hotpluga , w moim systemie zrobiłem sobie pliczek /etc/hotplug/usb/usb.storage któremu nadałem prawa wykoywania tylko dla roota , hotplug go odpala jak sie pokaze urzadzenie usb wykorzystujące usb-storage
skrypt najpierw wyławia kto jest obecnie zalogowany ustawiając $użyszkodnik i dalej wykonuje :
su $użyszkodnik -c \\"mount /dev/sdb\\"
oczywiście mam wpis w fstab wiec nie musze walić reszty parametrów
taki mysk jest konieczny ponieważ skrypt /etc/hotplug/usb/usb-storage jest odpalany z roota a nam zalezy na zamontowaniu jako konkretny użyszkodnik
mozesz sobie w tym momencie odpalić proces w tle który bedzie sprawdfzał czy /dev/sdb istnieje . jezeli sie straci to oznacza to wyciągnięcie wtyczki z gniazdka usb -\\"odłaczenie na twardo\\" , w tym momencie dobrze jest odmontować urzadzenie
dobrze tez dodac do skryptów jakieś poleconko co poinformuje nas co sie dzieje , jak przebiegło montowanie / odmontowanie
mozna wykorzystać program play
-
sprawe z uzytkownikami zalatwila by ci opcja umask=000 w fstab\\'ie - mniej mieszania ;-)
-
2005-08-22 01:17:20 bojleros napisał:
> moja wypowiedz odwoła się do wątków poruszanych przez kilku autorów :
>
> mam kernela 2.6.12.5 , usb obsługuje mi hotplug którego świeżo co skonfigurowałem , dystrybucja
> slackware 10.1 oczywiście ]:->
>
> wspomniano o tym , że urzadzenia usb są widoczne jako np: /dev/sda1
> ja mam natomiast inaczej , dla ścisłości :
> /dev/sda - kontroler sata
> zawartośc aparatu fotograficznego montuje przy uzyciu modułu usb-storage oraz urzadzenia
> /dev/sdb !!! SDB
> na starszym kernelu 2.6.8.X miałem to samo
> na kernelu serii2.6.9 miałem bład podsystemu usb i nie powiem , nie rozpoznawało mi patrycji na
> aparacie
> z takimi samymi ustawieniami montowałem pendrive
>
> tu kawałek fstab :
>
> /dev/sdb /mnt/usb vfat noauto,user,rw 1 1
> none /proc/bus/usb usbfs auto 0 0
>
> druga linijka umozliwia poprawne działanie sterownika , mozna sie z poziomu skryptów odwoływać
> do informacji zawartych w /proc/bus/usb co bywa wygodne
>
> to ze po podpięciu urzadzenia typu usb-storage zmienia sie fstab to zasługa hotpluga , trzeba
> go przekonfigurować , ja mam ustawione \\"statycznie\\"
>
> podejzewam ze problem z tym ze nie mozesz kasować plików z mp3playera polega na tym ze dysk
> jest montowany jako root co u mnie np. powodowało ustawienie uprawnien dla punktu montowania
> jako 755 root.root co kładzie sprawe z punktu widzienia zwykłego usera
>
> obszedłem to wykorzystując samego hotpluga , w moim systemie zrobiłem sobie pliczek
> /etc/hotplug/usb/usb.storage któremu nadałem prawa wykoywania tylko dla roota , hotplug go
> odpala jak sie pokaze urzadzenie usb wykorzystujące usb-storage
>
> skrypt najpierw wyławia kto jest obecnie zalogowany ustawiając $użyszkodnik i dalej wykonuje
> :
>
> su $użyszkodnik -c \\"mount /dev/sdb\\"
> oczywiście mam wpis w fstab wiec nie musze walić reszty parametrów
>
> taki mysk jest konieczny ponieważ skrypt /etc/hotplug/usb/usb-storage jest odpalany z roota a
> nam zalezy na zamontowaniu jako konkretny użyszkodnik
>
> mozesz sobie w tym momencie odpalić proces w tle który bedzie sprawdfzał czy /dev/sdb istnieje
> . jezeli sie straci to oznacza to wyciągnięcie wtyczki z gniazdka usb -\\"odłaczenie na
> twardo\\" , w tym momencie dobrze jest odmontować urzadzenie
>
> dobrze tez dodac do skryptów jakieś poleconko co poinformuje nas co sie dzieje , jak przebiegło
> montowanie / odmontowanie
>
> mozna wykorzystać program play
>
>
>
>
>
mozesz podac konkretny skrypt jak ma to wygladac
u mnie wyglada to tak ze czytac moge deletu nie ani jako root ani uzytkownik
nie mam juz sily z tym a pilnie potrzebuje to zrobic bo chce oddac playera do naprawy
-
2005-08-23 16:20:38 daave napisał:
> mozesz podac konkretny skrypt jak ma to wygladac
>
> u mnie wyglada to tak ze czytac moge deletu nie ani jako root ani uzytkownik
>
> nie mam juz sily z tym a pilnie potrzebuje to zrobic bo chce oddac playera do naprawy
Podziele sie skryptem usb-storage który montuje urzadzenie. Skrypty które odmontowywują mozesz zmajstrować samemu w ramach treningu , poszukaj sobie kursu bash\\'a.
plik : /etc/hotplug/usb/usb-storage -- dostosuj do tego co masz u siebie !!
----tu sie zaczyna---
#!/bin/bash
war=0
a=0
#ustaw zeby było zgodne z tym co masz
dev=/dev/sdb
usern=`who |awk \\'{print $1}\\'`
while [ $war = 0 ] ;
do
# to montuje jako zalogowany uzytkownik // wymaga dopracowania lecz jezeli w danej chwili jesteś zalogowany tylko ty to zadziała
su $usern -c \\"mount $dev >/dev/null\\"
mnt=$?
echo $mnt |grep mounted >/dev/null
mounted=$?
if [ $mounted = 1 ] ; then
#/bin/usbumount odmontowywuje , ma suid , !uwaga na uprawnienia!
/bin/usbumount >/dev/null
sleep 0.1s
su $usern -c \\"mount $dev >/dev/null\\"
mnt=$?
fi
if [ $mnt = 0 ] ; then
#daj znac dzwiekiem jezeli zamontowało prawidłowo
/usr/bin/play /opt/kde/share/sounds/pop.wav
#/bin/usboff sprawdza w pętli czy nie straciło się urzadzenie sdb , ma suid , !uwaga na uprawnienia!
/bin/usboff &
#war=1 wyjście z pętli
war=1
fi
#dzieki temu sie skrypt nie zapętli
if [ $a -ge 30 ] ; then
exit
fi
#krok z jakim sprawdzane jest urzadzenie
sleep 0.3s
let a=$a+1
done
--tu sie konczy--
Jeszcze chce zaznaczyć ze pętla jest konieczna ponieważ hotplug urzychamia skrypt w chwili wsadzenia wtyczki ale jeszcze mija kilka sekund zanim urzadzenie bedzie gotowe tomontowania , tak jest przynajmniej u mnie.
Zamierzam zmienić troche te skrypty , nie wiem czy też wszystkim są potrzebne suid\\'y. Jak zrobie finalną wersje to dam je do tego postu.
Pozdrawiam
-
dodalem ten wpis do usb-storage i nic to nie zmienilo
prosze o ewentualne dalsze porpozycje :)
-
2005-08-26 21:30:33 daave napisał:
> dodalem ten wpis do usb-storage i nic to nie zmienilo
>
> prosze o ewentualne dalsze porpozycje :)
>
Dodaj na początku coś zeby sprawdzić czy wogóle skrypt jest wykonywany , np : play cośtam
-
2005-08-26 21:50:03 bojleros napisał:
> 2005-08-26 21:30:33 daave napisał:
>
> > dodalem ten wpis do usb-storage i nic to nie zmienilo
> >
> > prosze o ewentualne dalsze porpozycje :)
> >
> Dodaj na początku coś zeby sprawdzić czy wogóle skrypt jest wykonywany , np : play cośtam
jest wykonywany bo mam do w lsmod
w moim skrypcie widnieje jeszcze cos takiego
#!/bin/bash
cd /etc/hotplug
. hotplug.functions
load_module () {
MODULE=$1
if ! $(grep -q \\"^$MODULE \\" /proc/modules); then
debug_mesg \\"loading ... $MODULE\\"
if $MODPROBE -n $MODULE >/dev/null 2>&1 &&
! $MODPROBE $MODULE >/dev/null 2>&1 ; then
mesg \\"... can\\'t load module $MODULE\\"
fi
else
debug_mesg \\"$MODULE allready loaded\\"
fi
}
debug_mesg \\"Load scsimon\\"
load_module scsimon
-
> debug_mesg \\"Load scsimon\\"
> load_module scsimon
stawiam na to, ze wlsnie ten scsimon wszystko psuje... oczywiscie tylko strzelam :-D
-
> Jeszcze chce zaznaczyć ze pętla jest konieczna ponieważ hotplug urzychamia skrypt w chwili
> wsadzenia wtyczki ale jeszcze mija kilka sekund zanim urzadzenie bedzie gotowe tomontowania ,
> tak jest przynajmniej u mnie.
z tego, co zauwazylem wynika, ze po prostu skrypty uzytkownika sa uruchamiane przed zaladowaniem modulu (na wypadek jakby trzeba bylo wgrac jakis firmware or sth.) ... swego czasu pozmienialem sobie skrypty hotpluga i wywolywal mi je po zaladowaniu modulu - wtedy urzadzenie jest juz gotowe do mountowania i nie trzeba na nic czekac...
swoja droga skrypcik zgywa mi zdjecia z aparatu.. tylko brakuje mi opcji wylaczania aparatu przez usb i automatycznego wypiecia wtyczki z portu usb ;-)
-
2005-08-30 10:57:09 chmooreck napisał:
>
> > debug_mesg \\"Load scsimon\\"
> > load_module scsimon
>
> stawiam na to, ze wlsnie ten scsimon wszystko psuje... oczywiscie tylko strzelam :-D
wyrzucilem go ze skryptu dalej nic
caly czas jest read-only file system - i ani root ani user nic nic nie moze zrobic odtwazac odtwarza a tak to kupa
a jak by sformatowac go pod linuchem zmienilo by to cos?
jezeli tak to jak to zrobic?
-
Ok moj problem jest nasepujacy: Chcialem sobie napisac prowizoryczny program w C ktory nasluchiwal by na porcie, a po polaczeniu "zwracal" powloke ,taki prosty bez zadnych forkow itp.
Napisalem , skompilowalem uruchomilem , polaczylem sie za pomoca telneta i koniec :D pojawia sie standardowo
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'
potem jak wpisz jakiekolwiek polecenie dostaje tylko
: command not found
probowalem z roznymi wersjami programu, ale to nic nie daje :[ Pewnie trzeba zmienic cos w plikach konfiguracyjnych basha ewentualnie sh ale nie wiem co :] Mam nadzieje ze ktos zna odpowiedz, os to slack 10 jajko 2.6.7 hmm a moze mam cos nie tak c pty i tty????? z gory dzieki
-
2005-08-11 22:49:22 polluted napisał:
> Ok moj problem jest nasepujacy: Chcialem sobie napisac prowizoryczny program w C ktory
> nasluchiwal by na porcie, a po polaczeniu "zwracal" powloke
ke ? jak mozna zwrocic powloke ?
na jakim porcie nasluchujesz?
-
No dobra dobra "zwrocic" bylo w codzyslowiu :) nasluchuje na 2000 porcie czyli powyzej 1024 a majac na mysli slowo 'zwrocic' chodzilo mi o execl("/bin/sh","sh",NULL);
ps jakie slowa powinienem uzyc????? zamiast tego zlekojazacego sie "zwrocic" :)
-
2005-08-12 09:45:24 polluted napisał:
> No dobra dobra "zwrocic" bylo w codzyslowiu :) nasluchuje na 2000 porcie czyli powyzej
> 1024 a majac na mysli slowo 'zwrocic' chodzilo mi o
> execl("/bin/sh","sh",NULL);
>
> ps jakie slowa powinienem uzyc????? zamiast tego zlekojazacego sie "zwrocic" :)
A po co Ci zwracac powloke?! Jesli ktos wykona zdalnie jakies polecenie, to serwer powinien robic dup(), fork()/exec(). dup() po to by ustawic odpowiednio potoki tak aby mozna bylo zlapac to co ZWRACA wywolana komenda jak i poslac jej wejscie z klienta! Ja to tak kiedys rozwiazalem i bardzo dobrze dzialalo (mialo nawet wbudowane komendy - w serwer, ktore pozwalaly uzyskac kilka dodatkowych informacji o systemie).
-
Dzieki, a moglbys wyslac mi zrodlo twojego programu???? Latwiej mi by bylo zrozumiec moj mail to polluted@vp.pl , a co do mojego programu to mial zajmowac jak najmniej miejsca bo chcialem przerobic go pozniej na shellcode .