Thay đổi quyền cho / var / www / html


12

Tôi đã nghiên cứu chủ đề này https://help.ubfox.com/community/FilePermissions trong một thời gian và không thể khiến nó hoạt động vì một số lý do.

Đặc biệt, những dòng này làm tôi quan tâm nhất:

Để thay đổi tất cả các quyền của từng tệp và thư mục trong một thư mục được chỉ định cùng một lúc, hãy sử dụng sudo chmod với -R

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

Đây là những gì tôi đã gõ:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

Sau đó, tôi đã kiểm tra bất kỳ thay đổi trong sftp:

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

Từ đầu ra, rõ ràng thư mục html vẫn chỉ có thể sửa đổi bằng root.

Làm cách nào tôi có thể thay đổi điều này theo cách mà tôi (không phải root) có thể tải tệp lên thư mục html?

Tôi cũng đã thử nghiệm:

Chủ sở hữu của một tập tin có thể được thay đổi bằng cách sử dụng lệnh chown. Ví dụ: để thay đổi chủ sở hữu tệp foobar thành tux:

$ sudo chown tux foobar

Tôi gõ từ máy chủ:

sudo chown mark owner

không có tác dụng


Bạn đang thiếu tùy chọn -r cho đệ quy. Và 777 là - thay đổi chính xác để thực hiện (trừ khi bạn cũng đặt tùy chọn t (bit dính). Câu hỏi: tại sao thư mục trống ở lệnh thứ 2 và chứa đầy index.html ở lệnh thứ 3? ban hành với các tình huống tương tự. sudo chown mark ownerĐiều đó giả sử phải làm gì? Làm thế nào mà bạn giới thiệu một tập tin hoặc thư mục được gọi là "chủ sở hữu" ở đó?
Rinzwind

Để sở hữu một tập tin hoặc thư mục, bạn phải chỉ định ai là chủ sở hữu mới, nhóm (tùy chọn) và tệp hoặc thư mục. Ví dụ: sudo chown user:user mydocschủ sở hữu và nhóm mới ở đâu uservà thư mục bạn đang sở hữu làmydocs
Gansheim

1
Trong trường hợp này, tôi sẽ để quyền sở hữu thư mục một mình, để sửa đổi các quyền cho thư mục cụ thể đó để bạn có thể ghi vào đó, đặt quyền đọc / ghi, lệnh đang đượcsudo chmod 766 -r /var/www/html
Gansheim

@Rinzwind có vẻ như anh ta đã ra ls -llệnh từ thư mục nhà của họ. @Mark Trừ khi bạn đang ở trong thư mục mà bạn đang cố xem / thao tác, bạn cần chỉ định đường dẫn, trong trường hợp này bạn nên ban hành lệnh nhưls -l /var/www/html
Gansheim

1
Giống như những kẻ đã chỉ ra, chmodthay đổi quyền, chownthay đổi chủ sở hữu. 755 chữ số đầu tiên (7) có nghĩa là 'chủ sở hữu' có tất cả các quyền, trong khi chữ số thứ hai và cuối cùng (5) có nghĩa là 'nhóm' và 'khác' đều có quyền đọc và thực thi. Bạn có thể thêm người dùng của mình vào nhóm và cung cấp toàn quyền cho nhóm để bạn không phải thực hiện nhiều thay đổi đó.
Samuel

Câu trả lời:


10

Trong trường hợp này tôi sẽ để lại quyền sở hữu thư mục một mình. Để sửa đổi các quyền cho thư mục cụ thể đó để bạn có thể ghi vào thư mục đó, hãy đặt quyền đọc / ghi, lệnh đang được sudo chmod 766 -R /var/www/html. Điều này sẽ gán quyền đầy đủ 7cho chủ sở hữu, đọc / ghi 6cho nhóm và đọc / ghi cho mọi người 6, theo cách đệ quy.


9

Bạn có thể biến mình thành chủ sở hữu của thư mục đó

sudo chown pi /var/www/html

Nhưng bạn chắc chắn muốn đặt quyền

chmod 755 -R /var/www/html

Sử dụng tùy chọn -R (đệ quy) sẽ đảm bảo rằng các tệp tập lệnh và tệp .htaccess của bạn đều được đặt giống nhau.


Bất cứ khi nào bạn thêm một tập lệnh mới, hãy chắc chắn để đặt nó theo cách này.

chmod 755 /var/www/html/cgi-bin/newscript.cgi

Lưu ý rằng một số chương trình CGI có các yêu cầu riêng, chẳng hạn như

Trang web Bestdam Trình ghi khách truy cập + Lượt truy cập

Trích đoạn:

Mở tệp bdlogger.pl trong trình soạn thảo văn bản và nếu cần, hãy sửa đổi dòng shebang.

Trên máy chủ, tạo thư mục con bdlogger trong thư mục cgi-bin của bạn và FTP tập lệnh và tệp dữ liệu vào đó bằng chế độ ASCII

Nếu bạn đang sử dụng máy chủ UNIX / Linux, hãy chỉnh sửa các tệp:

bdlogger.pl to 755
all other files to 666

Thêm thẻ chỉ thị SSI sau vào (các) trang Web của bạn:

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->

5

Bạn cần đặt chủ sở hữu thư mục www từ 'root' thành 'Me'.

Từ thiết bị đầu cuối của bạn, chạy lệnh:

sudo chown -R your_system_username /var/www

Hy vọng nó hoạt động!!


2

Trong khi các câu trả lời ở trên sẽ thực hiện khá nhiều mẹo, đây là một cách tiếp cận lành mạnh hơn. Có thể bạn muốn sửa đổi các tệp bên trong / var / www / html vì bạn muốn thêm một ứng dụng web để phục vụ Apache2. Để đạt được điều này, bạn cần các bước sau

  1. Thêm người dùng vào Tập đoàn www-datacó quyền sở hữu mặc định của thư mục. Tại sao? Nguyên nhân là nếu bạn có ý định thực hiện bất kỳ thay đổi nào trên ứng dụng web một cách linh hoạt, ngay cả khi có wordpress, bạn sẽ cần người dùng trong nhóm này có quyền ghi. Để làm điều này chỉ cần viết: sudo adduser username grouptoaddTrong trường hợp của chúng tôi nó sẽ được sudo adduser username www-data.
  2. Tiếp theo bạn cần thay đổi read/write permissionsbằng cách sử dụng chmodlệnh. Hãy nhớ rằng bây giờ bạn là một phần của nhóm người dùng và không cần thay đổi quyền sở hữu bằng cách sử dụng chown. Để làm điều này chỉ cần chạy : sudo chmod -R 766 directory, trong trường hợp này nó sẽ được sudo chmod -R 766 html. Nếu bạn cảm thấy thể thao, bạn có thể nhận được quyền ghi đầy đủ (777), tùy thuộc vào mức độ an toàn của ứng dụng.

Nghĩa -Rlà một hàm đệ quy, cho phép lệnh áp dụng cho tất cả các thư mục con. Tôi hy vọng điều này sẽ giúp ai đó cần giúp đỡ.

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.