Nowe posty

Autor Wątek: Błąd przy instalacji FreeFileSync w wersji 11.18 jako zwykły użytkownik  (Przeczytany 337 razy)

Offline robi

  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
Bezpośrednia przyczyna : polecenie /usr/bin/sh -c echo $HOME nie wykonuje się na zwykłym koncie bez uprawnień administratora.

System: Mint 20.2 XFCE. Zwykle pracuję na koncie o nazwie robi - zwykłym lokalnym koncie bez uprawnień administratora.

Archiwum zawierające instalator FreeFileSync_11.18_Install.run można ściągnąć z 
https://freefilesync.org/download.php

Instalator uruchamiam jako użytkownik robi który nie ma uprawnień administratora (mój katalog domowy to oczywiście /home/robi).

Po dwukliknięciu na FreeFileSync_11.18_Install.run instalator otwiera terminal i w nim prosi o zgodę na warunki licencji
   Accept the FreeFileSync license terms? [y]es, [n]o y

Jeżeli wciśnie się y to pisze, że
   Niestety użytkownik robi nie ma uprawnień do uruchamiania '/usr/bin/sh -c echo $HOME' jako robi na r-komp.
   HOME environment variable is not set for user "robi".
   <Press a key>

Naciśnięciu dowolnego klawisza kończy działanie instalatora zamykając terminal.

Oczywiście $HOME jest zdefiniowane:
   robi@r-komp:~$ echo $HOME
   /home/robi
   robi@r-komp:~$
ale ponieważ polecenie /usr/bin/sh -c echo $HOME nie zostało wykonane instalator uważa, że zmienna $HOME nie jest zdefiniowana.

Polecenie
   /usr/bin/sh -c echo $HOME
wpisane z palca w terminalu istotnie nie wykonuje się - wydaje się, że do wykonania powyższego są rzeczywiście wymagane uprawnienia roota.
   
Ale poniższa sekwencja komend wykonuje się prawidłowo:
   robi@r-komp:~$ /usr/bin/sh
   $ echo $HOME
   /home/robi
   $ exit
   robi@r-komp:~$

Mam za małą wiedzę by stwierdzić dlaczego tak jest i co zrobić, by naprawić błąd.

Jeżeli można uruchomić FreeFileSync_11.18_Install.run lokalnie bez uprawnień administratora to proszę o poradę jak to zrobić.

Dodatkowy opis: prawidłowa instalacja dla wersji 11.16 (w tym przypadku instalator nie pyta o zgodę na warunki licencji).

Instalator wersji 11.16 działa prawidłowo: FreeFileSync_11.16_Install.run otwiera w terminalu prosty konfigurator.
FreeFileSync można zainstalować globalnie (dla wszystkich użytkowników) lub lokalnie (dla jednego użytkownika w jego katalogu domowym). Mój katalog domowy to /home/robi - został prawidłowo odczytany przez instalator.

   FreeFileSync 11.16 Setup
   -----------------------------
    1. Install for all users:     YES (requires root password)
    2. Installation directory:   /home/robi/FreeFileSync
    3. Create desktop shortcuts: YES
   -----------------------------
   Press a number [1-3] to change settings,
   ENTER to begin installation:

Jeżeli naciśnie się 1 (tak robię) to pokazuje się

   FreeFileSync 11.16 Setup
   -----------------------------
    1. Install for all users:    NO (current user only)
    2. Installation directory:   /home/robi/FreeFileSync
    3. Create desktop shortcuts: YES
   -----------------------------
   Press a number [1-3] to change settings,
   ENTER to begin installation:

Po naciśnięciu ENTER skrypt utworzył katalog /home/robi/FreeFileSync zawierający potrzebne pliki z odpowiednimi uprawnieniami.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2547
  • 1709
    • Zobacz profil
Cytuj
Polecenie
   /usr/bin/sh -c echo $HOME
wpisane z palca w terminalu istotnie nie wykonuje się - wydaje się, że do wykonania powyższego są rzeczywiście wymagane uprawnienia roota.
Cudzysłów powinien teoretycznie pomóc, dzięki temu powinno być traktowane jako jedno polecenie, a nie jak dwa osobne (polecenia).
/bin/sh -c "echo $HOME"

Edycja

Ciekawostka na Linux Mint

$ /bin/sh -c "$(echo $HOME)"
/bin/sh: 1: /home/user: Permission denied

$ /bin/bash -c "$(echo $HOME)"
/bin/bash: /home/user: Jest katalogiem

$ sh -c "echo $SHELL "
/bin/bash

$ sh -c "ps"
    PID TTY          TIME CMD
   4421 pts/1    00:00:00 bash
   5756 pts/1    00:00:00 sh
   5757 pts/1    00:00:00 ps

Edytowane
Dobra nie ważne, u mnie to może być " piaskownica ".
( Po drugie taka ciekawostka moja jest też bez sensu - źle użyte polecenie )
« Ostatnia zmiana: 2022-03-23, 20:22:23 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline robi

  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
Dziękuje @1709!
Istotnie /bin/sh -c "echo $HOME" działa bez problemu.
Jeżeli możesz, to napisz dlaczego /bin/sh -c z dwoma argumentami  (echo $HOME) wymaga uprawnień roota, a z jednym ("echo $HOME") wykonuje się dla zwykłego użytkownika.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2547
  • 1709
    • Zobacz profil
Nie wymaga, po prostu moja komenda była zła
/bin/sh -c "$(echo $HOME)"
próbuje wykonać ścieżkę /home/user co jest bez sensu bo to ścieżka katalogu.
Komunikaty mogą być różne bo
sh na mincie domyślnie jest zlinkowane do /usr/bin/dash
a bash to część /usr/bin/bash

Możesz sprawdzić, bo może coś zainstalowałś
which sh
ls -l /usr/bin/sh

Natomiast wracając do twojego głównego problemu.
Testowałem na maszynach wirtualnych Virtualbox Linux Mint 20.3 Mate zainstalowanym.
i Linux Mint 20.2 Xfce live CD
i na obu nie ma błedu "  '/usr/bin/sh -c echo $HOME'

PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline robi

  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
Na wszelki wypadek zrobiłem upgrade do Mint 20.3 (takiej wersji Ty używałeś), ale nie pomogło. Błąd jest ten sam.
Ale Twój post poddał mi pomysł rozwiązania: wykonanie skryptu instalatora na koncie z uprawnieniami administratora istotnie przebiega bez kłopotów, co sprawdziłem u siebie na takim koncie (u Ciebie też to działało).

Tu uwaga.

W trakcie instalacji Mint tworzy pierwsze konto typu Własne. Ma ono uprawnienia administratora. Na takim koncie można wykonać np. sudo. Również domyślny użytkownik live CD ma takie uprawnienia. Jest to konieczne dla skonfigurowania systemu.
Na takim koncie skrypt instalatora wykonuje się bez błędu.

Mój problem dotyczy konta typu "Użytkownik pulpitu". Takie konto trzeba stworzyć ręcznie. Należy wejść w "System" --> "Użytkownicy i grupy" wybrać opcję "Dodaj" i  typ "Użytkownik pulpitu". Takie konto nie ma uprawnień administratora i nie można na nim np. wykonać sudo - dlatego z ostrożności tworzę takie konto do zwykłej pracy.

Wtedy ma się do dyspozycji dwa konta: to z uprawnieniami administratora i takie ograniczone typu "Użytkownik pulpitu".

I właśnie na koncie typu "Użytkownik pulpitu" instalator wywala opisywany wcześniej błąd instalacji.

To nasuwa może nie do końca satysfakcjonujące, ale jednak rozwiązanie: należy czasowo zmienić rodzaj konta na "Własne" z uprawnieniami administratora, wykonać skrypt instalacyjny i po tym przywrócić typ konta "Użytkownik pulpitu".

Na razie tego jeszcze nie zrobiłem, bo może istnieje prostsze rozwiązanie.
« Ostatnia zmiana: 2022-03-26, 09:27:22 wysłana przez robi »

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2547
  • 1709
    • Zobacz profil
To prawda, pierwsze konto na Linux Mint jest trochę inne niż tworzone pozostałe konta.
Np. pozostałe konta nie są członkiem grupy sudo , adm i może jeszcze czegoś.
I rzeczywiście na tych pozostałych kontach tak jak piszesz problem występuje.
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.