Có vấn đề khi tôi khởi động cơ sở dữ liệu PostgreSQL trong một nhà tù FreeBSD.FreeBSD: nhà tù không thể đặt security.jail.sysvipc_allowed
Tôi đã tìm thấy một bài viết về sự cố. Tôi đã thử lời khuyên của nó nhưng tôi không có may mắn và tôi không biết tại sao. Có liên kết: PostgreSQL in jail.
Tôi cũng đọc tài liệu PostgreSQL trên kernel resources:
Nếu chạy trong nhà tù FreeBSD bằng cách cho phép
sysctl
'ssecurity.jail.sysvipc_allowed
, Postmasters chạy trong nhà tù khác nhau nên được điều hành bởi người sử dụng hệ điều hành khác nhau. Điều này cải thiện an ninh vì nó ngăn người dùng không phải root can thiệp vào bộ nhớ hoặc semaphores dùng chung trong các nhà tù khác nhau và cho phép mã dọn dẹp IPP PostgreSQL hoạt động bình thường. (Trong FreeBSD 6.0 và sau đó là mã ngẫu nhiên IPC không phát hiện đúng các quy trình trong nhà tù khác, ngăn chặn các hoạt động của Postmasters trên cùng một cổng trong các nhà tù khác nhau.)
Những gì tôi đã làm:
- tôi sửa
/etc/rc.conf
(trên máy chủ) và thêm dòngjail_sysvipc_allow="YES"
- Trong dòng máy tù của
/etc/sysctl.conf
, tôi thêmsecurity.jail.sysvipc_allowed=1
Tôi khởi động lại máy tính nhiều lần. Tôi đã không khởi động lại máy chủ và không muốn.
Hy vọng ai đó có thể cho tôi giải pháp hoặc một số lời khuyên. Cám ơn rất nhiều.
Đây là thông điệp khi tôi khởi động lại nhà tù:
/etc/rc.d/sysctl: WARNING: unable to set security.jail.sysvipc_allowed=1
Hoặc khi tôi chạy sysctl bằng tay: (trên tù)
[email protected]:/home/xxxx# sysctl security.jail.sysvipc_allowed=1
security.jail.sysvipc_allowed: 0
sysctl: security.jail.sysvipc_allowed: Operation not permitted
FreeBSD phiên bản: FreeBSD xxxxxxx 9.1-prerelease FreeBSD 9.1-PRERELEASE
phiên bản postgreSQL: postgresql-server-9.1.4
TinLỗi:
[email protected]:/home/xxx # /usr/local/etc/rc.d/postgresql initdb
The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.
The database cluster will be initialized with locale C.
The default text search configuration will be set to "english".
creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 10
selecting default shared_buffers ... 400kB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... FATAL: could not create
shared memory segment: Function not implemented
DETAIL: Failed system call was shmget(key=1, size=2146304, 03600).
child process exited with exit code 1
initdb: removing data directory "/usr/local/pgsql/data"
Cập nhật:
trong máy chủ, /etc/sysctl.conf: security.jail.sysvipc_allowed = 1 /etc/rc.conf: jail_sysvipc_allow = "YES"
Trong máy chủ Jail, không có thêm cấu hình jail_sysvipc.
giá trị sysctl trong máy chủ:
[email protected]:/home/xxxx# sysctl -a | grep 'sysvipc'
security.jail.param.allow.sysvipc: 0
security.jail.sysvipc_allowed: 1
tôi vẫn nhận được thông báo lỗi tương tự như tôi có trước đó.
Ngoài ra, tôi tự hỏi liệu có bất kỳ điều gì với security.jail.param.allow.sysvipc không? Bởi vì, trong máy chủ, tôi không được phép đặt nó. (security.jail.param.allow.sysvipc 0-> 0)
Bạn đang sử dụng phiên bản FreeBSD nào? Phiên bản PostgreSQL nào? –
Ngoài ra, điều này có gây ra cho bạn một vấn đề cụ thể không? Bạn chỉ muốn cải thiện cách ly liên tù? Bạn đang gặp vấn đề bắt đầu Pg up trong một nhà tù? Nền là gì? Bao gồm các lệnh bạn chạy và các lỗi mà chúng tạo ra, giống như bạn có cho giải pháp đã thử mà bạn đã viết. Vui lòng cập nhật câu hỏi của bạn. –
Cùng một vấn đề ở đây, với FreeBSD-9.1, được biên dịch cách đây hai ngày .. – drumfire