Skocz do zawartości

Kurs Raspberry Pi - #9 - edytory tekstów, konsola cd.


Pomocna odpowiedź

html_mig_img
Wykonując ćwiczenia z poprzedniej części kursu można przekonać się, że praca z poziomu konsoli nie jest trudna. Pora na kolejną dawkę podstaw Linuksa, które przydają się na Raspberry Pi.Tym razem mowa między innymi o edycji plików, kopiowaniu oraz uprawnieniach. Znajdzie się też coś dla fanów krów.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link to post
Share on other sites

Mimo iż z Linuxem mam do czynienia od wielu lat to nadal przeraża mnie surowość edytorów typu nano, vi .... Początkującym polecam instalację Midnight Commandera, w którym znajdziemy edytor mcedit. Praca o niebo przyjemniejsza, wygodniejsza i bardziej intuicyjna, a i system plików i dostęp do plików i katalogów, uprawnień zdecydowanie łatwiejszy.

To wyjaśnienie parametru 0600 polecenia chmod też jest nieco chybione, gdzieś po drodze zagubiono UID, GID i STICKY BIT - atrybuty, które poza np. rwxrwxrwx także ustawiamy. Midnight Commander zresztą bardzo ładnie je pokazuje. Trzeba by było ten fragment artykułu poprawić.

Link to post
Share on other sites

Belferek, dziękuję za sugestie 🙂 Jeśli chodzi o Midnight Commander to również o nim myślimy. Nie pojawił się jednak w tym artykule, aby zbytnio nie "mieszać". Możliwe, że pojawi się na jego temat zupełnie osobny artykuł.

To wyjaśnienie parametru 0600 polecenia chmod też jest nieco chybione, gdzieś po drodze zagubiono UID, GID i STICKY BIT - atrybuty, które poza np. rwxrwxrwx także ustawiamy. Midnight Commander zresztą bardzo ładnie je pokazuje. Trzeba by było ten fragment artykułu poprawić.

Masz może jakąś sugestię co dokładnie warto byłoby według Ciebie dopisać tak, aby nie było to zbyt skomplikowane dla początkujących?

Link to post
Share on other sites

Może zacznijmy od tego aby w wyjaśnieniu parametru liczbowego polecenia chmod wskazać, że parametrem poza symbolami (rwx itd.) może być 4 cyfrowa liczba ósemkowa. Nie musimy podawać wszystkich cyfr. Każda ominięta cyfra traktowana jest jak 0. Czyli chmod 0600 plik jest równoznaczne z chmod 600 plik - pierwsze 0 wcale nie oznacza systemu ósemkowego.

Zgodnie z manualem polecenia chmod (man chmod) znaczenie poszczególnych cyfr jest następujące:

Pierwsza cyfra wybiera SUID (4) i SGID (2) oraz ograniczone prawo usunięcia lub tzw. bit lepkości (1).

Druga cyfra wybiera prawa dla właściciela: odczytu (4), zapisu (2), wykonania (1);

Trzecia cyfra prawa dla grupy posiadającej plik

Czwarta dla innych użytkowników, spoza grupy (analogicznie do cyfry dla właściciela).

O ile znaczenie 2,3 i 4 cyfry jest oczywiste to wyjaśnienia wymaga pierwsza cyfra zawierająca flagi SUID (set user ID), SGID (set group ID) i bit lpkości (sticky bit). W systemie Linux jest wiele programów uruchamianych przez zwykłego użytkownika, które do poprawnej pracy wymagają wyższych uprawnień. Atrybuty SUID i SGID nadane plikowi spowodują, że zostanie on uruchomiony z odpowiednimi uprawnieniami grupy lub właściciela. Przykładem takiego programu jest chociażby polecenie ping.

Literka s w zapisie -rwsr-xr-x oznacza, że w czasie uruchomienia ping przez zwykłego użytkownika polecenie będzie pracowało (w tym przypadku) z uprawnieniami użytkownika root.

Z racji swego przeznaczenia atrybuty te znajdują zastosowanie dla plików wykonywalnych systemu Linux.

Sticky bit (bit lepkości) możemy nadawać katalogom, a szczególnie tym, w których pliki zapisywane są przez wielu użytkowników. Nadanie bitu lepkości spowoduje, że tylko właściciele plików będą mogli je usuwać. W ten sposób nikt nikomu, niczego nie usunie. Jeśli ktoś twierdzi, że w moim Raspberry nie ma innych użytkowników poza mną to się myli. Wystarczy użyć polecenia cat /etc/passwd by zobaczyć listę użytkowników systemu z dodatkowymi informacjami.

Pozdrawiam,

  • Lubię! 1
Link to post
Share on other sites

Belferek, dziękuję za sugestie i porady 🙂 Pomyślę co z tym zrobić i na pewno wprowadzimy zmiany w tym fragmencie na temat uprawnień.

Link to post
Share on other sites

Belferek, masz jak najbardziej rację odnośnie pierwszego zera w uprawnieniach 0600 oraz ustawianych przez pierwszą cyfrę bitach. Kurs jest jednak adresowany do początkujących, a stickybit czy też SUID/SGID znacznie wykracza poza zakres naszego kursu. Jest jeszcze mnóstwo informacji, które należałoby przekazać, ale to temat na (bardzo grubą) książkę, a nie kurs internetowy.

Głównym powodem wspominania o chmod była chęć zapoznania z podstawami uprawnień w systemie Linux, a nie przygotowywanie do pracy przyszłych administratorów.

Tym co też zostało pominięte, ale może trzeba będzie dopisać to uprawnienia do katalogów. W każdym razie domyślna instalacja raspbiana jest tak ustawiona, że nie można nic kasować, ani zapisywać w katalogach innych użytkowników. Można za to do nich wchodzić i czytać tresć plików - wtedy chmod 0600 faktycznie zabezpiecza dostęp do pliku.

Ostatnia sprawa to konta użytkowniów - faktycznie w systemie jest zainstalowanych kilka kont, ale tylko dwa (domyślnie) umożliwiają logowanie: pi oraz root. Jak mamy prawa root-a to chyba nie warto dalej mówić o bezpieczeństwie, zostaje więc konto pi.

Link to post
Share on other sites

Zgadzam się z Tobą Elvisie. System Linux (w jakiej by dystrybucji nie był) dla zwykłego użytkownika PC, który przyzwyczajony jest do rozwiązań MS, a który to użytkownik został szczęśliwym posiadaczem RPi jest straszny i trudny.

Jednak jeśli mówimy o kursie, którym chcemy zachęcić miłośników robotyki do korzystania z RPi i Raspbiana to nie można podawać nieprawdziwych i błędnych informacji, że np w 0600 pierwsze 0 oznacza system ósemkowy. Każdy posiadacz RPi z pewnością zaraz uruchomi man chmod by poszukać dodatkowych informacji, a tam znajdzie inne, diametralnie różne wyjaśnienie. Zaraz pojawi się myśl - Forbot jest niewiarygodny! Jak będzie więc wyglądał kurs Forbota, co by nie mówić wiodącego portalu w tej dziedzinie z naprawdę profesjonalnymi i ciekawymi materiałami szkoleniowymi? Osobiście jestem pod wrażeniem materiałów zawartych w serwisie i podziwiam wiedzę doświadczonych forumowiczów. Nie warto takiego drobnego błędu pozostawiać bez korekty.

Link to post
Share on other sites

Bez przesady z tą wiarygodnością, nikt nie jest nieomylny 🙂 Faktycznie rozjechały się trochę opisy i grafiki na koniec artykułu (ale wtedy każdy jest już zmęczony - czytaniem i pisaniem). Proponuję wyrzucić to początkowe zero z tekstu i grafiki, wtedy będzie chyba poprawnie - a na poziomie początkujących raczej nie ma co wprowadzać zbyt wiele informacji.

Link to post
Share on other sites

Belferek, Elvis, zgodnie z Waszymi radami usunąłem "zbędne zero". Do tematu dodatkowych bitów wrócimy w przyszłości, gdy będą one potrzebne.

Informacja dla wszystkich czytelników: powyższe komentarze dotyczą starszej wersji artykułu, która została właśnie zaktualizowana.

Link to post
Share on other sites

Dzięki chłopaki za kolejne etapy kursu RPi, czytam je w miarę możliwości i czasu i powiem wam, że dla mnie to jakaś masakra. Wiem, jeszcze parę miesięcy temu to samo mówiłem o programowaniu arduino 😋 , ale kurczę to RPi to wygląda dla takiego laika jak ja strasznie. Tyle już odcinków kursu, a dalej tylko ustawianie, konfigurowanie itp.

Bynajmniej się nie żalę, mówię tylko, że wygląda to dla mnie trudno. Choć oczywiście może być tak, ze to co teraz przekazujecie to absolutne podstawy, które kiedy raz wejdą do głowy to już później nawet nie zwracamy uwagi na to, że robimy bez zastanowienia coś co wcześniej wydawało się czarną magią( tak jak podstawy arduino dla mnie kiedyś).

Tak się zastanawiam, bo piszecie że to kurs dla początkujących, nie dla administratorów 😅 , czy tego co da się zrobić na RPi, nie da się zrobić na komponentach ze starego komputera, których często kilka jest gdzieś w domu? Nie da się zrobić, w środowisku znacznie bardziej przyjaznym od "DOSowego"?

Ja rozumiem, że też trzeba wiedzieć jak, to już kwestia chęci, umiejętności i ...FORBOTa 😋.

Dobra zrzędzę,

chodzi mi to: arduino to ATMEGA z komponentami zrobiona tak by laik dał radę to podłączyć, zaprogramować, wgrać i uruchomić;

a jak jest z RPi w porównaniu do starego kompa, czy to ta sama zasada co przy arduino?

Link to post
Share on other sites
czy tego co da się zrobić na RPi, nie da się zrobić na komponentach ze starego komputera,

Oczywiście, że się da tylko ... RPi jest bardziej nowoczesne 🙂

Nie da się zrobić, w środowisku znacznie bardziej przyjaznym od "DOSowego"?

Raczej konsolowego i oczywiście też się da Po instalacji masz środowisko graficzne. To co zrobisz w edytorze nano zrobisz także w edytorze pracującym pod Xami (środowisko graficzne).

a jak jest z RPi w porównaniu do starego kompa, czy to ta sama zasada co przy arduino?

W zasadzie jest inaczej nie wgrać i uruchomić lecz ... uruchomić. RPi pracuje pod kontrolą systemu operacyjnego!

Inaczej nieco pisze się programy - trudniej. W zasadzie masz do dyspozycji (z takich popularniejszych języków) C (C++) i Pythona. Jest dużo przykładów i z większym nieco wysiłkiem ale z blinkiem nie ma kłopotów 🙂

Pozdrawiam,

Link to post
Share on other sites

SOYER, wszystko zależy od przyzwyczajenia, wbrew pozorom do wielu zadań to właśnie "DOSowe" środowisko jest mega przyjazne, a okienka to koszmar. Jeśli nie wierzysz, to spróbuj napisać tutorial o obsłudze programu z interfejsem graficznym. Zanim na dobre go ukończysz będą nowe wersje i wszystko trochę pozmieniane, "poprawione". A za 5 lat cały tutorial będzie zabytkiem. Z drugiej strony wiele systemów jest używanych latami, rozwiązania wbudowane też mają czas życia znacznie dłuższy niż typowy stacjonarny PC-et. Wieć taki "DOS" jak nazywasz biedną konsolę to często wybawienie - raz przygotowujesz skrypt i działa zawsze. A okienek trzeba się uczyć co chwilę od nowa.

Natomiast co do porównania starego PC-ta z Raspberry to masz pełną rację, oba rozwiązania są pod wieloma względami podobne. Różnica to przede wszystkim rozmiary i pobór prądu, bo jak chodzi o funkcjonalność to Raspberry jest zminiaturyzowanym komputerem ze wszystkimi tego plusami i minusami.

To co opisujemy to typowy kurs używania Raspberry, większość książek i kursów omawia podobne zagadnienia. Chociaż może to ciekawy pomysł - zrobić jeden odcinek dla mega początkujących, czyli bez rozumienia jak działa Linux, po prostu zainstaluj to, tamto i owamto, napisz skrypt, uruchom i masz Arduino... może coś w tym jest :/

Link to post
Share on other sites

@SOYER: Powiem inaczej.

Przede wszystkim: błędnie użyłeś określenia "bardziej przyjazne", powinieneś napisać "moim zdaniem bardziej przyjazne" - jak już pewnie zdążyłeś zauważyć, większość tu obecnych ma inne zdanie na ten temat 🙂

Dam Ci przykład z własnego doświadczenia. Swego czasu bezpośrednio z Amigi przesiadłem się na Linuksa. I do dzisiaj Windows jest dla mnie czymś niewygodnym, trudnym do opanowania i absolutnie nieergonomicznym (przynajmniej od strony użytkownika) w porównaniu z intuicyjnym i łatwym w użytkowaniu i konfiguracji Linuksem.

A do Autorów kursu:

Może warto zanim się przejdzie do omawiania konkretnych poleceń omówić lepiej interfejs readline - historia poleceń z całym interfejsem do wyszukiwania i modyfikacji wydanych wcześniej poleceń (nie tylko dostęp do poprzedniego polecenia), poruszanie się po wprowadzanym tekście (np. skok do poprzedniego/następnego słowa czy początku/końca tekstu) i wszelkie tego typu kwiatki, które czynią konsolę naprawdę wygodnym i ergonomicznym narzędziem? Bo bez tego znajdzie się jeszcze paru SOYERów narzekających na siermiężny wygląd konsoli i nie rozumiejących, dlaczego wszyscy się nią zachwycają 🙂

Dla przykładu: co się stanie, jeśli w konsoli wpiszemy "ls" i wciśniemy PgUp?

Link to post
Share on other sites

Kochani przedmówcy 😅 , ja wiem, że wy macie rację, podobnie jak mieliście w przypadku arduino. Nie traktujcie moich słów jako zrzędzenia, a raczej jako zwykły głos w dyskusji.

Kiedy kurs RPi ruszał, nie mogłem się doczekać, a teraz czytam kolejne odcinki z ciekawości ale na razie nie żałuję, że poczekałem z ruszaniem w tango z malinką.

W kursie arduino od początku robiło się zadania praktyczne, z odcinka na odcinek coraz ciekawsze, wszystko przeplatane kolejną dawką teorii absolutnie podstawowej bez której ani rusz. Ale to strasznie wciągało i dalej ciągnie...

Ja rozumiem, choć tego nie wiem na pewno, bo nikt mi tego nie napisał, że te wszystkie dotychczasowe odcinki o RPi, są absolutnie niezbędne aby cokolwiek sensownego uruchomić, napisać jakiś program... zresztą i tak jeszcze nie wiem co można zrobić z takim małym komputerkiem.

Krótko mówiąc JAK DLA MNIE kurs jest na razie mało uwodzicielski 😋 , choć jak zaznaczyłem, nie mam RPi i tym samym nie robię zadań praktycznych, więc co do zasady mogę się całkowicie mylić.

Wiem, że na pewno wszystko się rozkręci, ale postanowiłem się podzielić swoim zdaniem. Pozwalam się z nim nie zgadzać, w części lub w całości 😅

Miłego popołudnia:-)

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.