Lệnh agetty trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh agetty của Linux và các ứng dụng thực tế của nó. Lab này bao gồm việc hiểu mục đích và cách sử dụng lệnh agetty, cấu hình nó cho truy cập console nối tiếp và quản lý các quy trình đăng nhập của người dùng. Chúng ta sẽ tìm hiểu cách agetty chịu trách nhiệm hiển thị dấu nhắc đăng nhập, xử lý quy trình đăng nhập của người dùng, khởi tạo cài đặt terminal và khởi chạy shell của người dùng sau khi đăng nhập thành công. Ngoài ra, chúng ta sẽ cấu hình agetty để cho phép truy cập console nối tiếp trên hệ thống của mình. Lab này cung cấp một sự hiểu biết toàn diện về lệnh agetty và vai trò của nó trong việc quản lý quy trình đăng nhập của người dùng trong môi trường Linux.

Tìm hiểu Mục đích và Cách sử dụng của lệnh agetty

Trong bước này, chúng ta sẽ khám phá mục đích và cách sử dụng của lệnh agetty trong Linux. Lệnh agetty là một chương trình quản lý quy trình đăng nhập của người dùng trên các console ảo hoặc cổng nối tiếp của hệ thống.

Đầu tiên, hãy kiểm tra phiên bản của agetty được cài đặt trên hệ thống của chúng ta:

agetty --version

Ví dụ đầu ra:

agetty (util-linux 2.37.2)

Lệnh agetty chịu trách nhiệm cho:

  • Hiển thị dấu nhắc đăng nhập
  • Xử lý quy trình đăng nhập của người dùng
  • Khởi tạo cài đặt terminal
  • Khởi chạy shell của người dùng sau khi đăng nhập thành công

Để hiểu cách sử dụng cơ bản của agetty, chúng ta có thể chạy lệnh sau:

man agetty

Điều này sẽ mở trang hướng dẫn sử dụng cho lệnh agetty, cung cấp thông tin chi tiết về các tùy chọn và cách sử dụng của nó.

Cấu hình agetty cho Truy cập Console Nối tiếp

Trong bước này, chúng ta sẽ cấu hình agetty để cho phép truy cập console nối tiếp trên hệ thống của chúng ta.

Đầu tiên, hãy kiểm tra cấu hình hiện tại của agetty bằng cách kiểm tra tệp /etc/inittab (lưu ý rằng trong Ubuntu 22.04, tệp /etc/inittab không còn được sử dụng nữa, vì vậy chúng ta sẽ sử dụng cấu hình systemd thay thế):

sudo cat /etc/systemd/system/[email protected]

Điều này sẽ hiển thị cấu hình mặc định cho dịch vụ getty, được sử dụng bởi agetty để quản lý quy trình đăng nhập.

Tiếp theo, hãy cấu hình agetty để cho phép truy cập console nối tiếp. Chúng ta sẽ tạo một tệp dịch vụ systemd mới cho console nối tiếp:

sudo nano /etc/systemd/system/[email protected]

Thêm nội dung sau vào tệp:

[Unit]
Description=Serial Getty on %I
After=systemd-user-sessions.service plymouth-quit-wait.service
[Service]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --noclear %I $TERM
Type=idle
Restart=always
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
[Install]
WantedBy=getty.target

Cấu hình này thiết lập agetty để lắng nghe trên console nối tiếp ở tốc độ baud 115200, 38400 và 9600 và tự động khởi động lại dịch vụ nếu nó bị lỗi.

Lưu tệp và bật dịch vụ systemd mới:

sudo systemctl enable [email protected]
sudo systemctl start [email protected]

Điều này sẽ khởi động quy trình agetty cho console nối tiếp trên thiết bị ttyS0.

Quản lý Quy trình Đăng nhập của Người dùng với agetty

Trong bước cuối cùng này, chúng ta sẽ khám phá cách quản lý quy trình đăng nhập của người dùng bằng lệnh agetty.

Đầu tiên, hãy tạo một tài khoản người dùng mới mà chúng ta có thể sử dụng để kiểm tra quy trình đăng nhập:

sudo useradd -m testuser
sudo passwd testuser

Điều này sẽ tạo một tài khoản người dùng mới có tên là "testuser" và đặt mật khẩu cho tài khoản.

Tiếp theo, chúng ta có thể sử dụng lệnh agetty để mô phỏng quy trình đăng nhập của người dùng. Chạy lệnh sau:

sudo agetty --login-program /bin/login --autologin testuser tty1

Lệnh này sẽ bắt đầu một quy trình agetty tự động đăng nhập vào tài khoản "testuser" trên console ảo tty1.

Bây giờ bạn có thể chuyển sang console tty1 (thường được truy cập bằng cách nhấn Ctrl+Alt+F1) và bạn sẽ thấy người dùng đã đăng nhập với tư cách "testuser".

Để kết thúc quy trình agetty, hãy nhấn Ctrl+C trong terminal nơi bạn đã chạy lệnh agetty.

Tóm tắt

Trong lab này, trước tiên chúng ta đã khám phá mục đích và cách sử dụng của lệnh agetty, lệnh này quản lý quy trình đăng nhập của người dùng trên các console ảo hoặc cổng nối tiếp của hệ thống. Chúng ta đã biết rằng agetty chịu trách nhiệm hiển thị dấu nhắc đăng nhập, xử lý quy trình đăng nhập của người dùng, khởi tạo cài đặt terminal và khởi chạy shell của người dùng sau khi đăng nhập thành công.

Tiếp theo, chúng ta đã cấu hình agetty để cho phép truy cập console nối tiếp trên hệ thống của mình. Chúng ta đã tạo một tệp dịch vụ systemd mới cho console nối tiếp, tệp này thiết lập agetty để lắng nghe trên cổng nối tiếp và xử lý quy trình đăng nhập cho người dùng console nối tiếp.

400+ câu lệnh phổ biến trong Linux