Jak skopiować pliki do `/ var / www` za pomocą WinSCP?

11

Kiedy próbuję umieścić moje pliki internetowe /var/wwww apache na mojej instancji ec2 Ubuntu, pojawia się błąd informujący, że nie mam uprawnień.

Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3

Jak mogę sobie na to pozwolić lub jaki jest najlepszy sposób kopiowania plików za /var/wwwpomocą WinSCP?

Andrzej
źródło

Odpowiedzi:

15

Otrzymałem ten sam błąd w WinSCP. Jednym z rozwiązań jest zmiana właściciela folderu „/ www /” za pomocą chown. W ten sposób możesz zmusić użytkownika, z którym się zalogujesz, do właściciela zamiast „rootowania” jako właściciela. Używam instancji Amazon Linux zamiast Ubuntu, ale to polecenie działało dla mnie:

sudo chown -R -v ec2-user /var/www/

Użytkownik „ec2-user” to użytkownik, z którym się loguję.

Potencjalnie przydatne linki

chrisfargen
źródło
Twoje prośby o pomoc w ramach odpowiedzi na pytanie innej osoby prawdopodobnie nie otrzymają żadnych odpowiedzi ani pomocnych opinii. Aby to uzyskać, prawdopodobnie lepiej zadać własne pytanie z dokładnymi szczegółami, których potrzebujesz.
killermist
9

Włącz uprawnienia do zapisu dla użytkownika logującego się przez WinSCP. Można to zrobić na dwa sposoby.

Pierwszym sposobem jest zmiana uprawnień do folderu, aby umożliwić każdemu pisanie w nim. To nie jest najlepsze bezpieczeństwo.

chmod 777 /var/www


Drugim sposobem jest dodanie użytkownika do grupy będącej właścicielem katalogu, a następnie ustawienie uprawnień dla grupy do zapisu w katalogu.

Dowiedz się, kto jest właścicielem katalogu:

ls -l /var | grep www

Zobaczysz coś takiego: drwxr-x --- 9 www-data www-data 4096 14 lipca 2009 2009 Ważne jest, aby zwrócić uwagę na dwie nazwy root i root. W tym przypadku właścicielem katalogu jest www-data, a grupą katalogu jest www-data. Teraz dodasz użytkownika do grupy danych www.

usermod -G www-data user

Teraz wystarczy dodać uprawnienie do zapisu do grupy.

chmod 770 /var/www

Teraz

ls -l /var | grep www

powinien zwrócić: drwxrwx --- 9 www-data www-data 4096 14 lipca 2009 www

Dzięki temu będziesz mógł pisać do katalogu, nie otwierając przy tym uprawnień do zapisu dla wszystkich.

Chris Ting
źródło
1
lekka korekta dokładności - sudo chmod 777 / var / www - sudo usermod -G www-data (nazwa użytkownika) - sudo chmod 770 / var / www - Może działać w zależności od tego, kim jesteś w twoim przykładzie, ale 'sudo' powinno działać bez względu na to kim jesteś (zakładając, że twój login to / etc / sudoers dla root / admin oczywiście).
bshea,
1

na ec2 to działa dla mnie. zaloguj się do skrzynki za pomocą putta z użytkownikiem „ec2-user” i użyj poleceń:

sudo root
chmod 777 <NAME_OF_FOLDER>

Uwaga: zapewnia to dostęp do zapisu wszystkim użytkownikom.

Powinien być teraz w stanie pisać za pomocą WinScp.

niebieskie niebo
źródło
1

Poniższy samouczek działał dla mnie i zawiera pomocne zrzuty ekranu. Logowanie się jako zwykły użytkownik z uprawnieniami sudo wymagało jedynie ulepszenia kilku opcji WinSCP: http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

Ustaw Protokół sesji / pliku na: SCP, wprowadź adres IP hosta / instancji, port - zwykle 22 i zwykłą nazwę użytkownika. Wprowadź dane uwierzytelniające hasło, jeśli wymaga tego login. Dodaj odpowiedni plik klucza prywatnego użytkownika w Advanced / SSH / Authentication.

Odznaczenie Zaawansowane / SSH / Uwierzytelnianie / próba „interaktywnej klawiatury” powinna umożliwić Advanced / Environment / SCP Shell / Shell / Shell: sudo su - aby zapewnić uprawnienia sudo do dostępu do katalogów serwera WWW jako użytkownik niebędący właścicielem.


Aktualizacja: 08.03.2017

Rejestrowanie w WinSCP może być pomocne w rozwiązywaniu problemów.

winscp.net/eng/docs/logging:

[WinSCP] Rejestrowanie można włączyć na stronie Logowanie w oknie dialogowym Preferencje. Rejestrowanie można również włączyć z wiersza polecenia, używając odpowiednio parametrów / log i / xmllog, co jest szczególnie przydatne w skryptach. W asemblerze rejestrowanie sesji jest włączane przy użyciu Session.SessionLogPath1).

W zależności od błędów połączenia WinSCP, niektóre instalacje serwerów mogą wymagać dodania dyrektywy do pliku (Ubunto, CentOS, other-Linux-Server) / etc / sudoers, aby nie wymagać TTY dla określonego użytkownika. Tworzenie pliku w /etc/sudoers.d/ (przy użyciu narzędzia takiego jak Amazon Command Line Interface lub PuTTY) może być lepszą opcją niż edytowanie / etc / sudoers. Niektóre wersje / etc / sudoers zalecają:

Ten plik MUSI być edytowany za pomocą polecenia „visudo” jako root. Proszę rozważyć dodanie lokalnej zawartości do /etc/sudoers.d/ zamiast bezpośredniej modyfikacji tego pliku. Zobacz stronę podręcznika, aby uzyskać szczegółowe informacje na temat pisania pliku sudoers.

Podczas edycji pliku sudoers (jako root) za pomocą wiersza polecenia należy użyć polecenia „visudo”, aby otworzyć plik, ponieważ parsuje on plik pod kątem błędów składniowych. Pliki /etc/sudoers.d/ są zazwyczaj własnością roota i chmoded z minimalnymi uprawnieniami. Do domyślnego pliku / etc / sudoers można się odwoływać, ponieważ powinien automatycznie mieć zalecane uprawnienia chmod podczas instalacji. np .: 0440 r - r -----.

superuser.com/a/869145:

visudo -f /etc/sudoers.d/somefilename

Defaults:username !requiretty 

Przydatne linki:

  • Stackoverflow: stackoverflow.com/questions/25688850/cloud-init-how-to-add-default-user-to-sudoers-d
    • www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

Forum WinSCP: - winscp.net/forum/viewtopic.php?t=3046 - winscp.net/forum/viewtopic.php?t=2109

Dokument WinSCP: https://winscp.net/eng/docs/faq_su

Za pomocą protokołu SCP można określić następujące polecenie jako niestandardową powłokę na stronie SCP / Shell w oknie dialogowym Zaawansowane ustawienia witryny:

sudo -s

[...]

Zauważ, że ponieważ WinSCP nie może zaimplementować emulacji terminala, musisz mieć wyłączoną opcję sudoers.

Instrukcje w Ubuntu Apache / etc / sudoers zalecają dodawanie dyrektyw do /etc/sudoers.d zamiast bezpośredniej edycji / etc / sudoers. W zależności od instalacji może również działać dodanie dyrektywy do /etc/sudoers.d/cloud-init.

Pomocne może być utworzenie użytkownika testowego SSH z uprawnieniami sudo, wykonując kroki przedstawione w dokumentacji instancji, aby upewnić się, że użytkownik zalecił ustawienia instancji, a wszelkie aktualizacje plików sudoer serwera mogą zostać wprowadzone i usunięte bez wpływu na innych użytkowników.

1 właściciel
źródło
0

Musisz dać użytkownikowi uprawnienia do zapisu, pamiętaj poprzednie uprawnienia za pomocą stat /var/www.

Następnie możesz je zmienić za pomocą sudo chmod 666 /var/wwwi w razie potrzeby zmienić później.

Aby uzyskać więcej informacji, zapoznaj się z innymi instrukcjami obsługi plików w Internecie man chmodi man sudoobok nich.

Tamara Wijsman
źródło