Ustawiasz uprawnienia na folderach QNAP, wszystko działa, a na drugi dzień znowu masz problem z dostępem? Użytkownicy nie mogą zapisywać plików do folderów, w których wczoraj jeszcze mogli? Klasyczny scenariusz – ustawiasz RW na Folder, wychodzisz, wracasz rano i uprawnienia wróciły do stanu wyjściowego.
Zanim zaczniesz resetować NAS-a, przeinstalowywać firmware albo grzebać w ACL-ach – sprawdź crontab. Bardzo prawdopodobne, że winowajcą jest systemowe zadanie ImR_all, które co noc nadpisuje Twoje uprawnienia.
Co to jest ImR_all i dlaczego psuje uprawnienia
W domyślnej konfiguracji QNAP w crontabie znajdziesz wpis:
0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia
To zadanie uruchamia się codziennie o 3:00 w nocy i wykonuje „miękki” reset indeksowania oraz uprawnień na folderze /Qmultimedia (alias do /share/MD0_DATA/Multimedia). Jest to element systemu Multimedia Console, który odpowiada za indeksowanie plików multimedialnych – zdjęć, filmów, muzyki.
Problem polega na tym, że ImR_all potrafi nadpisać uprawnienia, które ręcznie ustawiłeś na folderach i podfolderach w obrębie Multimedia. Efekt – Twoje niestandardowe ACL-e i ustawienia dostępu wracają do stanu „domyślnego” każdej nocy.
Objawy problemu
Jeśli widzisz którykolwiek z tych objawów, prawdopodobnie ImR_all jest winowajcą:
- Uprawnienia na folderze Multimedia resetują się po nocy
- Użytkownicy tracą dostęp do podfolderów, który dzień wcześniej działał
- Zmiana uprawnień w panelu QTS nie „trzyma się” dłużej niż kilka godzin
- W File Station lub przez SMB nagle pojawia się „Access Denied” na folderach, które wcześniej były dostępne
- Po ręcznym ustawieniu uprawnień przez SSH (
chmod,setfacl) zmiany znikają następnego dnia
Rozwiązanie – wyłączenie ImR_all w crontabie
Rozwiązanie jest proste – trzeba zakomentować lub usunąć wpis ImR_all z crontaba. Wymaga to dostępu SSH do NAS-a.
Krok 1: Włącz SSH na QNAP
- Zaloguj się do panelu QTS jako administrator
- Przejdź do Panel sterowania → Usługi sieciowe i plików → Telnet/SSH
- Zaznacz Zezwalaj na połączenie SSH
- Ustaw port (domyślnie 22, ale rozważ zmianę na niestandardowy, np. 2222, jeśli NAS jest dostępny z internetu)
- Kliknij Zastosuj
Krok 2: Połącz się z NAS przez SSH
Z komputera z Windows użyj PuTTY lub wbudowanego terminala:
bash
ssh admin@ADRES_IP_QNAP
Na macOS / Linux po prostu otwórz terminal i wpisz powyższe polecenie. Zaloguj się danymi administratora QNAP.
Krok 3: Zrób backup crontaba
Zanim cokolwiek zmienisz – kopia zapasowa:
bash
cp /etc/config/crontab /etc/config/crontab.backup
Krok 4: Edytuj crontab
Otwórz plik crontaba w edytorze:
bash
vi /etc/config/crontab
Znajdź linię:
0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia
Zakomentuj ją, dodając # na początku linii:
#0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia
Szybka ściągawka vi:
- Naciśnij
iżeby wejść w tryb edycji - Dodaj
#na początku linii - Naciśnij
Esc - Wpisz
:wqi naciśnijEnterżeby zapisać i wyjść
Krok 5: Załaduj nowy crontab i zrestartuj cron
To kluczowy krok – samo zapisanie pliku nie wystarczy. QNAP wymaga jawnego załadowania crontaba:
bash
crontab /etc/config/crontab && /etc/init.d/crond.sh restart
Krok 6: Zweryfikuj zmianę
Sprawdź, czy Twoja zmiana została zastosowana:
bash
crontab -l | grep ImR_all
Jeśli wszystko poszło dobrze, powinieneś zobaczyć zakomentowaną linię z # na początku lub brak wyniku (jeśli usunąłeś linię zamiast komentować).
Dlaczego zmiana w crontabie wymaga dodatkowego kroku
Na standardowym Linuxie edytujesz crontab poleceniem crontab -e i zmiany od razu działają. Na QNAP jest inaczej – system trzyma „źródło prawdy” w pliku /etc/config/crontab i trzeba je jawnie załadować poleceniem crontab /etc/config/crontab.
Co więcej – nie używaj crontab -e na QNAP. Zmiany wprowadzone tą komendą są tymczasowe i znikną przy następnym restarcie lub aktualizacji systemu, bo QTS nadpisze je zawartością z /etc/config/crontab.
Poprawna procedura to zawsze:
- Edytuj
/etc/config/crontab - Załaduj:
crontab /etc/config/crontab - Restart crona:
/etc/init.d/crond.sh restart
Czy wyłączenie ImR_all jest bezpieczne?
Tak, z jednym zastrzeżeniem. ImR_all odpowiada za odświeżanie indeksu multimediów. Jeśli korzystasz z wbudowanych aplikacji QNAP do przeglądania multimediów (Multimedia Station, Photo Station, Video Station), wyłączenie tego zadania sprawi, że nowo dodane pliki nie będą automatycznie indeksowane w nocy.
Praktycznie nie ma to żadnego znaczenia, jeśli:
- Używasz Multimedia Console z włączonym automatycznym indeksowaniem (to osobny mechanizm)
- Korzystasz z Plex, Jellyfin lub innego zewnętrznego serwera mediów (mają własne indeksowanie)
- Nie korzystasz z wbudowanych aplikacji multimedialnych QNAP
- Multimedia Console jest wyłączona
Nawet jeśli korzystasz z natywnych aplikacji QNAP – ręczne indeksowanie jest dostępne z poziomu Multimedia Console (przycisk „Reindex”).
Dodatkowe porady – naprawianie uprawnień po szkodach
Jeśli ImR_all zdążył już namieszać w Twoich uprawnieniach, oto jak je naprawić.
Sprawdzenie aktualnych uprawnień z SSH
bash
getfacl /share/MD0_DATA/Multimedia
ls -la /share/MD0_DATA/Multimedia/
Reset uprawnień na folderze Multimedia
Jeśli uprawnienia są kompletnie rozwalone, możesz je zresetować:
bash
# Usuń wszystkie ACL
setfacl -R --remove-all /share/MD0_DATA/Multimedia/*
# Ustaw właściciela i grupę
chown -R admin:administrators /share/MD0_DATA/Multimedia
# Ustaw uprawnienia
chmod -R 770 /share/MD0_DATA/Multimedia
Następnie w panelu QTS przejdź do Prawa dostępu → Foldery współdzielone → Multimedia → Edytuj uprawnienia i ponownie ustaw dostęp dla użytkowników/grup. Zaznacz opcję „Zastosuj i zastąp wszystkie istniejące uprawnienia”.
Użycie set_volume_mode
QNAP ma też wbudowane narzędzie do resetowania trybu uprawnień na wolumenie:
bash
/sbin/set_volume_mode
Uruchom je bez parametrów, żeby zobaczyć dostępne opcje. Pozwala to przełączyć wolumin między trybem uprawnień Linuxowych a Windows ACL.
Co jeszcze warto sprawdzić w crontabie
Skoro już jesteś w crontabie, rzuć okiem na inne wpisy, które mogą wpływać na działanie NAS-a. Domyślny crontab QNAP zawiera kilka ciekawych pozycji:
| Wpis | Co robi |
|---|---|
/sbin/vs_refresh | Odświeża konfigurację Video Station |
/sbin/clean_reset_pwd | Czyści tymczasowe hasła po resecie |
/etc/init.d/nss2_dusg.sh | Przelicza użycie dysku (co 15 min) |
/sbin/qfstrim | TRIM na SSD (ważne, nie wyłączaj) |
/etc/init.d/idmap.sh dump | Dump mapowania ID (raz w tygodniu) |
/sbin/notice_log_tool | Rotacja logów |
/etc/init.d/storage_usage.sh | Statystyki użycia pamięci (co 10 min) |
Nie wyłączaj tych zadań bez dobrego powodu – są potrzebne do prawidłowego działania systemu.
Podsumowanie
Problem z samoczynnie zmieniającymi się uprawnieniami na QNAP to klasyczny przypadek „nic nie ruszałem, a samo się zepsuło”. W rzeczywistości QNAP co noc uruchamia zadanie ImR_all, które resetuje uprawnienia na folderze Multimedia.
Rozwiązanie:
- Włącz SSH
- Edytuj
/etc/config/crontab - Zakomentuj linię z
ImR_all - Załaduj crontab:
crontab /etc/config/crontab && /etc/init.d/crond.sh restart - Gotowe – uprawnienia zostaną takie, jakie ustawisz
Qnap uprawnienia
Winowajcą jest systemowe zadanie cron o nazwie ImR_all, które domyślnie uruchamia się codziennie o 3:00 w nocy i resetuje uprawnienia na folderze /Qmultimedia. Aby rozwiązać problem, należy wyłączyć ten wpis w crontabie przez SSH.
ImR_all to wbudowany skrypt QNAP odpowiedzialny za indeksowanie i odświeżanie uprawnień na folderze Multimedia. Uruchamiany jest przez cron z parametrem -soft /Qmultimedia i stanowi część systemu Multimedia Console. Niestety przy okazji potrafi nadpisać ręcznie ustawione uprawnienia ACL.
Połącz się z NAS-em przez SSH, otwórz plik /etc/config/crontab edytorem vi, znajdź linię "0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia" i zakomentuj ją dodając # na początku. Następnie załaduj crontab poleceniem: crontab /etc/config/crontab && /etc/init.d/crond.sh restart
Zaloguj się do panelu QTS jako administrator, przejdź do Panel sterowania, następnie Usługi sieciowe i plików, a potem Telnet/SSH. Zaznacz opcję Zezwalaj na połączenie SSH, ustaw port i kliknij Zastosuj. Połączysz się poleceniem ssh admin@adres_ip_nas.
Na QNAP system trzyma konfigurację crona w pliku /etc/config/crontab. Zmiany wprowadzone przez crontab -e są tymczasowe i znikają po restarcie lub aktualizacji QTS. Poprawna metoda to edycja pliku /etc/config/crontab, a następnie załadowanie go poleceniem crontab /etc/config/crontab i restart crona.
Tak, wyłączenie ImR_all jest bezpieczne. Jedyną konsekwencją jest brak nocnego automatycznego indeksowania multimediów. Jeśli korzystasz z Plex, Jellyfin lub masz włączone automatyczne indeksowanie w Multimedia Console, nie odczujesz żadnej różnicy. Ręczne indeksowanie nadal działa z poziomu Multimedia Console.
Połącz się przez SSH i wykonaj komendy: setfacl -R --remove-all /share/MD0_DATA/Multimedia/* aby usunąć stare ACL, potem chown -R admin:administrators /share/MD0_DATA/Multimedia i chmod -R 770 /share/MD0_DATA/Multimedia. Następnie w panelu QTS ustaw uprawnienia ponownie z opcją "Zastosuj i zastąp wszystkie istniejące uprawnienia".
Połącz się z NAS-em przez SSH jako admin i wykonaj polecenia: getfacl /share/MD0_DATA/Multimedia aby zobaczyć listy ACL oraz ls -la /share/MD0_DATA/Multimedia/ aby sprawdzić uprawnienia Linuxowe, właściciela i grupę poszczególnych plików i katalogów.
Tak, istnieje takie ryzyko. Aktualizacje firmware QTS mogą nadpisać plik /etc/config/crontab i przywrócić domyślne wpisy, w tym ImR_all. Po każdej aktualizacji firmware warto sprawdzić crontab poleceniem crontab -l i w razie potrzeby ponownie zakomentować ten wpis.
Po edycji crontaba i przeładowaniu crona wykonaj polecenie: crontab -l | grep ImR_all. Jeśli linia jest zakomentowana, zobaczysz ją z # na początku. Jeśli ją usunąłeś, polecenie nie zwróci żadnego wyniku. Brak wyniku lub zakomentowana linia oznacza, że zadanie zostało poprawnie wyłączone.




