Quyền truy cập tệp chính xác cho WordPress [đã đóng]


399

Tôi đã xem qua ở đây nhưng không tìm thấy bất kỳ chi tiết nào về quyền truy cập tệp tốt nhất. Tôi cũng đã xem qua một số câu hỏi về hình thức của WordPress ở đây nhưng bất kỳ ai đề xuất 777 rõ ràng đều cần một bài học nhỏ về bảo mật.

Tóm lại câu hỏi của tôi là thế này. Tôi nên có quyền gì cho những điều sau đây:

  1. thư mục gốc lưu trữ tất cả nội dung WordPress
  2. quản trị viên
  3. nội dung wp
  4. bao gồm wp

và sau đó tất cả các tập tin trong mỗi thư mục?


Về cơ bản, chỉ thư mục tải lên Wordpress phải là 777 nhưng nó sẽ là một mối đe dọa bảo mật nghiêm trọng. Nếu bạn sử dụng máy chủ có bật Suphp, không cần sửa đổi quyền, theo cách thủ công.
Ali F

4
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì nó không có chủ đề theo đoạn trích wiki: "Các câu hỏi ngoài chủ đề bao gồm những câu hỏi về phát triển chủ đề, quản trị WordPress, thực tiễn quản lý tốt nhất, cấu hình máy chủ, v.v."
Adriaan

Câu trả lời:


499

Khi bạn thiết lập WP, bạn (máy chủ web) có thể cần quyền truy cập ghi vào các tệp. Vì vậy, quyền truy cập có thể cần phải được lỏng lẻo.

chown www-data:www-data  -R * # Let Apache be owner
find . -type d -exec chmod 755 {} \;  # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \;  # Change file permissions rw-r--r--

Sau khi thiết lập, bạn nên thắt chặt quyền truy cập , theo Hardening WordPress, tất cả các tệp ngoại trừ nội dung wp chỉ có thể ghi được bằng tài khoản người dùng của bạn. nội dung wp cũng phải được ghi bởi dữ liệu www .

chown <username>:<username>  -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content

Có lẽ bạn muốn thay đổi nội dung trong wp-content sau này. Trong trường hợp này bạn có thể

  • tạm thời thay đổi người dùng thành dữ liệu www với su,
  • cấp quyền truy cập ghi nhóm wp 775 và tham gia nhóm dữ liệu www hoặc
  • cung cấp cho người dùng của bạn quyền truy cập vào thư mục bằng ACL .

Dù bạn làm gì, hãy đảm bảo các tệp có quyền rw cho dữ liệu www .


2
Kornel đưa ra một liên kết có thẩm quyền như vậy dưới đây. Xem thêm codex.wordpress.org/Changing_File_Permissions , tài liệu của Apache httpd.apache.org/docs/2.2/misc/security_tips.html và khá nhiều tìm kiếm google về chủ đề này. Nhưng trong trường hợp chung, khi nghi ngờ, không có quyền truy cập ghi (và chắc chắn không có quyền sở hữu) và nới lỏng trên cơ sở từng trường hợp, chứ không phải ngược lại (nguyên tắc đặc quyền tối thiểu mà bạn vi phạm ở đây).
Calimo

22
Tại sao có tính năng tự động cập nhật nếu nó thậm chí không hoạt động mà không thay đổi quyền ??
malhal

6
@ ManuelSchneid3r, tôi thấy một số tệp PHP dưới nội dung wp, chúng có thực sự được ghi bởi www-data??? Điều đó thực sự nghe có vẻ không an toàn chút nào.
Alexis Wilke

12
Giải pháp này sẽ ngăn wordpress cài đặt 'cập nhật bảo mật tự động'. Bạn cần chạy thủ công các bước trên cho mỗi bản cập nhật wordpress nhỏ.
Jeroen

11
Đây không phải là một cấu hình an toàn. Đặt quyền đọc trên các tệp này không ảnh hưởng khi người dùng apache cũng sở hữu các tệp! KHÔNG ĐƯỢC DÙNG. Tham khảo codex.wordpress.org/Changing_File_Permissions
PodTech.io

60

Cung cấp quyền truy cập đầy đủ vào tất cả các tệp wp cho www-datangười dùng (trong trường hợp này là người dùng máy chủ web) có thể nguy hiểm. Vì vậy, thay vì KHÔNG làm điều này:

chown www-data:www-data -R *

Tuy nhiên, nó có thể hữu ích khi bạn cài đặt hoặc nâng cấp WordPress và các plugin của nó. Nhưng khi bạn hoàn thành, không còn nên giữ các tệp wp do máy chủ web sở hữu.

Về cơ bản, nó cho phép máy chủ web đặt hoặc ghi đè bất kỳ tệp nào trong trang web của bạn. Điều này có nghĩa là có khả năng chiếm lấy trang web của bạn nếu ai đó quản lý sử dụng máy chủ web (hoặc lỗ hổng bảo mật trong một số tập lệnh .php) để đặt một số tệp vào trang web của bạn.

Để bảo vệ trang web của bạn chống lại một cuộc tấn công như vậy, bạn nên làm như sau:

Tất cả các tệp phải được sở hữu bởi tài khoản người dùng của bạn và bạn có thể ghi được. Bất kỳ tệp nào cần truy cập ghi từ WordPress đều phải có thể ghi được bởi máy chủ web, nếu thiết lập lưu trữ của bạn yêu cầu, điều đó có thể có nghĩa là các tệp đó phải thuộc sở hữu nhóm của tài khoản người dùng được sử dụng bởi quy trình máy chủ web.

/

Thư mục WordPress gốc: tất cả các tệp chỉ có thể ghi được bằng tài khoản người dùng của bạn, ngoại trừ .htaccess nếu bạn muốn WordPress tự động tạo quy tắc viết lại cho bạn.

/wp-admin/

Khu vực quản trị WordPress: tất cả các tệp chỉ có thể ghi được bằng tài khoản người dùng của bạn.

/wp-includes/

Phần lớn logic ứng dụng WordPress: tất cả các tệp chỉ có thể ghi được bằng tài khoản người dùng của bạn.

/wp-content/

Nội dung do người dùng cung cấp: dự định có thể ghi được bằng tài khoản người dùng của bạn và quy trình máy chủ web.

Trong vòng /wp-content/bạn sẽ tìm thấy:

/wp-content/themes/

Tập tin chủ đề. Nếu bạn muốn sử dụng trình chỉnh sửa chủ đề tích hợp, tất cả các tệp cần phải được ghi bởi quy trình máy chủ web. Nếu bạn không muốn sử dụng trình chỉnh sửa chủ đề tích hợp, tất cả các tệp chỉ có thể ghi được bằng tài khoản người dùng của bạn.

/wp-content/plugins/

Các tệp plugin: tất cả các tệp chỉ có thể ghi được bằng tài khoản người dùng của bạn.

Các thư mục khác có thể có mặt /wp-content/nên được ghi lại bằng bất kỳ plugin hoặc chủ đề nào yêu cầu chúng. Quyền có thể thay đổi.

Nguồn và thông tin bổ sung: http://codex.wordpress.org/Hardening_WordPress


bởi tài khoản người dùng của bạn. có nghĩa là người dùng thực thi các tập lệnh php trên trang web (Thông thường người dùng apache)?
shasi kanth

4
@shasikanth Không, người dùng apache là người mà anh ta gọi là máy chủ web của Wikipedia xử lý. Tài khoản người dùng là người dùng Linux của bạn (ssh, người dùng ftp, v.v.)
Daniel Bang

Trong câu trả lời này và trong câu trả lời được chấp nhận, người dùng (không phải dữ liệu www) có nên là một phần của nhóm dữ liệu www không?
dùng658182

1
Không, đó là toàn bộ điểm.
Piotr Nawrot

1
Vấn đề tôi gặp phải là bất cứ khi nào tôi biến "người dùng" SSH của mình thành chủ sở hữu của / wp-content / plugin /, Wordpress trở nên hoàn toàn không liên quan từ bên trong quản trị viên, với lỗi thường xuyên bật lên hoặc lỗi cấp phép FTP. Không thể thêm, cũng không cập nhật plugin. Chỉ khi tôi biến dữ liệu www thành chủ sở hữu của nội dung wp, thì chức năng plugin của Wordpress Admin mới hoạt động. (Ví dụ: sudo chown www-data: www-data -R / var / www / html / wp-content /)
Heres2u

26

Đối với những người có thư mục gốc wordpress trong thư mục nhà của họ:

** Ubuntu / apache

  1. Thêm người dùng của bạn vào nhóm dữ liệu www:

CREDIT Cấp quyền ghi cho nhóm dữ liệu www

Bạn muốn gọi usermodcho người dùng của bạn. Vì vậy, đó sẽ là:

sudo usermod -aG www-data yourUserName

** Giả sử www-datanhóm tồn tại

  1. Kiểm tra người dùng của bạn có trong www-datanhóm:

    groups yourUserName

Bạn sẽ nhận được một cái gì đó như:

youUserName : youUserGroupName www-data

** youUsergroupName thường giống với tên người dùng của bạn

  1. Thay đổi đệ quy quyền sở hữu nhóm của thư mục nội dung wp giữ quyền sở hữu người dùng của bạn

    chown yourUserName:www-data -R youWebSiteFolder/wp-content/*

  2. Thay đổi thư mục thành youWebSiteFolder / wp-content /

    cd youWebSiteFolder/wp-content

  3. Thay đổi đệ quy quyền nhóm của các thư mục và thư mục con để cho phép quyền ghi:

    find . -type d -exec chmod -R 775 {} \;

** chế độ `/ home / yourUserName / youWebSiteFolder / wp-content / 'đã thay đổi từ 0755 (rwxr-xr-x) thành 0775 (rwxrwxr-x)

  1. Thay đổi đệ quy quyền nhóm của các tệp và tệp phụ để cho phép quyền ghi:

    find . -type f -exec chmod -R 664 {} \;

Kết quả sẽ trông giống như:

WAS:
-rw-r--r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
CHANGED TO:
-rw-rw-r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html

Tương đương với:

chmod -R ug + rw tên người dùng

Quyền sẽ giống như 664 cho các tệp hoặc 775 cho các thư mục.

Nếu ai gặp lỗi 'could not create directory'khi cập nhật plugin, hãy làm:
server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
khi bạn đang ở gốc của tên miền.
Giả sử: wp-config.php
thông tin FTP trên Localhost
define('FS_METHOD','direct');


10
-1. Bạn KHÔNG muốn dữ liệu www có quyền truy cập ghi vào các tệp wordpress, ngoại trừ trong nội dung wp.
Calimo

775 trong nội dung wp không giúp đỡ. Với 644 cho các tệp, 755 cho các thư mục và người dùng chown: dữ liệu www, đôi khi tôi vẫn gặp vấn đề với tải lên phương tiện, cập nhật plugin, v.v. 775 cũng cho phép thay đổi nội dung wp bởi dữ liệu www: dữ liệu www , mà giải quyết vấn đề.
guyslabbe.ca

Loại bỏ -R khỏi lệnh find / chmod vì nó chậm và không cần thiết.
Adam Jimenez

20

Tốt nhất để đọc tài liệu wordpress trên https://wordpress.org/support/article/changing-file-permissions/

  • Tất cả các tệp phải được sở hữu bởi tài khoản người dùng thực tế, không phải tài khoản người dùng được sử dụng cho quy trình httpd
  • Quyền sở hữu nhóm là không liên quan, trừ khi có yêu cầu nhóm cụ thể để kiểm tra quyền truy cập quy trình máy chủ web. Đây không phải là thường.
  • Tất cả các thư mục nên là 755 hoặc 750.
  • Tất cả các tệp phải là 644 hoặc 640. Ngoại lệ: wp-config.php phải là 440 hoặc 400 để ngăn người dùng khác trên máy chủ đọc nó.
  • Không có thư mục nào nên được đưa ra 777, thậm chí tải lên các thư mục. Vì quá trình php đang chạy với tư cách là chủ sở hữu của các tệp, nó có quyền của chủ sở hữu và có thể ghi vào thư mục 755.

4
Không chắc chắn lý do tại sao bạn bị bỏ phiếu: gần như mọi người muốn câu trả lời hàng đầu là làm thế nào để không cài đặt không an toàn !
BCran

Liên kết đã lỗi thời. cái mới ở đây: wordpress.org/support/article/changing-file-permissions Và cảm ơn vì đã là người duy nhất tham khảo các tài liệu thực tế!
mọi người

Nếu wp-config.php là 400, làm thế nào để apache bao gồm nó (do đó đọc nó) khi tải trang?
Martin Braun

14

Tôi đặt quyền cho:

    # Set all files and directories user and group to wp-user
    chown wp-user:wp-user -R *

    # Set uploads folder user and group to www-data
    chown www-data:www-data -R wp-content/uploads/

    # Set all directories permissions to 755
    find . -type d -exec chmod 755 {} \;

    # Set all files permissions to 644
    find . -type f -exec chmod 644 {} \;

Trong trường hợp của tôi, tôi đã tạo một người dùng cụ thể cho WordPress, khác với người dùng mặc định apache ngăn truy cập từ web vào các tệp do người dùng đó sở hữu.

Sau đó, nó cấp quyền cho người dùng apache để xử lý thư mục tải lên và cuối cùng đặt quyền truy cập tệp và thư mục đủ an toàn.

EDITED

Nếu bạn đang sử dụng W3C Total Cache, bạn cũng nên làm tiếp theo:

rm -rf wp-content/cache/config
rm -rf wp-content/cache/object
rm -rf wp-content/cache/db
rm -rf wp-content/cache/minify
rm -rf wp-content/cache/page_enhanced

Sau đó, nó sẽ làm việc!

EDITED

Sau một thời gian phát triển các trang web WordPress, tôi khuyên bạn nên sử dụng các quyền khác nhau cho mỗi môi trường:

Trong sản xuất, tôi sẽ không cấp quyền truy cập cho người dùng để sửa đổi hệ thống tệp, tôi sẽ chỉ cho phép họ tải lên tài nguyên và cấp quyền truy cập vào một số thư mục cụ thể của plugin để sao lưu, v.v. Nhưng quản lý dự án trong Git và sử dụng khóa triển khai trên máy chủ, nó không phải là plugin cập nhật tốt về dàn dựng cũng như sản xuất. Tôi để lại ở đây thiết lập tập tin sản xuất:

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/uploads/

www-data: www-data = apache hoặc nginx user và group

Dàn dựng sẽ chia sẻ các quyền sản xuất giống như nó phải là một bản sao của nó.

Cuối cùng, môi trường phát triển sẽ có quyền truy cập để cập nhật plugin, bản dịch, mọi thứ ...

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/

# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/themes

# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/plugins/your-plugin

www-data: www-data = apache hoặc nginx user và nhóm your-user: root-group = người dùng hiện tại của bạn và nhóm gốc

Các quyền này sẽ cung cấp cho bạn quyền truy cập để phát triển theo themesyour-pluginthư mục mà không cần xin phép. Phần còn lại của nội dung sẽ thuộc sở hữu của người dùng Apache hoặc Nginx để cho phép WP quản lý hệ thống tệp.

Trước khi tạo một git repo trước tiên hãy chạy các lệnh sau:

# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;

# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;

11
Không! Không bao giờ làm 777. Vui lòng không tư vấn điều này cho (người mới) đọc nó.
Karlo

KHÔNG có tệp hoặc thư mục nào được sở hữu bởi quy trình http - đây là một lỗ hổng bảo mật lớn. Nếu người dùng độc hại tìm thấy khai thác trong plugin hoặc chủ đề hoặc chính wordpress, họ có thể tải lên mã có thể được chạy bằng apache và có quyền truy cập - tôi đã thấy tận mắt :(
DropHit 17/8/19

10

Quyền chính xác cho tệp là 644 Quyền chính xác cho thư mục là 755

Để thay đổi quyền, sử dụng thiết bị đầu cuối và các lệnh sau.

find foldername -type d -exec chmod 755 {} \;
find foldername -type f -exec chmod 644 {} \;

755 cho các thư mục và 644 cho các tập tin.


1
và 640 cho wp-config.php. Thật không may, bạn phải thay đổi quyền của thư mục tải lên & plugin & chủ đề thành 775 và nếu bạn muốn nâng cấp wordpress của mình thì bạn phải thay đổi tất cả các thư mục thành 775. Trong phần này, quyền của bạn sẽ bật lên trong khi nâng cấp / thay đổi plugin, chủ đề và tải lên phương tiện truyền thông.
erginduran

8

Tôi nghĩ rằng các quy tắc dưới đây được khuyến nghị cho một trang web wordpress mặc định:

  • Đối với các thư mục bên trong nội dung wp, hãy đặt quyền 0755:

    plugin chmod -R 0755

    chmod -R 0755 tải lên

    chmod -R 0755 nâng cấp

  • Hãy để người dùng apache là chủ sở hữu cho các thư mục trên của nội dung wp:

    tải lên apache chown

    nâng cấp apache chown

    plugin apache chown


1
Bạn cũng có thể đặt đệ quy quyền cho các thư mục, như: tải lên apache chR -R . Và nếu được yêu cầu, bạn cũng có thể trao quyền sở hữu nhóm cho apache: tải lên apache chgrp
shasi kanth

8

Nó thực sự phụ thuộc vào các plugin bạn dự định sử dụng vì một số plugin thay đổi tài liệu gốc của wordpress. nhưng nói chung tôi khuyên bạn nên một cái gì đó như thế này cho thư mục wordpress.

Điều này sẽ chỉ định "root" (hoặc bất cứ người dùng nào bạn đang sử dụng) làm người dùng trong mỗi tệp / thư mục, R có nghĩa là đệ quy, vì vậy nó chỉ dừng lại ở thư mục "html". nếu bạn không sử dụng R, thì nó chỉ áp dụng cho thư mục "html".

sudo chown -R root:www-data /var/www/html  

Điều này sẽ đặt chủ sở hữu / nhóm "wp-content" thành "dữ liệu www" và do đó cho phép máy chủ web cài đặt các plugin thông qua bảng quản trị.

chown -R www-data:www-data /var/www/html/wp-content

Điều này sẽ đặt quyền của mọi tệp đơn trong thư mục "html" (Bao gồm các tệp trong thư mục con) thành 644, vì vậy những người bên ngoài không thể thực thi bất kỳ tệp nào, sửa đổi bất kỳ tệp nào, nhóm không thể thực hiện bất kỳ tệp nào, sửa đổi bất kỳ tệp nào và chỉ người dùng được phép sửa đổi / đọc tệp, nhưng ngay cả người dùng vẫn không thể thực thi bất kỳ tệp nào. Điều này rất quan trọng vì nó ngăn chặn mọi loại thực thi trong thư mục "html", vì chủ sở hữu của thư mục html và tất cả các thư mục khác ngoại trừ thư mục nội dung wp là "root" (hoặc người dùng của bạn), dữ liệu www có thể ' Không sửa đổi bất kỳ tệp nào bên ngoài thư mục nội dung wp, vì vậy ngay cả khi có bất kỳ lỗ hổng nào trong máy chủ web và nếu ai đó truy cập trái phép vào trang web, họ không thể xóa trang web chính trừ các plugin.

sudo find /var/www/html -type f -exec chmod 644 {} +

Điều này sẽ hạn chế quyền truy cập vào "wp-config.php" đối với người dùng / nhóm với rw-r ----- các quyền này.

chmod 640 /var/www/html/wp-config.php

Và nếu một plugin hoặc bản cập nhật phàn nàn thì nó không thể cập nhật, sau đó truy cập vào SSH và sử dụng lệnh này và cấp quyền tạm thời cho "www-data" (máy chủ web) để cập nhật / cài đặt thông qua bảng quản trị, sau đó hoàn nguyên trở lại "root" hoặc người dùng của bạn sau khi hoàn thành.

chown -R www-data /var/www/html

Và trong Nginx (cùng một quy trình cho apache) để bảo vệ thư mục wp-admin khỏi bị truy cập trái phép và thăm dò. apache2-utils là cần thiết để mã hóa mật khẩu ngay cả khi bạn đã cài đặt nginx, bỏ qua c nếu bạn có kế hoạch thêm nhiều người dùng vào cùng một tệp.

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd userName

Bây giờ hãy truy cập vị trí này

/etc/nginx/sites-available/

Sử dụng mã này để bảo vệ thư mục "wp-admin" bằng mật khẩu, bây giờ nó sẽ hỏi mật khẩu / tên người dùng nếu bạn cố truy cập vào "wp-admin". Lưu ý, ở đây bạn sử dụng tệp ".htpasswd" có chứa mật khẩu được mã hóa.

location ^~ /wp-admin {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    index  index.php index.html index.htm;
}

Bây giờ khởi động lại nginx.

sudo /etc/init.d/nginx restart

Không nên sử dụng người dùng root. Nó có thể nguy hiểm hơn Chỉ cần tạo một người dùng mới n thêm anh ta vào nhóm sudo
erginduran

Tôi đã không ủng hộ ở đây để sử dụng root. Tôi đã sử dụng root làm ví dụ. bạn có thể sử dụng bất kỳ tên nào thay vì sử dụng root.
Don Dilanga

2

Các lệnh:

chown www-data:www-data -R *
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Người dùng ftp là người dùng bạn đang sử dụng để tải tệp lên

chown -R ftp-user:www-data wp-content
chmod -R 775 wp-content

1
nên chọn tên người dùng: dữ liệu www nếu không bạn không thể chỉnh sửa tệp
malhal 2/2/2016

Bạn có thể sử dụng $(whoami)thay vì ftp-user. Theo mặc định, người dùng hiện tại của bạn ( không phải root ) là người dùng FTP của bạn nếu bạn đang sử dụng máy chủ của riêng mình (cục bộ, vps, v.v.)
Juanjo Salvador

2

Để đảm bảo chắc chắn rằng trang web của bạn an toàn và bạn đang sử dụng quyền chính xác cho các thư mục của mình, hãy sử dụng một plugin bảo mật như sau:

https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/

https://en-ca.wordpress.org/plugins/wordfence/

Các plugin này sẽ quét cài đặt Wordpress của bạn và thông báo cho bạn về bất kỳ vấn đề tiềm ẩn nào. Những điều này cũng sẽ cảnh báo bạn về bất kỳ quyền thư mục không an toàn. Ngoài ra, các plugin này sẽ khuyến nghị bạn nên gán quyền nào cho các thư mục.


2
chown -Rv www-data:www-data
chmod -Rv 0755 wp-includes
chmod -Rv 0755 wp-admin/js
chmod -Rv 0755 wp-content/themes
chmod -Rv 0755 wp-content/plugins
chmod -Rv 0755 wp-admin
chmod -Rv 0755 wp-content
chmod -v 0644 wp-config.php
chmod -v 0644 wp-admin/index.php
chmod -v 0644 .htaccess

1

Tôi không thể cho bạn biết liệu điều này có đúng hay không, nhưng tôi đang sử dụng hình ảnh Bitnami trên Google Compute App Engine. Tôi gặp vấn đề với plugin và di chuyển, và sau khi làm rối tung mọi thứ bằng các quyền của chmod'ing, tôi đã tìm thấy ba dòng này giải quyết tất cả các vấn đề của tôi. Không chắc chắn nếu đó là cách thích hợp nhưng làm việc cho tôi.

sudo chown -R bitnami:daemon /opt/bitnami/apps/wordpress/htdocs/
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type f -exec chmod 664 {} \;
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type d -exec chmod 775 {} \;

1

Đối với OS X, sử dụng lệnh này:

sudo chown -R www:www /www/folder_name

1

Xác định trong tệp wp_config.

/var/www/html/Your-Project-File/wp-config.php

define( 'FS_METHOD', 'direct' );

chown - thay đổi quyền sở hữu các tập tin / thư mục. I E. chủ sở hữu của tệp / thư mục thay đổi thành tệp được chỉ định, nhưng nó không sửa đổi quyền.

sudo chown -R www-data:www-data /var/www

0

Dựa trên tất cả việc đọc và thống nhất trên các trang web của riêng tôi và sau khi bị hack, tôi đã đưa ra danh sách trên bao gồm các quyền cho một plugin bảo mật cho Wordpress có tên là Wordfence. (Không liên kết với nó)

Trong ví dụ của chúng tôi, gốc tài liệu wordpress là /var/www/html/example.com/public_html

Mở các quyền để dữ liệu www có thể ghi vào thư mục gốc như sau:

cd /var/www/html/example.com
sudo chown -R www-data:www-data public_html/

Bây giờ từ bảng điều khiển trong trang web của bạn, với tư cách là quản trị viên, bạn có thể thực hiện cập nhật.

Trang web an toàn sau khi cập nhật kết thúc bằng cách làm theo các bước sau:

sudo chown -R wp-user:wp-user public_html/

Lệnh trên thay đổi quyền của mọi thứ trong cài đặt wordpress cho người dùng FTP wordpress.

cd public_html/wp-content
sudo chown -R www-data:wp-user wflogs
sudo chown -R www-data:wp-user uploads

Lệnh trên đảm bảo rằng plugin bảo mật Wordfence có quyền truy cập vào nhật ký của nó. Thư mục tải lên cũng có thể ghi bằng dữ liệu www.

cd plugins
sudo chown -R www-data:wp-user wordfence/

Lệnh trên cũng đảm bảo rằng plugin bảo mật đã yêu cầu quyền truy cập đọc ghi cho chức năng phù hợp của nó.

Quyền và thư mục

# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;

# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;

Đặt quyền cho wp-config.php thành 640 để chỉ người dùng wp mới có thể đọc tệp này và không ai khác. Quyền 440 không hoạt động đối với tôi với quyền sở hữu tệp ở trên.

sudo chmod 640 wp-config.php

Các bản cập nhật tự động của Wordpress sử dụng SSH đã hoạt động tốt với PHP5 nhưng đã bị hỏng với PHP7.0 do sự cố với gói php7.0-ssh2 với Ubuntu 16.04 và tôi không thể tìm cách cài đặt phiên bản phù hợp và làm cho nó hoạt động. May mắn thay, một plugin rất đáng tin cậy có tên ssh-sftp-updater-support (miễn phí) giúp cập nhật tự động bằng SFTP mà không cần libssh2. Vì vậy, các quyền trên không bao giờ phải nới lỏng trừ những trường hợp hiếm khi cần thiết.

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.