Không thể truy cập thư mục Tôi là thành viên nhóm của


9

Trên máy chủ web của tôi, tôi có một thư mục 'www' có quyền drwxrwxr--và người dùng: nhóm root:www-datađể Apache có thể truy cập nó.

Bây giờ tôi đã thêm tài khoản của mình vào dữ liệu www của nhóm với

sudo usermod -g www-data myuser

và nếu tôi làm groupsthì www-datanằm trong số đó, nhưng khi tôi cố gắng đơn giản là cd vào nó, tôi nhận được 'Quyền bị từ chối'.

Nếu tôi thay đổi người dùng thành 'myuser' hoặc đặt nhóm thành một nhóm khác tôi là thành viên, tôi có thể tham gia.

Tui bỏ lỡ điều gì vậy?

Câu trả lời:


14

Quá trình của bạn có danh sách nhóm được đặt tại thời điểm đăng nhập, vì vậy bạn sẽ cần phải đăng nhập lại để thay đổi có hiệu lực.

Tôi cũng đề nghị bạn thêm www-datavào dưới dạng nhóm bổ sung chứ không phải nhóm chính (được đặt thành nhóm chỉ bạn là thành viên của. Bạn sẽ có thể thực hiện việc này bằng các lệnh sau:

# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

Nếu bạn muốn các tệp bạn tạo có thể đọc được bởi các thành viên khác trong www-datanhóm, hãy điều chỉnh ô của bạn cho phù hợp:

umask 002

Vì thành viên nhóm chính của bạn là một nhóm cá nhân, điều này không ảnh hưởng đến bảo mật của các tệp bạn tạo.

Cũng đáng để thiết lập setgidbit trên các thư mục mà bạn sẽ tạo tệp trong: điều này sẽ khiến các tệp kế thừa quyền sở hữu nhóm của thư mục mẹ:

chmod g+s www/

1
đăng nhập lại đã làm các mẹo, rất ngu ngốc. Cũng rất hữu ích serverfault.com/questions/6895/ Cách
dazz

Cảm ơn đã đề cập đến Dazz. Tôi không bao giờ hiểu tại sao nó không làm việc cho tôi xD. Bây giờ tôi có thể nghỉ ngơi trong hòa bình.
f4der

0

Đối với tôi đó là một điều khác biệt dẫn đến lỗi này

cùng tên người dùng với hai UID khác nhau

Tôi có người dùng "apache" được định cấu hình cục bộ với UID = 123 và trong thư mục NIS có cùng tên ("apache") nhưng UID = 456 khác nhau. Tùy thuộc vào thứ tự bắt đầu và phụ thuộc dịch vụ, người dùng cục bộ có thể được sử dụng trước khi người dùng NIS có thể sử dụng được. Điều đó cũng có nghĩa là, khi bạn hiển thị tên người dùng, điều này sẽ gây nhầm lẫn, cả hai sẽ xuất hiện dưới dạng "apache". Chỉ khi bạn nhìn vào UID số (ví dụ: bằng cách thực hiện, ls -lnbạn sẽ thấy sự khác biệt. Ví dụ: [root@mymachine]# ls -l drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2 xem UID khác với tệp2 (456 thay vì 123): [root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

nhóm khác nhau được định nghĩa trong cấu hình Apache

Một vấn đề khác mà tôi gặp phải với người dùng không khớp và dẫn đến lỗi cấp phép là khi tôi bị hạn chế quyền truy cập vào các tệp bằng cách sử dụng nhóm "httpd". Đây là nhóm chính của người dùng "apache" (được hiển thị bằng cách sử dụng idhoặc getent) Apache bắt đầu với quyền root, sau đó chuyển sang người dùng được định cấu hình và bỏ quyền. Người dùng mà nó chuyển sang được xác định /etc/httpd/conf/httpd.confbởi Usertham số. Tuy nhiên, đây là vấn đề - nhóm (GID) mà quá trình sẽ chạy không phải là nhóm chính của người dùng đó. Nhóm được định nghĩa trong cùng một tệp cấu hình theo Grouptham số.

Vì vậy, trong trường hợp của tôi, đó là ( /etc/httpd/conf/httpd.conf ): User apache Group apache

Và thư mục đã được cấp quyền truy cập như thế này: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

Bởi vì httpd (GID = 444) là nhóm chính của người dùng đó: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

Nó dẫn đến một số thời gian dành cho việc gỡ lỗi cho đến khi tôi nhận ra rằng Grouptrong tệp cấu hình là "apache" chứ không phải "httpd".

Lỗi từ / var / log / httpd / error_log : [Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt

Tôi hi vọng cái này giúp được.

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.