Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witajcie!
Chcę zrobić taki niby-skrypt, który montowałby archiwa (Zip, Tar - ile się da), problemem jest pewien konflikt
FUSE domyślnie ma ustawione, że tylko Root może montować, w zasadzie rozwiązanie jest proste, trzeba do /etc/fuse.conf dopisać odpowiednie 2 linijki, by mogli go użytkownicy używać. Problem jest taki, że fuse.conf jest tylko do odczytu roota (ktoś zrąbał?) i nie działa montowanie archiwów z poziomu użytkownika.
1) Prawdopodobnie najłatwiej jest użyć sudo, jednak jaki warunek dodać, by bez hasła (NOPASSWD) uruchamiać TYLKO jedną aplikację?
2) Jak zrobić warunek, że jeśli katalog X (np. /home) jest pusty, to zrobił jakieś opcje, a jeśli coś w nim jest, to co innego?
3) Jak zrobić umount takich rzeczy? Niby umount to robi, ale Drag-Drop (umount $PWD/$1?)
Fervi
Offline
Już ktoś napisał:
http://gpo.zugaina.org/sys-fs/fuse-zip
RTFM:
man fusermount
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-12-24 19:48:35)
Offline
@Jacekalex
Pewnie, tylko nie każdy jest nerdem, by pisać skrypty w konsoli, a prościej jest wyklikać to wszystko
Fervi
Offline
To bierz np basha, zenity i wio.
Albo zwykły skrypcik typu przełącznik, w typie zamontowane? => odmontować, niezamontowane? =>montować.
funkcja if then else, kilka komend i gotowe, potem podpiać pod otwieranie danego typu archiwum.
Możesz też użyć case do wyboru typów archiwum, modułów fuse Ci nie zabraknie.
http://gpo.zugaina.org/Search?search=fuse
Poza tym radziłbym zmienić okulistę, bo zarówno gnomowy fille-roller jak i ark z KDE (i pewnie kilka innych też) dają przeźroczysty dostęp do archiwum, bez wypakowywania.
Pewnie dlatego nikt nie zajmował się pisaniem programu, który będzie montować przez fuse.
Po prostu z sandała się w otwarte drzwi nie kopie, bo można skarpetkę podrzeć... :D
Ostatnio edytowany przez Jacekalex (2012-12-24 20:36:44)
Offline
Poza tym radziłbym zmienić okulistę, bo zarówno gnomowy fille-roller jak i ark z KDE (i pewnie kilka innych też) dają przeźroczysty dostęp do archiwum, bez wypakowywania.
Pewnie, ale jak chcesz obejrzeć film, który ma 24GB, to chwilę potrwa jego wypakowanie :D Poza tym projekt ma lekko odciążyć Squeeze i Xarchiver
Tyle wymodziłem (w zasadzie wczoraj), ale muszę poprawki nanieść
#!/bin/sh mkdir /tmp/am-$USER mkdir /tmp/am-$USER/$$ archivemounter -o allow_other $1 /tmp/am-$USER/$$ notify-send -i "file-roller" "Montowanie zakończone sukcesem" "Udało nam się zamontować twoje archiwum w /tmp/am-$USER/$$"
Fervi
PS. No i wszystko się komplikuje, bo użytkownik nie może zamontować katalogu FUSE, bo nie ma dostępu do plików konfiguracyjnych, by sprawdzić czy ma takie uprawnienia. Istna paranoja :D
Ostatnio edytowany przez fervi (2012-12-24 20:47:44)
Offline
A przypadkiem w takich dziwnych systemach jak np Gentoo jest taki folderek ~/.gvfs do montowania rożnych dziwów, Nautilus takie dziwy z .gvfs łyka jak bociek żabę.
W *buntu też coś takiego było.
O ile mi wiadomo Thunar też łyka .gvfs, w KDE nie sprawdzałem.
PS. No i wszystko się komplikuje, bo użytkownik nie może zamontować katalogu FUSE, bo nie ma dostępu do plików konfiguracyjnych, by sprawdzić czy ma takie uprawnienia. Istna paranoja :D
SOA#1
ls -l /etc/fuse.conf -rw-r--r-- 1 root root 213 2012-03-15 /etc/fuse.conf
cat /etc/fuse.conf # Set the maximum number of FUSE mounts allowed to non-root users. # The default is 1000. # mount_max = 100 # Allow non-root users to specify the 'allow_other' or 'allow_root' # mount options. # user_allow_other
Lepiej rób od razu przełącznik:
#!/bin/bash function dugmount { sshfs pacjent@shell.dug.net.pl:/home/pacjent /media/dug -o allow_other echo "dug zamontowany w /media/dug ;)"; notify-send -t 2000 "dug zamontowany w /media/dug ;)"; }; function dugexit { fusermount -u /media/dug || $(sudo killall sshfs && sudo umount /media/dug) echo "dug odmontowany ;)"; notify-send -t 2000 "dug odmontowany ;)"; }; grep 'shell.dug.net.pl' /proc/mounts &>>/dev/null && dugexit || dugmount; exit 0;
Wygodniejsze to i skuteczniejsze.
Funkcje sobie wyrzeźbisz. :D
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-12-24 21:13:20)
Offline
1) Nie wskazuje na to, że ZU nie może otworzyć pliku? (Albo dobra, już wiem)
3) Co ma SSH do ZIP'ów? :D [Chyba, że to jakiś example]
Fervi
Ostatnio edytowany przez fervi (2012-12-24 21:55:24)
Offline
Przyklad działającego skryptu, jak neurochirurg znajdzie między twoimi uszami choć jedną działającą szarą komórkę, to zrozumiesz, ze wystarczy zamienić komendy do montowania po ssh na komendy montowania/odmontowania zipa, rara, tara, google-drive, dropboxa czy czego tam zechcesz.
Chodzi o mechanizm przełącznika w typie 1klik - klik i zrobione, bez żadnej dodatkowej czy specjalnej akcji użytkownika.
Trzeba tylko zmienić 3 funkcje, montowanie, odmontowanie i sprawdzenie warunku.
#!/bin/bash function tctajne { exec $(sudo truecrypt -f --keyfiles=/gdie/jest/klucz --mount /dev/sdaX /media/tajne); }; function tcexit { cd ~; exec $(sudo truecrypt -d) ; }; grep truecrypt /proc/mounts | grep /media/tajne &>/dev/null && tcexit ||tctajne & exit 0;
Albo zobacz, co ma Truecrypt do zipa :D
Chyba, że do kliknięcia prawym kneflem mychy na plik trzeba wg Ciebie Super-Hakera. :rootfl:
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-12-24 22:20:56)
Offline
No dobra, ale to oznacza tyle, że program pozwala zamontować tylko 1 archiwum, więc ma ograniczenia.
Ja myślę o czymś takim, że w folderze montowania będzie skrypt, a ty chcąc odmontować archiwum zrobisz drag&drop na ten skrypt i on odmontuje go
Fervi
Offline