Làm cách nào để chia sẻ nhật ký nginx mà không cần sudo cho người dùng khác?


10

Tôi có 2 người dùng trên máy chủ của mình. Một với sudo truy cập khác mà không có. Làm thế nào tôi có thể cung cấp quyền truy cập vào nhật ký nginx

/var/log/nginx/error.log

Để người dùng khác mà không sudođược phép sử dụng cat /var/log/nginx/error.log? Tôi có thể tạo một cái gì đó như một liên kết tượng trưng để đăng nhập vào thư mục / home / tên người dùng của anh ấy không?

Vì vậy, câu hỏi của tôi là - làm thế nào một người dùng mà không sudođược phép kiểm tra nhật ký nginx?


sudoTiếp cận những gì? Nó không rõ ràng từ câu hỏi của bạn. Tôi biết một số người thực hiện 'truy cập sudo' có nghĩa là 'quyền truy cập gốc', nhưng điều đó không chính xác về mặt kỹ thuật. Hãy elipated.
dawud

1
vâng, bạn có thể sử dụng sudođể cấp cho anh ta quyền thực sự, tùy thuộc vào cách bạn muốn định cấu hình nó.
gparent

Bạn có thể sử dụng ACL. ví dụ setfacl -m 'user:someuser:r' /var/log/nginx/error.log. Tôi không chắc nó sẽ hoạt động như thế nào với logrotate. sudotruy cập vào cat / tail / etc nhật ký có lẽ là một lựa chọn tốt hơn. '
Greg Bowser

@GregBowser IMHO, sử dụng ACL mà không hiểu ACL là một công thức cho vấn đề.
Paul

Câu trả lời:


16

Ví dụ, như thế này:

chmod 755 /var/log/nginx && chmod 644 /var/log/nginx/*.log && chmod 644 /var/log/nginx/*.gz

bằng cách này, bất cứ ai cũng có thể cwd và đọc nội dung của thư mục / var / log / nginx và đọc các tệp * .log.

Bạn cũng nên kiểm tra cấu hình xoay vòng nhật ký để các quyền sẽ không bị thay đổi nữa. Đối với một số phiên bản Nginx mới nhất, tối đa và bao gồm 1.6.2, tệp /etc/logrotate.d/nginxđã sử dụng dòng create 0640 www-data admđể đặt quyền khi xoay vòng nhật ký. Điều này nên được thay đổi thành một cái gì đó như create 0644 www-data adm. Cần lưu ý rằng giải pháp này cho phép tất cả người dùng trên máy chủ đọc tất cả nhật ký Nginx.

Cập nhật: cấu hình logrotate cũng nên được cập nhật để bao gồmsu www-data admtiện ích cho phép tiện ích logadm hoạt động mà không phàn nàn về quyền truy cập thư mục không chính xác.


3
Cấu hình Nginx mặc định /etc/logrotate.d/nginxcreate 0640 www-data adm. Đó là vào 1.6.2, nhưng tôi không nghĩ rằng dòng đó đã thay đổi trong một thời gian.
Paul

1
Câu trả lời này là không cần thiết vì vậy nó sẽ là phổ quát và chung chung, thay vì cụ thể là Ubuntu-nginx-1.6.2-20141110.
drookie

1
nginx config trong logrotate d đã đặt lại nó. Đã sửa nó bằng cách thay đổi nó.
sdkks

Không có cách nào khác để giải quyết vấn đề này, chẳng hạn như khi một người dùng khác cố gắng bắt đầu nginx rằng nó sử dụng một đường dẫn nhật ký khác? Tôi đã thử thêm nó vào tập tin nginx.conf mới của mình nhưng khi chạy nginx -c newnginx.conf trên người dùng mới này, nó vẫn cố truy cập vào / var / log / nginx ...
Poul K. Søgesen
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.