Điểm:1

Không thể thay đổi mật khẩu người dùng linux bằng tập lệnh php

lá cờ ng
kbu

Tôi có tập lệnh php sau để thay đổi mật khẩu: <?php error_reporting(E_ALL); ini_set('lỗi hiển thị', TRUE); ini_set('display_startup_errors', TRUE); ini_set('lỗi hiển thị', đúng);

$cmd = 'sudo -u root sh -c \'/usr/bin/echo "tên người dùng: pass" | sudo /usr/sbin/chpasswd 2>&1\'';
exec($cmd,$output,$return_val);
print_r($output);
tiếng vang $return_val;
?>

Tập lệnh này hiển thị lỗi trong trình duyệt:

pam_chauthtok() không thành công, lỗi: [1] => Khóa mã thông báo xác thực bận [2] => chpasswd

Nhưng lệnh

sudo -u root sh -c '/usr/bin/echo "tên người dùng: pass" | sudo /usr/sbin/chpasswd 2>&1'

làm việc tốt. Ai đó có thể vui lòng cho tôi một mẹo không, tại sao tôi gặp lỗi trên trình duyệt?

Hệ thống tập tin ở chế độ rw. Các tệp /etc/{passwd,shadow} có quyền chính xác

Cảm ơn bạn trước

Michael Hampton avatar
lá cờ cz
Làm thế nào để bạn chạy PHP?
kbu avatar
lá cờ ng
kbu
Php chạy với php-fpm
lá cờ vn
Bạn... có lẽ không nên làm điều này.
kbu avatar
lá cờ ng
kbu
Tôi hiểu bạn muốn nói gì. Khách hàng cần một giải pháp. Tôi đã tìm ra giải pháp và cảnh báo về các vấn đề bảo mật sắp tới
kbu avatar
lá cờ ng
kbu
Và vấn đề chính xác là ở đó, vì strace cho thấy hệ thống tệp đang ở chế độ chỉ đọc
Điểm:1
lá cờ ng
kbu

Giải pháp là bình luận Hệ thống bảo vệ=đầy đủ trong đơn vị php-fpm.service:

# Gắn kết các thư mục /usr, /boot và /etc chỉ đọc cho các quy trình được gọi bởi thiết bị này.
#ProtectSystem=full
Michael Hampton avatar
lá cờ cz
Thay vào đó, bạn có thể thay đổi điều này thành `true`, điều này sẽ cho phép ghi vào `/etc` nhưng vẫn cấm ghi vào các thư mục được đặt tên khác.
Điểm:0
lá cờ us

Trình duyệt php chạy bằng cách sử dụng dữ liệu www người dùng

Thêm quyền cho dữ liệu www sử dụng sudo thông qua vỏ bằng cách sử dụng visudo lệnh và nối thêm dòng này

dữ liệu www TẤT CẢ=(TẤT CẢ: TẤT CẢ) TẤT CẢ

Cú pháp của nó là

người dùng máy chủ = (người dùng: nhóm) lệnh
kbu avatar
lá cờ ng
kbu
xin lỗi đã quên đề cập ở đây: Tôi đã cấp đặc quyền sudo. Để thử nghiệm, tôi có dòng sau: nginx ALL=(ALL) NOPASSWD: ALL. Nhưng điều đó không giúp được gì.
lá cờ us
Quyền truy cập `sudo` chỉ nên giới hạn ở các lệnh cần thiết.
Ajay Singh avatar
lá cờ us
Bạn đã thử tương tự với dữ liệu www thay vì nginx chưa?
kbu avatar
lá cờ ng
kbu
người dùng dữ liệu www không tồn tại
Ajay Singh avatar
lá cờ us
Được chứ. Bạn đang sử dụng hệ điều hành nào? Bạn đã xác minh nếu trên trình duyệt trả về nginx?
kbu avatar
lá cờ ng
kbu
OpenSUSE 15.2. Có, exec(...whoami...ls....ping...cat...) làm việc mọi thứ

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.