Jak zresetować hasło admina/odpalić occ w Nextcloud AIO?

jaszczur.eu 9 miesięcy temu

W skrócie – Nextcloud AIO to all-in-one, czyli wszystko w jednym . Jest to rekomendowany, „oficjalny” sposób na instalację Nextcloud’a na swoim własnym sprzęcie. Można to zainstalować bardzo prosto, np. pobierając oficjalny plik compose dla Dockera i odpalając go manualnie czy np. tworząc stack w Portainerze. W rezultacie dostaniemy wszystkie niezbędne usługi jako zestaw ładnie zgranych kontenerów.

…Problem

Nextcloud jest, przynajmniej dla mnie, bardzo bezobsługowy. Odkąd zacząłem bawić się w self-hosting zawsze mam go pod ręką, a wersja AIO znacząco uprościła procedurę instalacji. Nextcloud po prostu działa, a korzystam z niego w 99% do współdzielenia plików pomiędzy urządzeniami (taki domowy Dropbox) więc rzadko bywam na webowym interfejsie. W zasadzie w swoim bieżącym setup’ie na konto admina logowałem się tylko raz, podczas instalacji i dodawania użytkowników. No i tu pojawia się problem – z jakichś przyczyn nie zapisałem wtedy hasła admina w swoim Vaultwardenie.

Jak zmienić/zresetować hasło admina?

Dokumentacja podaje 3 sposoby, ja od razu przejdę do tego, które może nie jest najszybsze, ale za to jest trudne . Plus jest taki, iż zadziała tak długo jak masz dostęp do maszyny na której odpaliłeś Nextclouda – a więc jest dosyć uniwersalne, nie wymaga np. poprawnie skonfigurowanej wysyłki e-maili.

Chodzi oczywiście o occ. Jest to szwajcarski scyzoryk Nextclouda, a więc Command Line Interface (CLI) pozwalające, poza resetowaniem haseł, wykonać wiele innych zadań serwisowych.

Polecenie occ należy uruchomić wewnątrz kontenera Nextcloud’a, z adekwatnymi parametrami. Oficjalna dokumentacja Nextcloud podaje tutaj:

$ sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin Enter a new password: Confirm the new password: Successfully reset password for admin

Ta istotna część to occ user:resetpassword admin.

No… tylko w którym kontenerze? W nextcloud-aio-nextcloud rzecz jasna

Rozwiązanie

Podsumowując – zresetować hasło admina można w 2 krokach. Wchodzimy do naszego kontenerka…

$ docker exec -it nextcloud-aio-nextcloud /bin/bash

(z małym zastrzeżeniem iż jeżeli dostajesz błąd permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get „http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/nextcloud-aio-nextcloud/json”: dial unix /var/run/docker.sock: connect: permission denied) to musisz dać sudo przed docker.

Teraz możemy zmieniać hasło, przy czym polecenie z oficjalnej dokumentacji w tym kontenerze nie zadziała. Polecenie occ jest tutaj w innym folderze, ale na szczęście folder ten jest w zmiennej środowiskowej PATH więc nie trzeba go podawać. Można, po prostu:

$ sudo -u www-data php occ user:resetpassword admin

Alternatywnie – możesz też załatwić wszystko w jednej linii nie wchodząc do kontenera, z shella maszyny na której stoi Nextcloud. Na marginesie, to jest właśnie ten sposób który, znajdziesz w dokumentacji dla AIO na GitHub . Tzn. jeżeli raczysz tam poszukać, bo mi ten pomysł do głowy wpadł późno… A więc:

$ sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ user:resetpassword admin

I gotowe . jeżeli potrzebujesz wykonać inną funkcję dzięki occ należy zmienić po prostu 2 ostatnie parametry w powyższym przykładzie (a więc user:resetpassword admin)

OK – przebyłaś/eś daleką drogę. Popatrz teraz chwilę na to zdjęcie . Zrobiłem je w drodze od Klienta do hotelu, w Qingdao w Chinach, gdzieś w okolicy 2014 roku.

Peace

Idź do oryginalnego materiału