Zrób to sam – domowy składzik na pliki

Pomysł

Popularny ostatnio termin Dropbox omijał mnie szerokim łukiem i nie wzmógł jakichś ukrytych pragnień czy chęci. Czasy się jednak zmieniają, jak też lenistwo człowieka postępuje i chcąc skrócić sobie drogę z jednego pokoju do drugiego, postanowiłem że pliki które chcę wymieniać między komputerami, fajnie by było wciskać w jakieś oczywiste i łatwo dostępne miejsce. Ponieważ nie tylko ja korzystam z komputerów, jak też maszyn się czasem przewija kilka, rozwiązanie musiało powstać uniwersalne. Koncepcja która się snuła za mną przez dzień lub dwa była prosta. Jeden katalog na komputerze ‘matce’, dostęp do katalogu dla każdego użytkownika (lub wariant ‘dla każdego), możliwość tworzenia plików i katalogów, lecz brak możliwości ich usuwania (wariant drugi – pełen dostęp). Naiwność powyższego bije swą szczerością prosto w uśmiechnięte lica obeznanych z tematem geeków, ale jednak przedstawię moją drogę.

Potrzebne będą

– zainstalowana Samba (sztuk jeden),
– katalog /home,
– konsola, terminal, wedle uznania,
– sprawna klawiatura.

Po zalogowaniu się w konsoli jako root (dla Debiana jak su, dla Ubuntu sudo su), tworzymy w /home folder o nazwie np. ‘skladzik’ – mkdir /home/skladzik.

Nadajemy owemu katalogowi prawa – chmod 770 /home/skladzik (chmod 777 /home/skladzik dla pełnego dostępu – z kasowaniem zawartości włącznie).

Zmieniamy użytkownika i grupę dla katalogu ‘skladzik’ – chown nobody.shared /home/skladzik (jeżeli nie mamy w systemie grupy ‘shared’ – tworzymy ją – addgroup shared).

Ustawiamy dla katalogu ‘skladzik’ sticky bit, dającej możliwość usuwania plików i katalogów tylko właścicielowi katalogu lub administratorowi (dla wariantu dostępu pełnego dodamy pewną opcję, ale o tym niżej) – chmod +t /home/skladzik

Ustawiamy dla katalogu ‘skladzik’ bit SGID, dzięki czemu wszystko co zostanie w nim utworzone będzie miało grupę katalogu nadrzędnego (czyli grupę ‘shared’) – chmod g+s /home/skladzik

Uzupełniamy elementy

Mamy miejsce na składzik, teraz czas poinformować oprogramowanie, by z niego skorzystało. Do tego celu wykorzystamy Sambę. W pliku konfiguracyjnym /etc/samba/smb.conf, dodajemy na samym końcu sekcję:

[skladzik]
comment = Domowy Skład Na Pliki
path = /home/skladzik/
read only = no
valid users = @shared
browseable = yes
inherit owner = yes
directory mode = 3770
force directory mode = 3770

Co tu wymaga wyjaśnienia… Opcja ‘inherit owner’ załatwi nam dostęp do plików dla każdego użytkownika – po skopiowania plików, nada im właściciela z katalogu ‘skladzik’. ‘Directory mode’ i ‘force directory mode’ pozwolą na kopiowania katalogów z podkatalogami. ‘Valid users’ da dostęp do naszego składu tylko użytkownikom dopisanym do grupy ‘shared’.

Istotna informacja dla chcących stworzyć pełen dostęp – należy między tymi opcjami dodać następującą: guest ok = yes. W połączeniu z prawami 777 dla katalogu /home/skladzik, da to każdemu użytkownikowi pełen dostęp do zawartości – kopiowanie, kasowanie, zmienianie nazwy, itp. Użytkownik nie będzie też musiał posiadać konta w systemie (jak też przynależności do ‘shared’). Jest to rozwiązanie wygodne, ale tylko dla zamkniętych sieci (za różnymi zaporami i bez wstępu sieci zewnętrznej do naszych zasobów). Ja osobiście używam tego trybu, w odpowiedzi na kontrowersję jakie wzbudza dodawanie użytkowników do grupy ‘shared’, jak też pytania o ich hasło podczas logowania do zasobów – skoro ma być łatwo i przyjemnie, po cóż tyle ceregieli?

Podsumowanie

Pozostaje utworzony zasób albo automagicznie montować przy uruchomieniu komputera, bądź zrobić sobie jakąś miłą zakładkę, skrót na pulpit, itp. Wedle uznania i zapotrzebowania (Nautilus wygodnie w tym pomaga).

Zdaję sobie sprawę, że powyższe łamańce konsolowe to nieco frontowe rozwiązanie, lecz ma ono jedną podstawową zaletę – u mnie działa.