Jak przekazać użytkownikowi danych www folder w folderze domowym?


31

Mam folder: /home/myuser/folderA

Chcę dać użytkownikowi danych www dostęp do zapisu do powyższego, podczas gdy „myuser” nadal ma normalny dostęp (ponieważ i tak jest to folder domowy mojego użytkownika).

Z jakich poleceń muszę korzystać?

Uwaga: nie chcę www-datamieć dostępu do żadnych innych folderów w /home/myuser/.

Z góry dziękuję.

Odpowiedzi:


46

Najpierw dodaj się do grupy www-data

usermod -a -G www-data (your username)

Następnie:

chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA

Powinieneś zrobić lewę, chyba że twoje uprawnienia /home/myusernie pozwalają na dostęp innym użytkownikom.

Pierwsze polecenie zmienia własność grupy folderu na własność serwera WWW. Drugie polecenie daje członkom www-datagrupy czytać, prawa zapisu, wprowadź-katalogu, a grupa sflaga będzie upewnić się, że wszystkie pliki, które się utworzone wewnątrz tego katalogu ujęcia www-datajako grupy - jeśli więc utworzyć plik jako użytkownik będzie miał dostęp.myuserwww-data

Uwaga zależy to również od umaskustawień konta użytkownika i serwera WWW: musisz upewnić się, że pliki utworzone w folderze A mają rwdostęp do grupy (i katalogi utworzone w ramach grupy potrzeb rwx)

Jeśli twój serwer nie ma praw dostępu do twojego /home/myuserkatalogu (całkiem rozsądne), to nie wejdzie tam, chyba że zrobisz coś innego. Dwie solówki:

  1. sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA (jest to brzydki hack i musiałby zostać powtórzony po ponownym uruchomieniu. Ale potężna sztuczka, może być również użyta do udostępnienia folderów w więzieniach SSH).

  2. Po prostu przenieś folder współdzielony w inne miejsce, np /home/shared-stuff/folderA.

Druga opcja jest najładniejsza. Powiedzmy, że rzeczy w folderze A są naprawdę publiczne i nie obchodzi cię, kto je zobaczy, możesz to skonfigurować

sudo mkdir -m777 /home/shared-stuff

Następnie możesz umieścić w tym, powiedzmy, folderze A z uprawnieniami jak wyżej, i folderze B, do którego dane www nie powinny mieć dostępu z różnymi uprawnieniami, np.

$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data   4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser     4096 Jan 17 21:46 folderB

co jest sw g+rwxsśrodku
— T.Todua

„Grupa lepka”. Efekt wyjaśniony w
— akapicie,

6

Innym sposobem jest zmiana nazwy użytkownika bezpośrednio w konfiguracji apache, jeśli jest to twój komputer lokalny i zapisujesz obrazy z innego miejsca, które zmiażdżyłyby wszelkie uprawnienia do tego folderu. Również, jeśli masz tylko 1 użytkownika i nie przejmujesz się danymi www!

$ sudo vi /etc/apache2/apache2.conf

Znajdź użytkownika i grupę i umieść swoje
User <Your User>
Group <Your Group>

$ sudo service apache2 restart

To rozwiązanie nie wydaje się tak bezpieczne, ktoś wie, jakie zagrożenia bezpieczeństwa spowoduje to ustawienie?
— Fleuv

Jestem pewien, że nie jest to bezpieczne, dlatego podałem dokładność tylko komputera lokalnego.
— Shadowbob,

To rozwiązanie zapewnia
— pełny
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.