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ę.

nLinked
źródło

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
artfulrobot
źródło
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
Shadowbob
źródło
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