Uprawnienia do plików


#1

Jak to jest z tymi uprawnieniami, bo już się pogubiłem. Mam program którego właścicielem jest użytkownik A. Zmieniam jego uprawnienia na prawo do wykonywania dla użytkownika A, ale zmiany uprawnień dokonuję w nie systemowym a doinstalowanym menedżerze plików. Program ten uruchamia mi się tylko z doinstalowanego menagera plików, a z systemowego nie. O co tu chodzi, czy może ktoś mi wytłumaczyć.
Drugi problem jest podobny, chyba też związany z uprawnieniami. Odpalam z konsoli program X dla środowiska graficznego. Właściecielem jest użytkownik A. Program odpalam przy pomocy sudo ponieważ chcę zmienić jego ustawienia, co wiąże się z zapisem tych ustawień. Następnie ten sam program odpalam jako Aale już ze środowiska graficznego bez sudo i i nie ma zmian których dokonałem w programie Jako użytkownik A z sudo. Muszę na nowo wprowadzić zmiany jako użytkownik Aale bez sudo żeby one zaistniały. Tak jakby użytkownik A który poda hasło, był innym użytkownikiem A który nie poda tego hasła. O co tu chodzi ?


#2

Wszystko zależy od programu. Niektóre po prostu wymagają uprawnień administracyjnych bo manipulują ustawieniami, które należą do root’a, wtedy program pyta o hasło do sudo.

Nie wiem czy dobrze zrozumiałem dobrze drugą sytuację. Odpaliłeś w terminalu program graficzny z sudo? Jeśli tak i program ci na to pozwolił (wiele będzie to miało zablokowane) to wtedy uruchomi się on w trybie roota a nie usera, więc będzie posiadał wszelkie ustawienia roota i wszelkie zmiany konfiguracyjne będą odnosiły się do root’a a nie użytkownika.

Jeśli to program użytkownika i nie wykonuje żadnych systemowych czynności to musisz uruchamiać go jako user i tak zmieniać jego ustawienia, do czego będziesz miał pełne prawo. Natomiast jeśli root uruchomi ten program (czyli ty z uprawnieniami roota) to po prostu użyje innych, z reguły domyślnych ustawień. Każdy użytkownik ma swoje ustawienia w swoim katalogu i tych program używa jeśli jest odpalany przez użytkownika. Ale jak wspomniałem powyżej są wyjątki.

Jeśli chcesz konkretne odpowiedzi musisz podać konkretne przykłady, bo te hipotetyczne są zbyt ogólnikowe i niejasne.


#3

Dokładnie to było tak:
1 przypadek - ściągnąłem program w formacie appimage (dla środowiska electron). Plik taki aby uruchomić trzeba dać mu uprawnienie do wykonywania. Nie chciało mi się klepać w konsoli chmod itd. tylko posłużyłem się menagerem plików DoubleCmd i w nim zmieniłem uprawnienia do wykonywania. Program mogłem odpalić tylko z DoubleCmd, a z systemowego menagera plików już nie.
2 przypadek - musiałem doinstalować ręcznie plik językowy dla programu. Program ten w momencie próby otwarcia pliku językowego próbuje tworzyć katalog language, w lokalizacji do której nie ma dostępu. Uruchamiam go więc w konsoli jako sudo. Wtedy tworzy ten katalog language. Dopiero teraz mogę skopiować plik językowy do tego katalogu, wybrać go w programie i mieć zmieniony język. Ale zarówno ustawienia programu jak i jezyk były tylko dla urzytkownika sudo. Uruchamiając program jako zwykły user zmian które poczyniłem nie było widać, musiałem od nowa konfigurować program i wczytywać plik językowy. Tym razem miałem dostęp do katalogu z plikiem językowym ponieważ program tylko go musiał odczytać, a nie zapisywać.
Jak sobie radzić najlepiej z takimi przypadkami ?. Chciałbym żeby raz skonfigurowany program działał na wszystkich kontach tak samo. Noi zastanawia mnie też ten pierwszy przypadek, przecież uprawnienia zapisywane są w pliku. A mimo to tylko ten program który zmienił uprawnienia może go uruchomić a systemowy menager już nie.


#4
  1. Nie wiem co zrobił DoubleCommander ale większość środowisk ma manadżera plików, który umożliwia edycję uprawnień. Ja też nie przepadam za terminalem, więc jak nie muszę to po prostu używam GUI. W Plazmie po prostu prawo-klikasz plik i wybierasz właściwości i idziesz do zakładki uprawnienia. Tam jest checkbox “Wykonywalny”:

Screenshot-2019-01-10-22-49-19

Jeśli jednak nie jesteś właścicielem pliku lub nie należysz do grupy z odpowiednimi pozwoleniami to musisz skorzystać z akcji administratora. Znowu dobry manadżer plików może przyjść z pomocą. W Dolphin na prwo-kliku wybierasz “Działania administratora” i potem “Zmień uprawnienia” i tam zaznaczasz wykonywalny, zostajesz poproszony o podanie hasła. I tyle.

Możliwe, że Thunar czy Nemo mają podobne opcje, a w Nautilius może być wtyczka to dodająca. Nie używam na codzień Xfce, Cinnamon ani Gnome, więc musisz sam sprawdzić jak ich używasz.

Jednak dobrze poznać komendy chown (własność) i chmod (uprawnienia), bo czasami trzeba ich użyć.

  1. Za mało szczegółów. Co to znaczy “ręcznie doinstalować”? Jaki program? Podejrzewam, że jest znacznie prostsza metoda na to co zrobiłeś. To mało typowa akcja i wygląda na błędną.
    Z tego co się domyślam: źle zainstalowałeś język lub program. Nie powinno się uruchamiać programów graficznych przez sudo, chyba że jest to systemowy program typu gparted czy grub-customizer, ale i te z czasem będą pozbawione tej opcji, bo nie działa pod wayland. Wtedy uruchomienie akcji administracyjnej po prostu wywoła okienko podania hasła.
    To dość normalne, że konfiguracja programu z poziomu roota jest inna od tej użytkownika. Czemu jednak nie masz dostępu do lokalizacji to pewnie już coś jest poknocone we własności lub dostępie pliku lub programu (może musisz należeć do grupy). Nie mam danych, więc nie da się nic powiedzieć.

Jak radzić sobie z takimi przypadkami? Takie przypadki nie mają prawa występować. Fakt, że wystąpiły oznacza, że za mało orientujesz się jak działa Linux, bo szybko znalazłbyś właściwy i raczej prostszy sposób na to. Czyli, im mniej się orientujesz, tym więcej problemów masz… Dlatego dość powszechnym jest, że nowicjusz zepsuje parę razy system zanim nauczy się go obsługiwać. Ja też bodajże 2x uwaliłem Manjaro jak byłem zupełnie świeży :wink: .

Ale łatwo mi się wymądrzać jak nie wiem co to za program, więc proszę, podaj konkrety. Jaki program chciałeś spolszczyć i skąd wziąłeś polski język i instrukcję instalacji? No i jak zainstalowałeś program?


#5

Rzeczywiście jestem początkującym użytkownikiem linux. Kiedyś już próbowałem się przestawić z windy na linuxa, ale to było bardzo dawno. Brak internetu i wsparcia online, mała ilość oprogramowania, i wtedy zwiększona trudność obsługi systemu (nie było takich bajerów jak automount po instalacji i tym podobnych ułatwień), dobrej obsługi sprzętu, spowodowało że poddałem się i wróciłem do windy.
Manjaro uwaliłem już 2 razy. To jest moja 3 instalka :smiley:. Korzystam ze środowiska graficznego deepin. Przed aktualizacją nie miałem możliwości zmiany uprawnień w środowisku graficznym. Po aktualizacji systemu doszła taka możliwość. Dlatego przed aktualizacją uprawnienia zmieniałem w doublecmd. Oprogramowanie zawsze instaluję z poziomu terminala w środowisku graficznym przy pomocy pacmana z repozytoriów dostępnych dla systemu, nie z AUR. Każde odpalenie pacman z opcją S wymaga sudo, więc każdy zasób tak utworzony ma właściciela i grupę root. Nie wiem czy tak powinno być, czy to jest prawidłowo.
I tu wspomnę o jeszcze jednej rzeczy której nie rozumię. Jestam zalogowany w systemie jako użytkownik elnino. Instaluję oprogramowanie (pacman -S coś_tam), program wymaga uruchomienia polecenia przez urzytkownika uprzywilejowanego. Więc wpisuję sudo pacman -S coś_tam, podaję hasło użytkownika elnino, nie roota (bo do roota mam inne) i właścicielem tego co się zainstaluje jest root ?.
Przypadek 1
Ten program któremu zmieniałem uprawnienia w doublecmd to paczka appimage, to oprogramowanie oparte na JS+HTML+CSS, jeden plik który tak jest przygotowany że ma wszystko w sobie, nie integruje się z systemem, to cos jak softportable, jedyne co potrzebuje to środowisko uruchomieniowe electron. Program pobrałem z oficjalnej strony projektu: https://electronjs.org/apps przeglądarką, więc właścicielem był elnino, nie root. Doublecmd zainstalowany przez pacmana, więc właścicielem jest root. Po ściągnięciu uprawnienia wyglądały tak:

-rw-r--r-- 1 elnino elnino 86771750 01-13 15:11 p3x-onenote-2019.1.12-5-x86_64.AppImage

Ustawiłem właścicielowi prawo do wykonywania w doublecmd i tak jak pisałem z poziomu double się uruchamiał a z poziomu systemowego managera nie. Ta sytuacja wystapiła w poprzedniej instalce manjaro. Powtórzyłem cały proces w nowej instalce systemu i wszystko zadziałało jak trzeba. Uprawnienia zmienione w doublecmd, a program uruchomiony w systemowym menedżeże. Więc nie wiem co się wtedy stało ale teraz to działa.
Przypadek 2
Program zainstalowany przez pacman z oficjalnych repo systemu jako sudo, tak jak pisałem wyżej, ale język programu tylko angielski. Tak wyglądają uprawnienia do katalogu programu po zainstalowaniu:

drwxr-xr-x   5 root root  4096 01-02 01:38 keepass

Pobieram ze strony programu plik języka pl, i postępuje zgodnie ze wskazówkami jak go zainstalować. Uruchamiam w środowisku graficznym, wybieram z menu wygląd > zmień język, następnie otwórz katalog i w tym momencie brak uprawnień, bo jak się okazuje katalog Language nie istnieje, ale w momencie otwórz katalog program próbuje go utworzyć, a przecież elnino, czyli inni nie mają praw do zapisu. Noi wtedy odpalam program z konsoli jako sudo i podaje hasło elnino, nie roota. I dalej otwórz katalog i w tym momencie katalog jest tworzony dla plików dodatkowych języków. Dopiero teraz kopiuje plik języka do utworzonego przez program katalogu. Teraz mam go już w oknie wyboru języka w programie. Dokonuje jakichś tam jeszcze zmian, zapisuję. Zmiany są obecne jeśli program uruchomię z terminala z opcją sudo i podaniem hasła elnino. Uruchamiam ze środowiska graficznego i wszytkie zmiany musiałem wprowadzić od nowa, bo ich nie ma. Dopiero teraz po zapisaniu były już widoczne nawet jeśli uruchamiałem ponownie w środowisku graficznym.
Jak to robić żeby dwukrotnie nie wprowadzać tych zmian ?, czy zmieniać właściciela katalogu, czy dopisać elnino do grupy root, jak się to powinno poprawnie robić żeby nie zepsuć bezpieczeństwa, i ogólnej filozofii, na co i komu pozwolić w systemie.


#6

Właśnie doinstaloowalem Deepin na mój laptop firmowy. Ma swoje ograniczenia, ale póki co udało mi się go jakoś ustawić pod siebie, chociaż nie każda opcja działa jakbym chciał (czyli jak na Plazmie). Ale póki co to ładne i proste środowisko, które uruchamia się szybciej niż Plazma i przez swoją prostotę ułatwi skupienie się na pracy (no i może przypominać mocno windows 10, który musimy mieć chociaż na jednym stanowisku w pracy, więc generalnie workflow mam wypracowany pod windowsa a deepin dobrze się wpasowuje do tego, tyle że wygląda ładniej).

Każda instalacja pakietów wymaga uprawnień roota, dlatego używasz sudo pacman -S. Programy instalują się na partycji root, tylko tworzą dodatkowo configi i ewentualnie pliki użytkownika w /home/ i tam są trzymane wszelkie spersonalizowane pod usera rzeczy.

Tak, hasło roota i sudo mogą być inne, ale już wyjaśniam.
Jak chcesz permanentnie przejść na roota to możesz się zalogować na niego komendą:

su

Czyli “super user”. Wtedy system zapyta się o hasło roota. Jednak może być tak, że możesz nie znać hasła roota, ale być uprzywilejowanym użytkownikiem sudo, czyli z możliwością TYMCZASOWEGO zwiększenia przywilejów do roota. Dlatego jak użyjesz sudo, to system pamięta to przez ileś minut a potem prosi ponownie o hasło. Jednak dzięki sudo dalej możesz się permanentnie przełączyć na roota w terminalu używając komendy:

sudo su

Wtedy zostaniesz poproszony o TWOJE hasło sudo, a nie roota.

Każda akcja, która zmienia pliki roota, lub dodaje, modyfikuje coś na partycji root musi być wykonana albo jako root, albo jako poprzez sudo. Jednak większość programów tworzy z automatu pliki użytkownika i możesz ich używać bez dodatkowych przywilejów, jeśli tylko ich działanie nie wpływa na system czy inne globalne ustawienia.

Przypadek 1
AppImage są robione róznie. Jedne z automatu integrują się z systemem (dopisują plik .desktop do ~/.local/share/applications/), inne tego nie robią - zależy to od twórcy programu. Jeśli AppImage się nie integruje to jest automatyczny skrypt - paczka, którą można zainstalować i ona zrobi to za ciebie. Można tam zarządzać plikami appimage. Nazywa się to appimagelauncher.

Niektóre pliki appimage już od razu mają takie prawa wykonywania, w innych muszą być nadane. Jak widzę, Deepin może to z łatwością robić robiąc prawo-klik->właściwości->zarządzanie uprawnieniami.

Problem wydaje się być związany z doublecommander. Nie używam tego programu, więc trudno mi powiedzieć co poszło wtedy nie tak. Jak nie działa w innym programie to warto spróbować w innym a w ostateczności w terminalu.

Musisz też pamiętać, że jeśi masz jakąś partycję ntfs to system z automatu nada jej własność root root xrwxrwxrw i tego nie zmienisz, bo ntfs nie wspiera praw dostępu lub właśności linuxa. Możesz co najwyżej w fstab ustawić własność partycji na użytkownika i wtedy wszystkie pliki na niej to przejmą. Piszę ci o tym, żebyś się kiedyś nie zdziwił, że nawet komenda chown i chmod nie działają wtedy.

Przypadek 2
Ciągle nie podałeś nazwy programu ani gdzie umieszczasz plik… Więc mogę tylko snuć domysły. Coś zrobiłeś źle. Instrukcje na stronach często są do kitu (przestarzałe lub pod konkretną dystrybucję) i nie uwzględniają różych rzeczy. Trzeba zrozumieć co robisz, żeby wykonać to poprawnie. Czasem po prosty program jest przestarzały i w obecnych systemach nie potrafi zrobić tego co kiedyś, bo dodatkowe zabezpieczenia wprowadzono. Podasz konkrety to może uda mi się pomóc.

EDYCJA: Teraz zauważyłem, że pisze, że chodzi ci o keepas.
Znalazłem instrukcje:

Po rozpakowaniu plik należy skopiować do katalogu programu KeePass, a w samym programie skorzystać z menu: View ->Change Language. Aby zmiany zaistniały należy ponownie uruchomić program.

To jest instrukcja pod Windows…
Nie wiem czy to będzie działać na Linuxie, ale musisz odszukać folder keepas w ~/.local/share/ i tam skopiować ten plik jak użytkownik. Jeśli faktycznie wrzucasz do do roota to nie pójdzie ci to w ten sposób. Nie używam tego programu, więc mogę spekulować, że opcja utworzenia folderu do tłumaczenia jest pod windowsa i nikt tego porządnie nie przerobił pod Linuxa. Bywa i tak.

Ja tam używam Bitwarden do haseł. Jest open source i działa super. Jak boisz się w cudzej chmurze przechowywać nawet zaszyfrowane pliki to możesz zainstalować Bitwardena na własnym serwerze. Jest bardzo dużo różnorodnych rozwiązań jeśli chodzi o menadżery haseł.


#7

To co napiszę pewnie nie za wiele wniesie ale spróbuję trochę wyklarować i podsumować temat.
Root to także użytkownik więc wszytko co otwierasz za pomocą sudo będzie skonfigurowane dla użytkownika root. W większości przypadków jeśli np otworzysz menedżer plików w ten sposób motyw jest ustawiony na domyślny (prawdopodobnie dlatego żeby odróżnić użytkownika od root aby nie zrobić sobie krzywdy). Podsumowując root i użytkownik mają własne ustawienia.

Co do problemów z uprawnieniami. Ile razy czytam, tym mniej rozumiem o co Ci chodzi :smiley:

Masz jeszcze przyzwyczajenia z windy heh W przypadku Linuxa jeśli jakiś program jest repozytorium i ma tłumaczenie to nie musisz szukać dodatkowych plików po stronach. Jeśli masz ustawiony system na język Polski to każdy program (jeśli ma tłumaczenie) nagra się od razu z translacją. Jak wyżej wspomniał Michał. Jeśli domyślnie KeePass nie ma ustawionego języka Polskiego, otwórz zakładkę Tools > General > Basic Settings > Language możesz wybrać sobie język :slight_smile: (nie wiem której wersji używasz, ja śmigam na społecznościowej KeePassXC i nie miałem żadnych problemów od kiedy pamiętam).

Ta sama zasada tyczy się wtyczek itp najpierw szukaj w repozytorium. Używaj Pamac’a, wiem wiem to dla noobów i prosy używają tylko CLI. Jeśli w nim czegoś szukasz to przy okazji pokazuje też powiązane oprogramowanie, a także te z AUR (jeśli włączysz w ustawieniach / z reguły jest wyłączony).

Podsumowując moją chaotyczną wypowiedz, musisz wyzbyć się przyzwyczajeń z poprzedniego systemu :slight_smile:


#8

Dzięki chłopaki za zainteresowanie i poświęcony czas. Człowiek z każdej lekcji coś wyniesie i będzie może coraz lżej z tym linuxem.


#9

Musisz myśleć pozytywnie, trzeba być bardzo upartym żeby używając Linux’a niczego się nie nauczyć :smiley: Im dłużej korzystasz, tym więcej się uczysz działania systemu nie koniecznie rozwiązując od razu każdy problem :slight_smile: Samo wertowanie postów na forum zawsze coś daje, nie trzeba od razu wszystkiego rozumieć. Zawsze ma się chociażby świadomość, że komuś też się coś przydarzyło i jest na to rozwiązanie, prostsze lub trudniejsze :slight_smile:


#10

Zgadza się.

Dodatkowo zepsucie systemu parę razy też jest normalką. Nowicjusz kombinuje, bawi się, ale nie wie do końca wie co robi, więc potem wszystko może zacząć się sypać. Chyba każdy przeszedł przez tą fazę, niektórzy nigdy z niej nie wyszli :wink: .


#11

Myślę, że przynajmniej połowie użytkowników zdarzy się od czasu do czasu coś popsuć :smiley:
Najważniejsze to robić kopie zapasowe plików, w których się grzebie i mieć w szufladzie patyk z systemem w razie chroot’a :slight_smile: Można też pójść lvl wyżej i przyzwyczaić się do pracy z VM, wtedy to już bezstresowe życie :smiley: Na pewnym etapie znudzenia, reinstalacja jest już tak nudna, że zaczyna się naprawiać z przyjemnością :joy: Mam taką teorię, że przy okazji tego powstają różnorakie poradniki ale mogę się mylić :slight_smile: