Pytanie uwierzytelnienia Sublime Text 3 podczas zapisywania dokumentu

11

Korzystam z Sublime Text do tworzenia stron internetowych. Za każdym razem, gdy próbuję zapisać zmiany (Ctrl + S), pojawia się okno uwierzytelniania:

Uwierzytelnienie jest wymagane do uruchomienia „/ bin / cp” jako superużytkownika

Oczywiście, kiedy wprowadzę hasło, Sublime poprawnie zapisuje zmiany. Ale kiedy nacisnę Anuluj , pojawi się kolejne okno z błędem:

Błąd: plik_kopii_administratora (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) nie powiódł się: Autoryzacja nie powiodła się

Ponieważ jestem całkiem nowy w Ubuntu, nie wiem, jak pozbyć się wyskakującego okienka autoryzacji. Mam wszystkie uprawnienia do folderu / var / www .

SONGE
źródło
Jesteś pewien, że użytkownik ma uprawnienia do zapisu /var/wwwbez rootowania (np. Używania sudo)?
David Bailey
@DavidBailey Mam uprawnienia do zapisu, /var/wwwale nie do podfolderów. Zrobiłem chownna /var/wwwale kiedy sprawdziliśmy uprawnienia podfolderów, ex. /var/www/First_Site, należy do www-data. Myślałem, że chownw głównym folderze dadzą mi uprawnienia także do wszystkich podfolderów / plików w nim zawartych.
SONGE

Odpowiedzi:

6

Nie masz uprawnień do pisania /var/www/Rest_Of_Path_Here. ST3 próbuje podnieść swój identyfikator UID, aby zapisać jako poprawny użytkownik (stąd monit sudo). Nie wiedziałem, że może to zrobić, ale przetestowałem to i działa, więc proszę bardzo.

Istnieje kilka sposobów, aby to naprawić:

  1. Pozwól użytkownikowi pisać pliki bezpośrednio . Tak wiele opcji tutaj:

    • chownpliki, więc jesteś ich właścicielem. Może to zakłócać działanie innych użytkowników, którzy również mogą potrzebować pisać, np. Serwer WWW działający jako użytkownik www. Być może będziesz musiał zmienić to, co one działają.
    • Dodaj użytkownika do www-datagrupy i zmień maskę pliku na, 774aby członkowie grupy mogli pisać / wykonywać.
    • Zmień maskę pliku, aby inni użytkownicy mogli pisać (np. 777) ... Ale jest to dość ryzykowne, jeśli na serwerze jest już coś złośliwego.
    • Użyj list ACL, aby umożliwić użytkownikowi pisanie bez naruszania standardowej struktury uprawnień.
  2. Zmień przepływ pracy, aby pisać do systemu kontroli wersji (np. Git) jako użytkownicy, a następnie uruchom skrypt, gdy inny użytkownik go sprawdzi. Niesie to ze sobą inne korzyści.

  3. Uruchom ST3 jako użytkownik, który może tam pisać:

    sudo -u www-data subl /var/www/Rest_Of_Path_Here
    

    Jest to o wiele brzydsze niż tylko naprawianie plików.

Oli
źródło
Masz rację. Mam tylko prawa do folderu / var / www , ale nie do wszystkich podfolderów, do których należy www-data. Myślę, że najlepszym rozwiązaniem będzie dodanie mojego użytkownika do www-datagrupy.
SONGE
Po prostu, aby ktokolwiek wiedział. Dodanie mojego użytkownika do www-datagrupy rozwiązało problem. Po tym musiałem zrestartować system. Dziękuję @Oli.
SONGE
4

Miałem ten sam problem i byłem w stanie go rozwiązać, zapewniając użytkownikowi prawo do określonego folderu, który musiałem edytować w Podniosły tekst 3. Użyłem następujących poleceń:

sudo chmod 775 -R projectname/   
sudo chown username -R projectname/

Myślę, że może to być pomocne dla innych w przyszłości.

Izaak Shrestha
źródło
Dziękuję:)
ivahidmontazer
0

Dodaj użytkownika do grupy użytkowników administratora, wykonując jedną z poniższych czynności w zależności od używanej wersji Ubuntu. Wypróbuj oba:

sudo usermod -a -G admin username

LUB

sudo usermod -a -G sudo username

Jeśli jesteś już w grupie administracyjnej, spróbuj chownw folderze.

Sharad Gautam
źródło
Dlaczego? Istnieją wszelkie sugestie, że są już w grupie sudo / admin (działa, gdy wprowadzą swoje hasło).
Oli
Może chownzrobi @Oli
Sharad Gautam
0

Mam ten sam problem, próbuję edytować plik mojego serwera Apache za pomocą sublime-text i nie chcę zepsuć uprawnień mojego serwera. Zmiana plików g + w i umieszczenie użytkownika w grupie danych www nie jest zbyt bezpiecznym pomysłem.

Radzę używać wtyczki SFTP do wysublimowanego tekstu:

  • zduplikuj plik swojego serwera do folderu należącego do twojego użytkownika
  • skonfiguruj wtyczkę SFTP za pomocą:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

Nie podawaj hasła w konfiguracji, ponieważ jest to również poważna luka w zabezpieczeniach.

Podniosły tekst poprosi Cię o hasło raz, a następnie zapamięta je podczas sesji. Po każdym zapisaniu pliku otworzy sesję sftp na localhost i zapisze plik na dysku z odpowiednim użytkownikiem

Pascal Fournier
źródło
0

Wykonaj następujące czynności w terminalu Linux / Unix:

sudo chmod -R 777 project-name
sudo chown user-name project-name

Próbowałem -R 775i nie działałem, więc -R 777zrobiłem tę sztuczkę, chociaż dałem uprawnienia do zapisu dla wszystkich projektów

Jose Mhlanga
źródło