Nie można zalogować się do DSM (Synology NAS)

3

Wydaje mi się, że zablokowałem dostęp do sieci Synology DSM. Kiedy się zalogowałem, usunąłem wszystkie uprawnienia „przyznane domyślnie”, a jedno z nich (komputer?) Wpłynęło na moje konto administracyjne. Teraz, gdy przechodzę do strony logowania, z powodzeniem wprowadzam nazwę użytkownika, hasło i drugą weryfikację, a następnie pojawia się błąd „Nie masz autoryzacji” (uwaga: moje IP nie jest automatycznie blokowane). Mam wszystkie hasła i mogę uzyskać dostęp do urządzenia poprzez sshi dane przez SMB.

Jedyne, co mogłem zbadać, to miękki reset , ale nie jestem pewien, czy to też naprawi uprawnienia i wolałbym nie niszczyć mojej obecnej konfiguracji.

Czy używając sshmetody mogę naprawić uprawnienia do dodawania niestandardowego użytkownika administracyjnego do logowania do DSM? Badałem niektóre pliki /etcbez większego powodzenia.

użytkownik1156544
źródło

Odpowiedzi:

6

Dzięki potwierdzeniu Tonny'ego o Desktopie udało mi się rozwiązać problem, więc podzielę się tym, ponieważ jest to trochę frustrujące, jeśli tak się stanie ...

Po pomyślnym wstawieniu haseł w DSM błąd wygląda mniej więcej tak: „Nie masz uprawnień do korzystania z tej usługi”.Nie masz uprawnień do korzystania z tej usługi.

Kroki prowadzące do rozwiązania problemu, jeśli przypadkowo zablokowałeś się w dostępie do DSM Web:

  1. Musisz mieć sshdostęp i korzystać z konta administratora. Jeśli nie, prawdopodobnie musisz wykonać miękki reset .
  2. (Używam Linuksa) Wykonaj: ssh your_username@your_synology_ip
  3. cd /etc
  4. grep your_username /etc/passwd(np. grep administrator /etc/passwd) Odpowiedź brzmi: administrator:x:1021:100::/var/services/homes/administrator:/bin/sh jesteś zainteresowany swoim identyfikatorem, w przykładzie:1021
  5. Wykonaj kopię zapasową bazy danych na wszelki wypadek: cp synoappprivilege.db synoappprivilege.db.org
  6. sudo sqlite3 synoappprivilege.db Poprosi o twoje hasło. Wpisz hasło swojej nazwy użytkownika (to samo hasło, którego użyłeś ssh). Wyświetli się monit:

    SQLite version 3.10.2 2016-01-20 15:27:19
    Enter ".help" for usage hints.
    sqlite>
    
  7. Sprawdź tabele (nie są absolutnie konieczne):

    sqlite> .tables
    AppPrivRule
    
  8. Tabela zapytań (nie jest absolutnie konieczna):

     sqlite> select * from AppPrivRule;
    

    Spowoduje to zrzucenie zawartości tabeli, która będzie podobna do tych:

     2|0|SYNO.SDS.WebDAVServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
     2|0|SYNO.SDS.MailServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
     2|0|SYNO.SDS.BackupService.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
     2|0|SYNO.SDS.MailPlusServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
    ...
    
  9. Przywilej, który przypadkowo usunęliśmy, był SYNO.Desktopi prawdopodobnie nie będzie wymieniony w poprzednim poleceniu. Więc musimy go wstawić ( uwaga: użyj mojego identyfikatora użytkownika uzyskanego wcześniej z grep, w moim przypadku 1021):

    sqlite> insert into AppPrivRule VALUES(0,1021,'SYNO.Desktop','0.0.0.0','0000:0000:0000:0000:0000:FFFF:0000:0000','','');
    
  10. Potwierdzenie, że wszystko jest w porządku ...

    sqlite> select * from AppPrivRule;
    
    2|0|SYNO.SDS.WebDAVServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
    ...
    0|1021|SYNO.Desktop|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
    

GOTOWE! Teraz możesz się zalogować.

Po Naprawiłem problem znalazłem to samo rozwiązanie tutaj , ale to było niemożliwe, aby dostać się z wyszukiwarek na pierwszej instancji. Uważaj też insertna to, że w tym linku jest mały błąd.

użytkownik1156544
źródło
1
Cieszę się, że udało mi się skierować cię we właściwym kierunku. I bardzo ładnie napisana odpowiedź. Dobra robota! Masz ode mnie kilka punktów :-)
Tonny
1
Idealna odpowiedź, naprawiona natychmiast.
joopmicroop
1

Ciekawe pytanie. Zacząłem trochę kopać na własnym Syno i wymyśliłem:

Szukaj w / etc / group poprzez ssh. Powinna być linia wyglądająca następująco:

administrators:x:101:john,admin,plex

(„plex” jest dostępny tylko wtedy, gdy zainstalowałeś pakiet Plex.)

Dodaj swoje konto administratora do tej linii. O ile wiem, to jedyna rzecz, która jest potrzebna, aby wejść do zarządzania siecią DSM. Aby uzyskać normalny dostęp do serwera WWW (spersonalizowana strona główna), użytkownik musi również zostać dodany do wiersza „http” w tym samym pliku.

Następnie należy pobrać plik /etc/synoappprivilege.db na komputer (ostrożnie, to plik binarny. Nie kopiuj w trybie tekstowym.)
To jest baza danych SQLite zawierająca rzeczywiste uprawnienia.
Załaduj ten plik do edytora HEX i poszukaj sekcji Pulpit.
Powinno to wyglądać następująco:

YNO.Desktop0.0.0.00000:0000:0000:0000:0000:FFFF:0000:000MW

YNO i MW mogą mieć różne wartości. Ważną częścią są liczby. Powinny być takie same jak powyżej.
Zmień to za pomocą edytora HEX i umieść zmodyfikowany plik z powrotem w Syno (zachowaj kopię zapasową oryginału !!!).

Nie jestem pewien, czy ta zmiana jest wychwytywana automatycznie, więc może być konieczne ponowne uruchomienie w celu aktywacji nowego ustawienia.

Tonny
źródło
Dzięki! Mój użytkownik był już w linii administratorów. Dodałem go również na końcu wiersza http. Próbowałem zalogować się tylko w asyście, ale nie działałem. Jednak teraz próbuję zmodyfikować plik .db, ale nie ma linii z Pulpitem ... może dlatego nie mogę uzyskać dostępu? Być może istnieje sposób na zmodyfikowanie go za pomocą narzędzia sqlite3
user1156544
Rozumiem
wysyłam
Dziękuję Tonny, mimo że już na synoappprivilege.dbciebie patrzyłem , podpowiedziałeś mi, że SYNO.Desktoppowinienem znaleźć rozwiązanie! Uratowałeś mi dzień!
user1156544