Dodatkowy wolumin Ext3 jako plik na Fat32
Wielu użytkowników Linuxa ma zinstalowane dwa systemy operacyjne na notebookach i komputerach stacjonarnych. Nie jestem tutaj wyjątkiem. Jak już mam naklejkę licencyjną to przecież jej nie zdrapię
Mojemu Linuxowemu LVM’owi dałem 30 GB, Windowsowi również, a resztę stanowi wolumin FAT32. Kiedyś reszty nie było, ale cóż – musiałem kupić nowego twardziela z powodu podejścia producentów do „ekonomicznego” trybu pracy dysków twardych
Co jednak można zrobić w sytuacji, gdy nagle potrzebujemy trochę więcej przestrzeni dyskowej z obsługą Linuxowych uprawnień? Odpowiedź jest prosta – możemy wykorzystać trochę wolnej przestrzeni FAT32, aby stworzyć sobie na nim wolumin ext3 w postaci zwykłego pliku.
Tworzenie woluminu ext3 w pliku
Aby utworzyć 15 GB wolumin ext3, przechodzimy w linii komend na dysk FAT32 i wydajemy polecenie:
cd /media/[nasz podmontowany wolumin FAT32]/ dd if=/dev/zero of=volume bs=1G count=15
Chwilkę to potrwa, ale ostatecznie powstaje wolumin:
15+0 przeczytanych recordów 15+0 zapisanych recordów skopiowane 16106127360 bajtów (16 GB), 957,413 s, 16,8 MB/s
Sprawdzamy nasz plik:
du -sh volume
15G volume
Wszystko się zgadza. Tak przygotowany plik należy teraz sformatować:
mke2fs -j volume
Zostaniemy zapytani, czy napewno chcemy formatować urządzenie które nie jest blokowe – potwierdzamy nasze intencje.
mke2fs 1.41.11 (14-Mar-2010) volume nie jest specjalnym urządzeniem blokowym. Kontynuować mimo to? (t,n) t warning: Unable to get device geometry for volume Etykieta systemu plików= Typ OS: Linux Rozmiar bloku=4096 (log=2) Rozmiar fragmentu=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 983040 i-węzłów, 3932160 bloków 196608 bloków (5.00%) zarezerwowanych dla superużytkownika Pierwszy blok danych=0 Maksymalna liczba bloków systemu plików=4026531840 120 grup bloków 32768 bloków w grupie, 32768 fragmentów w grupie 8192 i-węzłów w grupie Kopie zapasowe superbloku zapisane w blokach: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 Zapis tablicy i-węzłów: zakończono Tworzenie kroniki (32768 bloków): wykonano Zapis superbloków i podsumowania systemu plików: wykonano Ten system plików będzie automatycznie sprawdzany co każde 39 montowań lub co 180 dni, zależnie co nastąpi pierwsze. Można to zmienić poprzez tune2fs -c lub -i.
Montowanie woluminu plikowego
Teraz możemy już podmontować sobie tak stworzony wolumin:
sudo mkdir /mnt/tmp sudo mount -o loop volume /mnt/tmp df -h
System plików rozm. użyte dost. %uż. zamont. na /dev/mapper/sys-root 22G 11G 9,8G 52% / [...] /dev/loop0 15G 166M 14G 2% /mnt/tmp
I to wszystko – wolumin jest już gotowy do użycia
Wydajna i bezpieczna zdalna synchronizacja katalogów w Ubuntu
Będąc między innymi developerem, który pracuję na różnych maszynach, potrzebuje mieć swój kod dostępny na każdej stacji przy której zasiadam.
Przez jakiś czas sprawdzał się rozproszony system kontroli wersji. Wystarczyło robić push i pull poprzez ssh. Z czasem, kiedy np. miałem rozgrzebany kod, nie chciałem robić commita, tworzyć odgałęzienia – zacząłem pakować kod i przesyłać w tej postaci. Przez jakiś czas to znosiłem. Nie było to jednak zbyt przyjemne. Kilka drobnych zmian, a okazywało się, że muszę przesyłać kilka MB danych. Nie narzekałbym, gdybym nie miał w domu łącza niesymetrycznego
Z czasem, kiedy ilość projektów nad którymi pracowałem wzrosła, poczułem pewien dyskomfort (prawie jak pani Żanet Kaleta
). Tym większy, że zdarzało mi się pracować nad aplikacją i biblioteką jednocześnie w ramach jednego projektu, gdzie oba kody miały swoje indywidualne drzewa kontroli wersji. Nawet jeśli jedno było w podgałęzi drugiego – Mercurial, bo z tego systemu kontroli wersji korzystam – zdawał sobie sprawe, że dany katalog należy już do innego drzewa kontroli wersji.
Co począć w takiej sytuacji? Rozwiązanie przypadkowo podsunął kolega, jednocześnie przypominając mi jak to rozwiązanie efektywnie spisywało się w dystrybucji Gentoo, z której miałem okazję jakiś czas temu przez dłuższy nawet czas korzystać. Chodzi oczywiście o rsync’a.
Niżej przedstawioną metodę praktykuję już od jakiegoś czasu. Synchronizuję się do/z jednej centralnej maszyny. Synchronizuję katalog zawierający 300 MB kodu, źródeł grafik, duże drzewa hg. Nie zdarzyło mi się jeszcze, mimo wykonywania dość drastycznych zmian w podstrukturze, żeby trwało to dłużej niż wcześniej trwało przesłanie spakowanej paczki o rozmiarze 1 czy 2 MB.
Załóżmy, że w katalogu domowym /home/user/dev mam swoje repozytorium. Na maszynie centralnej, dane trzymane będą w katalogu /srv/archive/dev.
Aby wysłać dane z notebooka, na serwer, wydajemy polecenie:
rsync -azv --delete -e ssh /home/user/dev MASZYNA_CENTRALNA:/srv/archive
Aby pobrać dane z serwera na notebooka wydajemy:
rsync -azv --delete -e ssh MASZYNA_CENTRALNA:/srv/archive/dev /home/user
Jeśli nie jesteśmy pewni, czy efekty komendy będą zadowalające, warto dodać parametr --dry-run, który sprawi, że zostanie nam wyświetlona jedynie lista zmian, a nic tak naprawdę nie zostanie zmienione.
Myślę, że warto poświęcić kilka minut aby wewnątrz swojej biblioteczki stworzyć katalog sync, a w nim dwa skrypty send i recv które będą wykonywać te czynności, a gwarantuje, że w zamian zaoszczędzicie znacznie więcej czasu w przyszłości.
Prosty plugin jQuery: Dynamiczny favicon
Ten prosty wpis ma za zadanie przybliżyć Wam dwa tematy jednocześnie – jak stworzyć prosty plugin do jQuery oraz jak z poziomu JavaScriptu podmienić obrazek favicon dla strony. Zamierzam przedstawić plugin który właśnie taką czynność wykonuje
jQuery chyba nie trzeba przedstawiać. Jest to w mojej opinii najłatwiejsza w użyciu biblioteka czyniąca język JavaScript prostym i wygodnym w użyciu. Co więcej – można ją bardzo łatwo rozszerzać o dodatkową funkcjonalność za pomocą pluginów. Uważam, że warto wiedzieć jak taki plugin można sobie szybko przygotować.
jquery.favicon_replace.js wygląda następująco:
(function($) {
$.fn.favicon_replace = function(url) {
$('head link').each(function() {
if ($(this).attr('rel') == 'shortcut icon') {
$(this).remove();
}
});
$('<link rel="shortcut icon" href="'+url+'" />')
.appendTo('head');
};
})(jQuery);
Jak powyższy kod działa: tworzymy closure której jako parametr podajemy strukturę jQuery. Wewnątrz closury definiujemy funkcję, która sprawdza atrybut rel każdego taga typu link wewnątrz head porównując go do shortcut icon. Znaleziony w ten sposób element jest kasowany. Następnie tworzony jest nowy link typu shortcut icon, z nowym url’em. Urla podajemy funkcji jako parametr. Closura w postaci anonimowej funkcji jest wykonywana, a w efekcie jQuery zyskuje nową funkcję.
Zastosowanie tego plugina jest proste – oto przykład:
$(document).favicon_replace('/images/new-favicon.ico');
Warto napomnieć, że favicon wcale nie musi być ikoną. Możecie równie dobrze zaserwować przeglądarce animowanego gifa, nawet z rozszerzeniem ico, który zostanie automatycznie przeskalowany przez przeglądarkę i animowany na pasku adresu
Generowanie losowych haseł w Ubuntu
Hasła, każdy ma ich przynajmniej kilka w pamięci, ale życie uczy, że nie warto stosować takich samych do autoryzacji bankowych, kont na naszej-klasie, gadu czy na roota
Chciałbym Wam przedstawić bardzo proste narzędzie z którego korzystam z powodzeniem od kilku lat – nazywa się apg (Automated Password Generator) i służy do wygodnego generowania haseł.
Narzędzie oferuje dwa rodzaje haseł – mniej zaawansowane, ale znacznie łatwiejsze do zapamiętania dla osób znających język angielski oraz bardziej zaawansowane (zawierające poza literami dodatkowe krzaczki). Za pomocą dodatkowych parametrów możemy wpłynąć na zawartość dużych, małych liter lub liczb.
Instalacja jest standardowa:
aptitude install apg
Help
Wygląda tak:
apg -h apg Automated Password Generator Copyright (c) Adel I. Mirzazhanov apg [-a algorithm] [-r file] [-M mode] [-E char_string] [-n num_of_pass] [-m min_pass_len] [-x max_pass_len] [-c cl_seed] [-d] [-s] [-h] [-y] [-q] -M mode new style password modes -E char_string exclude characters from password generation process -r file apply dictionary check against file -b filter_file apply bloom filter check against filter_file (filter_file should be created with apgbfm(1) utility) -p substr_len paranoid modifier for bloom filter check -a algorithm choose algorithm 1 - random password generation according to password modes 0 - pronounceable password generation -n num_of_pass generate num_of_pass passwords -m min_pass_len minimum password length -x max_pass_len maximum password length -s ask user for a random seed for password generation -c cl_seed use cl_seed as a random seed for password -d do NOT use any delimiters between generated passwords -l spell generated password -t print pronunciation for generated pronounceable password -y print crypted passwords -q quiet mode (do not print warnings) -h print this help screen -v print version information
A teraz praktyka
Wystarczy znajomość kilku parametrów:
Generowanie 5-ciu haseł: -n
apg -n 5 ookyopIack berpAxEr DusEphac yomlipvog~ weehacir
Generowanie haseł o minimalnej długości: -m
apg -n 5 -m 10 BlysBicWeo fefimvesBa CuAtecHeoc crejvibred CynfiShnoi
Generowanie haseł z wymową (aby łatwiej było je zapamiętać): -t
apg -n 5 -m 10 -t WaigJocWig (Waig-Joc-Wig) Geagsyinau (Geags-yin-au) Cunefkalt9 (Cun-ef-kalt-NINE) Pemyidyish (Pem-yid-yish) agsirasuk7 (ags-ir-as-uk-SEVEN)
Generowanie bardziej zaawansowanych haseł: -a 1
apg -a 1 -n 5 -m 10
N;%5RWNM|B
$48+HGvlac
{@M!yPMa-y
jyI<{\3;{i
t)nThAUw?~
Skrypt ten jest bardzo przydatny, kiedy musimy wygenerować komuś hasło ponieważ nie jest w stanie sobie czegoś wymyślić (i pewnie wymyślił by ostatecznie nazwę swojego psa lub imię małżonki) lub stawiamy następny z kolei serwer mysql, a nie chcemy zostawiać takiej dziury jak nie tak dawno ktoś z ekipy Wykopu, kiedy to wykradziono im hasła użytkowników.
Wirtualni userzy ftp w Ubuntu
Poniżej znajduje się instrukcja opisująca jak skonfigurować krok po kroku bardzo prosty i bezpieczny serwer ftp obsługujący wirtualne konta – użytkowników, których fizycznie nie ma zdefinowanych w systemie. Jako serwer ftp wykorzystany zostanie vsftpd (very secure ftp daemon).
Założenia: potrzebujemy prostego serwera ftp do którego możemy zdefiniować kilku użytkowników, gdzie każdy ma dostęp do tego samego katalogu (opis jak należy to skonfigurować, aby każdy użytkownik miał swój własny katalog znajduje się we wpisie źródłowym, którego adres zamieściłem na końcu wpisu).
Najpierw instalujemy serwer ftp oraz narzędzie do obsługi bazy użytkowników:
aptitude install vsftpd db4.2-util
Tworzymy katalog ftp:
mkdir /home/ftp chown ftp:ftp /home/ftp
(aplikacja domyślnie podczas instalacji zakłada katalog /srv/ftp)
Podmieniamy plik /etc/vsftpd.conf na następujący:
# /etc/vsftpd.conf listen=YES listen_ipv6=NO #listen_port=2121 anonymous_enable=NO local_enable=YES guest_enable=YES virtual_use_local_privs=YES pam_service_name=vsftpd-virtual guest_username=ftp local_root=/home/ftp local_umask=022 write_enable=YES hide_ids=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES log_ftp_protocol=YES setproctitle_enable=YES connect_from_port_20=YES chroot_local_user=YES chroot_list_enable=NO secure_chroot_dir=/var/run/vsftpd/empty
W razie potrzeb – zmieniamy ustawienia – np. jeśli chcemy zmienić port na którym aplikacja ma nasłuchiwać – usuwamy znak komentarza z linii listen_port i zmieniamy numer portu.
Przygotowujemy plik /etc/pam.d/vsftpd-virtual:
auth required pam_userdb.so db=/etc/vsftpd-virtual account required pam_userdb.so db=/etc/vsftpd-virtual
Przygotowujemy plik z użytkownikami i hasłami /etc/vsftpd-konta:
uzytkownik1 haslo1 uzytkownik2 haslo2
umieszczamy hasła w bazie:
db4.2_load -T -t hash -f /etc/vsftpd-konta /etc/vsftpd-virtual.db
a następnie restartujemy usługę:
service vsftpd restart
Możemy już zalogować się do serwera, przykładowo:
lftp -p 2121 -u uzytkownik1,haslo1 localhost lftp test1@localhost:~> ls lftp test1@localhost:/>
Źródło: http://linuxforfun.net/2008/04/05/vsftpd-virtual-users/
Jabber od Google w Pidginie
Coraz więcej osób wyraża w różnych serwisach niezadowolenie z najnowszych usprawnień oferowanych przez GG Network S.A. w swoim sztandardowym produkcie – komunikatorze Gadu-Gadu. Niemniej jednak, większość z nas chcąc czy nie chcąc korzysta z Gadu. Powodem, dla którego nie odchodzimy od niego są dwa główne czynniki – jego popularność oraz wciąż niewielka popularność Jabbera.
Czym jest Jabber?
Jabber, pracujący w oparciu o protokół będący otwartym standardem XMPP działa na zasadzie sieci rozproszonej. Każdy kto dysponuje domeną Internetową może postawić sobie swój własny serwer Jabbera i rozmawiać z innymi użytkownikami Jabbera na całym świecie.
Identyfikator w Jabberze, tzw. JID, ma postać konto@domena – czyli analogicznie do adresów email. Użytkownik łączy się do swojego serwera Jabber. Nie ma serwera globalnego. Nie zdarzy się zatem sytuacja, jaka ma miejsce w sieci Gadu Gadu, kiedy padają ich serwery i w całej Polsce nikt nie może rozmawiać na Gadu.
Serwerów Jabberowych oferujących darmowe konta jest dużo w Internecie. Wielu operatorów hostingowych którzy nie chcą zostawać w tyle, oferuje dla hostowanych u nich naszych domen, jednoczesną obsługę już nie tylko poczty, ale również Jabbera – przykładem jest ovh.pl.
Trzeba jeszcze nadmienić, że Jabber, pomimo braku intensywnego wzrostu użytkowników – nie jest w odwrocie. Protokół XMPP jest powszechnie uważany za bardzo dobry i niedoceniany. Ogólny trend Instant Message’ingu jest taki, że powstające komunikatory nie wymyślają już nowych, zamkniętych protokołów, tylko opierają się o XMPP. Oznacza to, że każdy nowo powstały komunikator będzie w stanie „rozmawiać” z naszym. Jeśli nie będzie – ma niewielkie szanse, żeby wogóle zostać zauważony.
Każdy z nas ma już konto Jabber w Google
Od jakiegoś czasu Google udostępnia nam coraz to więcej nowych usług, które w świetny sposób integrują się ze sobą. Ktoś kto zakłada sobie konto pocztowe w Googlach, automatycznie dostaje do dyspozycji konto w Google Talk, który jest w pełni zgodny z protokołem XMPP. Komunikatora tego można używać z poziomu Gmaila (Chat). Nie jest to jednak zbyt praktyczne. Nic nie stoi jednak na przeszkodzie, aby podłączyć się do tego konta z komunikatora w postaci programu zainstalowanego na naszym komputerze.
Konfiguracja Google Talk w Pidginie
Pidgin może jednocześnie obsługiwać wiele protokołów, a nawet wiele instancji takich samych protokołów. Możemy dzięki temu w jednym pracującym Pidginie mieć jednoczesny dostęp przykładowo do naszego konta Gadu-Gadu, konta na jakimś serwisie Jabberowym oraz Google Talk. Jak to zrobić?
W oknie Pidgina wybieramy z menu pozycję Konta / Zarządzaj:
Naciskamy Dodaj:
I przeprowadzamy właściwą konfigurację:
[nazwa konta] – to sprzed małpki z adresu email
[zasób] – warto podać tu inną wartość na każdym komputerze na którym pracujemy – dzięki temu jeśli np. zapomnimy zamknąć komunikator w pracy, w domu „nie będzie nas rozłączać” i będziemy mogli prowadzić normalne rozmowy.
Jeśli używacie zdjęcia profilu w Google Profile – ważna uwaga: łącząc się z komunikatora – ikona użytkownika zastąpi tą w Google Profile. Dlatego warto na każdym komunikatorze pamiętać aby to zdjęcie ustawić – inaczej nasze zdjęcie w profilu Google będzie nam znikać.
Google Talk dla konta Google Apps
Jeśli pracujecie na koncie Gmailowym które jest skonfigurowane na Twojej własnej domenie (opis usługi popełniłem w tym wpisie), dobra wiadomość – również możemy skonfigurować sobie Google Talka, ustawienia są następujące:
[nazwa konta] – jak wyżej, czyli to co mamy przed małpką w adresie email
[domena] – nasza domena
Następnie w zakładce Zaawansowane (Advanced), w polu serwer wpisujemy talk.google.com – i to wszystko
Bardzo przyjemnym dodatkiem jest możliwość informowania nas przez Pidgina, że mamy nowe maile w Gmailu. Uważam, że to bardzo wygodne. Nowe maile Pidgin pokazuje w następujący sposób:
Integracja aplikacji w obrębie Google
Wspomniałem wcześniej, że Google bardzo fajnie integruje swoje usługi – świetnym przykładem jest pokazywanie statusu Google Talk w jednej z najlepszych aplikacji które oferuje nam Google jak zwykle nieodpłatnie – w Google Readerze (które przybliżyłem we wpisie Internet na bieżąco). Wygląda to tak:
Życzę wszystkim miłego uniezależniania się od Gadu-Gadu!
Pozytywne strony Microsoftu
Usłyszałem, że mój blog jest stronniczy. Wszędzie tylko Linux to Linux tamto, Ubuntu jest fajne, a co Microsoft lub Windows to dziadostwo.
Faktycznie można odnieść wrażenie, że jestem jakimś przeciwnikiem Microsoftu. Au contraire!
Może nie specjalnie jestem fanem tej firmy – po prostu niezbyt często jest ich za co pochwalić. Sposób w jaki próbują zdobywać rynek, w jaki podchodzą do klienta, licencjonowanie produktów i wiele innych aspektów ich działalności sprawia, że włos mi się jeży na głowie. Chwalę zamiast tego za zwyczaj inną firmę – Google, ale dlatego, że ich metodologia zdobywania rynku bardzo mi się podoba i trzymam za nich jak najbardziej kciuki.
Żeby jednak blog nie był taki całkiem stronniczy, napiszę teraz klika pozytywnych słów o Microsofcie
Swojego czasu w jednej z aplikacji Microftu – USB/DVD download tool – znaleziono kod, który został wcześniej opublikowany na licencji GPL. Informacje te zostały potwierdzone przez Microsoft. Mieli w tej sytuacji trzy możliwości – przepisać fragment kodu, wycofać aplikację z rynku lub udostępnić ją na licencji Open Source. Pierwszą reakcją firmy była decyzja o wycofaniu programu z rynku, jednak ktoś ostatecznie podjął decyzję, aby… wypuścić program na licencji GPL.
Uważam, że taka decyzja ze strony Microsoftu jest świetna. W końcu – nic nie stoi na przeszkodzie, żeby nadal brali pieniądze za ich system, pakiet Office oraz specjalistyczne oprogramowanie, a mniejsze narzędzia – udostępniali na takiej licencji. Uważam, że gdyby poszli dalej tą drogą – takich mniejszych narzędzi mogłoby pojawiać się znacznie więcej, pojawiałyby się znacznie częściej (bo w końcu mogli by wykorzystać wszędobylski kod GPL), a społeczność oddanych programistów napewno pomagałaby im łatać dziury w kodzie, których w ich aplikacjach jest bardzo dużo.
Mając darmowe wsparcie ze strony developerów, przychylność związaną z przyklaskiwaniem tej bardzo dobrej metodzie publikacji programów zyskali by dużo więcej, niż tylko korzyści materialne, które to moim zdaniem byłyby całkiem wymierne.
Drugim tematem, za który chciałbym ich pochwalić jest produkt Bing – czyli wyszukiwarka Internetowa. Jest szybka i znacznie bardziej dopracowana niż ich poprzednia wyszukiwarka – MSN Search. Wyszukiwanie nie jest tak inteligentne jak to które oferuje konkurencja, ale produkt jest już całkiem używalny. Usługę tą Microsoft integruje już z produktami innych firm – np. z Twitterem. W mojej opinii jest to krok milowy.
Smutne jest jednak to, że wypuszczenie ów wyszukiwarki było podyktowane jedynie względami walki z konkurencją – Google. CEO Microsoftu, Steve Ballmer, w swoich wypowiedziach pokazał już nie raz, jak wielką pogardą obdarza firmę Google i ich podejście do zarabiania i oferowania usług oraz jak bardzo nie znosi pojęcia licencji GPL. Obawiam się więc, że opisane przeze mnie dwa pozytywne aspekty działania tej firmy nie mają szansy na zakorzenienie się w polityce Microsoftu jak długo obecny CEO będzie pełnił swoją funkcję.
CEO Microsoft, Steve Ballmer
Wszystkie znaki towarowe i nazwy firm wymienione w tym wpisie zostały użyte tylko w celach informacyjnych i należą do ich właścicieli
ACL dla plików i katalogów w Ubuntu
Unixowy system uprawnień dla plików i katalogów został naprawdę dobrze przemyślany i świetnie się sprawdza. Każdy jednak prędzej czy później może trafić na sytuację, w której możliwość stosowania rozszerzonych uprawnień dałaby znacznie większą swobodę i wygodę.
Kogo temat może zainteresować?
Wydaje mi się, że użytkownicy zwykłych desktopów nie będą ACL’i potrzebować. Jeśli jednak jakiś developer umieszcza przykładowo serwer z repozytorium u siebie albo jest administratorem jakiegoś serwera – myślę, że warto się zapoznać z poniższą tematyką.
Krok po kroku
Access Control Lists (ang. ACL), czyli listy kontroli dostępu są w jądrze Ubuntu wkompilowana domyślnie już od jakiegoś czasu. Niewiele stoi zatem nam na przeszkodzie, aby aktywnie zacząć z nich korzystać. ACL należy traktować jako rozszerzenie Unixowego systemu uprawnień plików i katalogów, dlatego zestaw komend takich jak chown czy chmod nadal obowiązuje.
Czego zatem potrzebujemy? Musimy uświadomić nasz system, że będziemy wykorzystywać ACL’e dla konkretnych systemów plików. No i przede wszystkim – musimy mieć narzędzia do zarządzania ACL’ami oraz wiedzieć, jak się ich używa
Zatem po kolei.
Sprawdźmy, czy mamy narzędzia do obsługi ACL’i. Narzędzia nazywają się setfacl, getfacl oraz chacl.
desktop repos # getfacl Program getfacl nie jest obecnie zainstalowany. Można go zainstalować wpisując: apt-get install acl getfacl: command not found desktop repos #
Więc go sobie instalujemy:
sudo aptitude install acl
Spróbujmy ustawić jakąś rozszerzoną listę dostępu. Przejdźmy do katalogu domowego, załóżmy katalog test oraz nadajmy uprawnienia rwx użytkownikowi nobody.
cd mkdir test setfacl -R -m u:nobody:rwX test setfacl: test: Operation not supported
Komunikat Operation not supported oznacza nic innego jak brak obsługi ACL w systemie plików. Jeśli nasz katalog domowy znajduje się na odrębnym systemie plików home, możemy aktywować obsługę ACL komendą:
sudo mount -o remount,acl /home
Teraz ustawianie rozszerzonych uprawnień powinno już działać. Ponowne wydanie komendy setfacl nie powinno już zwrócić błędu.
Przy okazji, możemy zobaczyć jak wyglądają uprawnienia naszego katalogu:
nme@desktop ~ $ setfacl -R -m u:nobody:rwX test nme@desktop ~ $ ls -lad test/ drwxrwxr-x+ 2 nme nme 4096 2009-12-30 14:29 test/ nme@desktop ~ $ getfacl test # file: test # owner: nme # group: nme user::rwx user:nobody:rwx group::r-x mask::rwx other::r-x
Warto zwrócić uwagę na uprawnienia zwracane komendą ls -l: drwxrwxr-x+ – na końcu listy uprawnień znajduje się znak + oznaczający rozszerzone informacje. Takie uprawnienia możliwe są do odczytu za pośrednictwem getfacl co też uczyniłem powyżej. Wynik komendy jest dość czytelny.
Wracając do wydanej komendy:
setfacl -R -m u:nobody:rwX test
Co po naszemu brzmi – rekursywnie zmodyfikuj uprawnienia dla użytkownika nobody dla katalogu test ustawiając uprawnienia rwx dla katalogów i rw dla plików.
Dziecinne proste. Rozbudujmy komendę:
setfacl -Rm u:nobody:rwX,d:u:nobody:rwX test
(pierwsza część jest tak naprawde zbędna, ponieważ uprawnienia dla użytkownika już ustawiliśmy, ale chciałem przedstawić sposób w jaki możemy łączyć uprawnienia w obrębie jednej komendy)
d:u:... można zapisać również jako default:u:... co oznacza, że dla nowo zakładanych plików/katalogów, takie atrybuty mają być domyślnie dodawane.
Ważna sprawa, na koniec
Aby używać list dostępu, aktywowaliśmy opcję acl poprzez przemontowanie systemu pliku. Niestety, po restarcie, system plików nie będzie już obsługiwał list dostępu.
Co zatem zrobić?
Jeśli chcemy, aby nasz system plików pamiętał o tym, że ma obsługiwać rozszerzone listy dostępu, w pliku /etc/fstab należy to zaznaczyć, acl jako opcję dla naszego systemu plików:
/dev/mapper/desktop-home /home ext3 defaults,acl 0 2
Więcej informacji, wraz z przykładami znaleźć możecie na stronach manuala komend do obsługi acl które przedstawiłem w tym tekscie.
Ailurus: wygodny tuning Ubuntu
Niestrudzony Adrian Nowak, na blogu Ubucentrum zamieścił wpis Ailurus – ułatwi początki z Linuksem.
Czym jest Ailurus? To wygodny interfejs produkcji „Thrusted Digital Technology Lab.” z siedzibą w Chinach, do tuningu systemu i obsługi systemu
Faktycznie, narzędzie jest faktycznie bardzo ciekawe. Nie znajduje się jednak w standardowym repozytorium. Dlatego myślę, że warto wspomnieć, w jaki sposób najwygodniej je zainstalować.
Nie zalecałbym metody którą proponuje Adrian – czyli instalacji pojedynczej paczki z serwisu GetDeb.net.
Instalowanie pojedynczych paczek jest zaśmiecaniem systemu.
Instalacja
W Ubuntu 9.10 możemy w wygodny sposób dodawać repozytoria, które sprawią, że jeśli pojawi się nowa wersja pakietu, przy aktualizacji systemu, pakiet zostanie również uaktualniony.
# przechodzimy na roota sudo -i # dodajemy nowe repozytorium add-apt-repository ppa:ailurus # aktualizujemy wykaz aktualnych pakietów aptitude update # instalujemy pakiet aptitude install ailurus
Aplikacja, po instalacji jest dostępna poprzez Programy / Narzędzia systemowe / Ailurus.
Co oferuje nam pakiet?
- Tips and tricks – warto przeglądnąć – informacje jak za pomocą gconf-editora wykonać tuning naszego Gnome’a
- Wygodny frontend do konfiguracji i sprawdzenia parametrów systemu (typ procesora, ilość pamięci, czy procesor jest 64-bitowy, rodzaj karty graficznej i sieciowej)
- Skróty do instalacji różnych przydatnych aplikacji, których nazwy należałoby w innym wypadku pamiętać albo trzeba byłoby się bardziej narobić, żeby je zainstalować
- Ustawienia systemowe – innymi słowy – edycja plików konfguracyjnych, modifykacja menu kontekstowego Nautilusa itp
- i wiele innych…
Kiedy można sobie ułatwić życie, warto to robić







