Chcę zapewnić użytkownikom osobistą pamięć masową do przesyłania plików do ich katalogu domowego przez SFTP (chrootowany). Pliki te powinny następnie zostać wyświetlone na naszej stronie internetowej, aby zdecydować, czy powinny zostać zaimportowane do systemu, czy nie. Tak więc serwer WWW (użytkownik danych www) musi mieć dostęp do odczytu / zapisu.

W tej chwili nie mogę uzyskać danych www mogących zapisywać / usuwać te pliki

Po przeczytaniu wielu źródeł i odpowiedzi na ten problem znalazłem się w tej konfiguracji :

  • Właścicielami katalogów domowych są: nazwa użytkownika: www-data
  • Użyłem setgid do zastąpienia grupy każdego przesłanego pliku przez SFTP
  • Dowiedziałem się, że nie mogę aktywnie ustawiać uprawnień do plików po stronie serwera, mogę je ograniczyć tylko za pomocą umask

Jak mogę automatycznie zarządzać udzielaniem zgody „g + w” na każdy przesłany plik przez SFTP, aby użytkownik www-danych mógł usunąć je po przetworzeniu.

Co próbowałem do tej pory:

  • Rozgrywka z umasks (aby dowiedzieć się, że nigdy nie zwiększy praw do pliku)
  • Rozgrywka z ACL, ale tutaj ten sam problem wydaje się zasadą
  • Użyj FTPS zamiast SFTP, aby uzyskać lepszą kontrolę nad takimi rzeczami. Użyłem więc vsftpd, ale nawet przy tym nie mogłem uzyskać lepkiego uprawnienia „g + w” do plików

Czego nie chcę:

  • Użycie rsync lub dowolnego innego serwera (który może się nie powieść) do synchronizacji folderów domowych z dowolnym innym folderem podczas tłumaczenia odpowiednich praw do plików.

Dziękuję bardzo za wszelkie wskazówki!

patriziotomato
źródło