Câu hỏi xác thực Sublime Text 3 khi lưu tài liệu


11

Tôi đang sử dụng Sublime Text để phát triển web. Mỗi lần tôi cố lưu các thay đổi (Ctrl + S), cửa sổ xác thực sẽ bật lên:

Cần xác thực để chạy '/ bin / cp' với tư cách là siêu người dùng

Rõ ràng, khi tôi nhập mật khẩu, Sublime lưu các thay đổi chính xác. Nhưng khi tôi nhấn Hủy , một cửa sổ khác sẽ xuất hiện lỗi:

Lỗi: Administrator_copy_file (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) không thành công: Việc ủy ​​quyền không thành công

Vì tôi còn khá mới với Ubuntu nên tôi không biết làm cách nào để thoát khỏi ủy quyền đó bật lên. Tôi có tất cả các quyền đối với thư mục / var / www .


Bạn có chắc chắn rằng người dùng của bạn có quyền ghi /var/wwwmà không cần root (ví dụ như sử dụng sudo)?
David Bailey

@DavidBailey Tôi có quyền ghi /var/wwwnhưng không cho các thư mục con. Tôi đã thực hiện chowntrên /var/wwwnhưng khi tôi đã kiểm tra quyền truy cập vào các thư mục con, ex. /var/www/First_Site, nó thuộc về www-data. Tôi nghĩ rằng chowntrên một thư mục chính cũng sẽ cấp cho tôi quyền đối với tất cả các thư mục con / tệp trong đó.
SONGE 27/05/2015

Câu trả lời:


6

Bạn không được phép viết thư cho /var/www/Rest_Of_Path_Here. ST3 đang cố gắng nâng UID của mình để viết là người dùng chính xác (do đó là dấu nhắc sudo). Tôi không biết nó có thể làm điều này nhưng tôi đã thử nó và nó hoạt động để bạn đi.

Có một số cách bạn có thể khắc phục điều này:

  1. Cho phép người dùng của bạn viết các tập tin trực tiếp . Vì vậy, nhiều lựa chọn ở đây:

    • chowncác tập tin để bạn sở hữu chúng. Điều này có thể làm đảo lộn mọi thứ đang chạy như những người dùng khác cũng có thể cần phải viết, ví dụ: máy chủ web chạy dưới dạng người dùng www. Bạn có thể cần phải thay đổi những gì họ chạy quá.
    • Thêm người dùng của bạn vào www-datanhóm và thay đổi mặt nạ tệp để 774các thành viên của nhóm có thể viết / thực thi.
    • Thay đổi mặt nạ tệp để người dùng khác có thể viết (ví dụ 777) ... Nhưng điều này khá rủi ro nếu đã có thứ gì đó độc hại trên máy chủ.
    • Sử dụng ACL để cho phép người dùng của bạn viết mà không làm phiền khung quyền tiêu chuẩn.
  2. Thay đổi quy trình công việc của bạn để ghi vào hệ thống kiểm soát phiên bản (ví dụ: git) với tư cách là người dùng của bạn và sau đó có một tập lệnh đang chạy khi người dùng khác kiểm tra nó. Điều này mang lại lợi ích khác.

  3. Chạy ST3 như một người dùng có thể viết ở đó:

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

    Điều này là khá nhiều xấu xí hơn là chỉ sửa các tập tin.


Bạn đúng rồi. Tôi chỉ có quyền đối với thư mục / var / www , nhưng không có tất cả các thư mục con trong đó, thuộc về www-data. Tôi nghĩ giải pháp tốt nhất ở đây sẽ là thêm người dùng của tôi vào www-datanhóm.
BÀI HÁT 27/05/2015

Chỉ để cho bất cứ ai biết. Thêm người dùng của tôi vào www-datanhóm đã giải quyết vấn đề. Tôi chỉ phải khởi động lại hệ thống sau này. Cảm ơn bạn @Oli.
BÀI HÁT 27/05/2015

4

Tôi có cùng một vấn đề và có thể giải quyết nó bằng cách cung cấp cho người dùng quyền vào thư mục cụ thể mà tôi phải chỉnh sửa trong văn bản Sublime 3. Tôi đã sử dụng các lệnh sau:

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

Tôi nghĩ rằng nó có thể hữu ích cho những người khác trong tương lai.


Cảm ơn rất nhiều :)
ivahidmontazer

0

Thêm người dùng của bạn vào nhóm người dùng quản trị viên bằng một trong những điều dưới đây dựa trên phiên bản Ubuntu bạn đang sử dụng. Hãy thử cả hai:

sudo usermod -a -G admin username

HOẶC LÀ

sudo usermod -a -G sudo username

Nếu bạn đã ở trong nhóm quản trị, hãy thử một chownthư mục.


Tại sao? Có mọi gợi ý rằng họ đã thuộc nhóm sudo / admin (nó hoạt động khi họ đặt mật khẩu của họ vào).
Oli

Có thể chownsẽ làm @Oli
Sharad Gautam

0

Tôi có cùng một vấn đề, cố gắng chỉnh sửa tệp của máy chủ apache của tôi với văn bản cao siêu và tôi không muốn làm hỏng sự cho phép của máy chủ web của mình. Thay đổi tệp của bạn g + w và đưa người dùng của bạn vào nhóm dữ liệu www không phải là một ý tưởng rất an toàn.

Những gì tôi sẽ khuyên là sử dụng plugin SFTP cho văn bản cao siêu:

  • sao chép tệp của máy chủ web của bạn vào một thư mục thuộc về người dùng của riêng bạn
  • cấu hình plugin SFTP với:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

Không cung cấp mật khẩu trong cấu hình vì đây cũng là một lỗ hổng bảo mật lớn.

Sublime-text sẽ yêu cầu bạn nhập mật khẩu một lần và sau đó sẽ ghi nhớ nó cho phiên. Sau mỗi lần lưu tệp, nó sẽ mở một phiên sftp sang localhost và sẽ ghi tệp vào đĩa với người dùng thích hợp


0

Thực hiện các thao tác sau trong thiết bị đầu cuối Linux / Unix của bạn:

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

Đã thử -R 775và không hoạt động nên -R 777cũng có mẹo mặc dù tôi đã cấp quyền ghi cho tất cả dự án

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.