Питання аутентифікації піднесеного тексту 3 під час збереження документа


11

Я використовую Sublime Text для веб-розробки. Кожен раз, коли я намагаюся зберегти зміни (Ctrl + S), з'являється вікно автентифікації:

Для запуску "/ bin / cp" як суперкористувача потрібна автентифікація

Очевидно, що при введенні пароля Sublime зберігає зміни правильно. Але коли я натискаю Скасувати , з'являється інше вікно із помилкою:

Помилка: administrator_copy_file (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) не вдалося: авторизація не виконана

Оскільки я абсолютно новачок у Ubuntu, я не знаю, як позбутися цього спливаючого авторизації. У мене є всі дозволи на папку / var / www .


Ви впевнені, що ваш користувач має права на запис, /var/wwwне використовуючи root (наприклад, використовуючи sudo)?
Девід Бейлі

@DavidBailey У мене є дозволи на запис, /var/wwwале не в папки. Я зробив chownна /var/wwwале коли я перевірив дозволу на вкладені папки, напр. /var/www/First_Site, воно належить www-data. Я думав, що chownв головній папці дадуть мені дозволи і всі папки / файли в ній.
ПІСНЯ

Відповіді:


6

Ви не маєте дозволу писати /var/www/Rest_Of_Path_Here. ST3 намагається підвищити свій UID для написання як правильний користувач (звідси підказка sudo). Я не знав, що це може зробити, але я протестував це, і він працює, так що ви йдете.

Є кілька способів виправити це:

  1. Дозвольте вашому користувачу безпосередньо писати файли . Стільки варіантів тут:

    • chownфайли, тож ти їм володієш. Це може засмутити речі, які працюють, як і інші користувачі, які, можливо, також повинні записувати, наприклад веб-сервер, що працює як www-user. Можливо, вам доведеться змінити те, що вони також запущені.
    • Додайте свого користувача до www-dataгрупи та змініть маску файлу, щоб 774члени групи могли писати / виконувати.
    • Змініть маску файлу, щоб інші користувачі могли писати (наприклад, 777) ... Але це досить ризиковано, якщо на сервері вже є щось шкідливе.
    • Використовуйте ACL, щоб дозволити користувачеві писати, не порушуючи стандартні рамки дозволів.
  2. Змініть свій робочий процес, щоб записати його в систему контролю версій (наприклад, git) як ваші користувачі, а потім запустіть сценарій, коли інший користувач перевірить це. Це несе в собі інші переваги.

  3. Запустіть ST3 як користувач, який може там писати:

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

    Це набагато гірше, ніж просто виправити файли.


Ти правий. Я маю права лише на папку / var / www , але не на всі вкладені в неї папки, до яких належить www-data. Я думаю, що найкращим рішенням буде додати мого користувача до www-dataгрупи.
ПІСНЯ

Просто, щоб хтось знав. Додавання мого користувача до www-dataгрупи вирішило проблему. Мені просто довелося перезавантажувати систему після цього. Дякую @Oli.
ПІСНЯ

4

У мене була та сама проблема, і я зміг її вирішити, надавши користувачеві право на конкретну папку, яку я повинен був редагувати в Sublime text 3. Я використав такі команди:

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

Я думаю, що це може бути корисним для інших у майбутньому.


Велике спасибі
:)

0

Додайте свого користувача до групи користувачів адміністратора одним із наведених нижче на основі версії Ubuntu, яку ви використовуєте. Спробуйте обидва:

sudo usermod -a -G admin username

АБО

sudo usermod -a -G sudo username

Якщо ви вже в групі адміністратора, спробуйте в chownпапці.


Чому? Існує всяке припущення, що вони вже в групі sudo / admin (працює, коли вони вводять свій пароль).
Олі

Можливо, chownзаповіт буде @Oli
Шарад Гаутам

0

У мене така ж проблема, намагаюся редагувати файл мого сервера apache з піднесеним текстом, і я не хочу псувати з дозволу свого веб-сервера. Зміна файлів g + w та переведення користувача в групу даних www - не дуже безпечна ідея.

Що б я порадив, це використовувати плагін SFTP для піднесеного тексту:

  • копіювати файл веб-сервера у папку, що належить вашому власному користувачеві
  • налаштуйте плагін SFTP за допомогою:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

Не вказуйте пароль у конфігурації, оскільки це також є головним отвором у безпеці.

Sublime-text один раз попросить вас пароль, а потім запам'ятає його під час сеансу. Після кожного збереження файлу він відкриє сеанс sftp для localhost і запише файл на диск з відповідним користувачем


0

Виконайте наступне у своєму терміналі Linux / Unix:

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

Спробував -R 775і не працював, тому -R 777і трюк не зробив, хоча я дав дозвіл на написання для всіх проектів

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.