Lỗi ‘unknown’: I need something more specific

1. Tông quan.

Lỗi ‘unknown’: I need something more specific. xuất hiện khi bạn chạy lệnh sudo top -c qua SSH. Nguyên nhân chính là do lệnh sudo yêu cầu môi trường TTY (Terminal) để thực thi, nhưng khi chạy qua SSH, môi trường TTY không được tự động cấp phát.

2. Nguyên nhân

sudo yêu cầu TTY:

Một số cấu hình sudo (trong file sudoers) yêu cầu lệnh sudo chỉ được thực thi trong môi trường TTY. Khi chạy qua SSH mà không cấp phát TTY, sudo không thể thực thi lệnh.

top yêu cầu TTY:

Lệnh top là một lệnh tương tác, cần môi trường TTY để hiển thị thông tin.

3. Cách khắc phục

Cấp phát TTY khi chạy SSH

Thêm tùy chọn -t vào lệnh ssh để cấp phát TTY:

ssh -t -p 2222 ubuntu@10.166.23.21 'sudo top -c'
  • Tùy chọn -t đảm bảo rằng SSH cấp phát một TTY cho phiên làm việc từ xa.
  • Lệnh này sẽ chạy sudo top -c trên máy từ xa và hiển thị kết quả trong terminal của bạn.

Kiểm tra cấu hình sudo

Nếu bạn không muốn sử dụng -t, bạn có thể kiểm tra và chỉnh sửa cấu hình sudo trên máy từ xa:

Mở file sudoers:

   sudo visudo

Tìm dòng:

   Defaults requiretty

Nếu dòng này tồn tại, hãy comment nó lại bằng cách thêm # ở đầu dòng:

   # Defaults requiretty

Lưu file và thử lại lệnh SSH:

   ssh -p 2222 ubuntu@10.166.23.21 'sudo top -c'

3. Sử dụng lệnh thay thế

Nếu bạn chỉ cần thông tin từ top mà không cần interface tương tác, bạn có thể sử dụng lệnh ps thay thế:

ssh -p 2222 ubuntu@10.166.23.21 'sudo ps aux'

Tóm lại

  • Sử dụng ssh -t để cấp phát TTY khi chạy lệnh qua SSH.
  • Kiểm tra và chỉnh sửa cấu hình sudo nếu cần.
  • Sử dụng lệnh thay thế như ps nếu không cần interface tương tác của top.

4. Lưu ý.

Lưu ý với thêm tùy chọn -t vào lệnh SSH để cấp phát TTY (Terminal) không gây nguy hiểm trong hầu hết các trường hợp. Tuy nhiên, nó có một số điểm cần lưu ý:

Tùy chọn -t là gì?

  • Tùy chọn -t trong SSH buộc cấp phát một TTY (pseudo-terminal) cho phiên làm việc từ xa.
  • Điều này cần thiết khi chạy các lệnh yêu cầu môi trường TTY, như sudo, top, hoặc các lệnh tương tác khác.

Có nguy hiểm không?

  • Không nguy hiểm trong hầu hết các trường hợp:
  • Tùy chọn -t chỉ tạo một môi trường TTY để lệnh có thể chạy. Nó không làm tăng quyền hạn hoặc thay đổi cách hoạt động của SSH.
  • Nếu bạn đã có quyền SSH vào máy từ xa, việc thêm -t không làm tăng rủi ro bảo mật.
  • Tuy nhiên, cần lưu ý:
  • Nếu server từ xa bị cấu hình sai hoặc có lỗ hổng bảo mật, việc cấp phát TTY có thể bị lợi dụng để thực hiện các cuộc tấn công leo thang quyền hạn.
  • Ví dụ: Nếu sudo được cấu hình không an toàn, một người dùng có thể lợi dụng TTY để chạy các lệnh không được phép.

Khi nào không nên dùng -t?

  • Khi chạy các lệnh không cần TTY:
  • Nếu lệnh không yêu cầu TTY (ví dụ: ls, cat, ps), không cần sử dụng -t vì nó không cần thiết.
  • Khi chạy lệnh tự động qua script:
  • Nếu bạn chạy lệnh qua script hoặc cron job, việc cấp phát TTY có thể gây lỗi nếu không có terminal thực tế.

Khi nào nên dùng -t?

  • Khi chạy các lệnh yêu cầu TTY, như:
  • sudo (nếu cấu hình yêu cầu TTY).
  • Các lệnh tương tác như top, htop, hoặc vim.

5. Kết luận

  • Không nguy hiểm: Tùy chọn -t chỉ cấp phát TTY và không làm tăng quyền hạn hoặc rủi ro bảo mật.
  • Sử dụng khi cần thiết: Dùng -t khi chạy các lệnh yêu cầu TTY, như sudo top -c.
  • Không cần thiết: Tránh dùng -t nếu lệnh không yêu cầu TTY hoặc khi chạy trong môi trường tự động.

Hãy sử dụng tùy chọn này một cách hợp lý và chỉ khi cần thiết! 😊

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email