Tìm Hiểu Về Login Shells Trong Linux

Chào các bạn hôm nay chúng ta cùng tìm hiểu chủ đề về kiến thức Linux, đó là về môi trường shell cụ thể là Login Shells khi bạn sử dụng lúc SSH vào Linux. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.

Chương trình shell Linux, ví dụ như bash/sh sẽ sử dụng tập hợp các script để tạo nên môi trường sử dụng. Mỗi script có một nhiệm vụ nhất định như khai báo biến, khởi tạo biến môi trường và có ảnh hưởng đến các môi trường khác nhau. Mỗi script sau khi thực thi có thể ghi đè lên giá trị biến môi trường từ các script trước.

Login-Shell: Một khái niệm cần hiểu rõ của shell là việc phân loại thành Login và Non-login shell.
Khi bạn login thành công, tiến trình login sẽ được thay thế bởi shell, (thông thường theo mặc định là bash shell), shell này là LOGIN shell

Trong login-shelle thì có nhiều file nhưng các bạn cần chú ý đến 3 file chính và các file này sẽ sếp theo thứ tự ưu tiên để thực thi khii bạn login vào SSH như sau.

/etc/profile

Khi bạn đăng nhập vào server, nếu file này tồn tại thì hệ thống sẽ source file này. Tức là máy tính sẽ đọc file này và thực thi tất cả câu lệnh có trong file này và hiển thị lên màn hình khi ta vừa login thành công

Source các file này là sao? Mình sẽ lấy một ví dụ về ý nghĩa của từ source như sau.

Chèn một nội dung test vào cuối file /etc/profile với nội dung “Here is etc/profile”

Login Shells

Sau đó ta exit SSH và login lại để kiểm tra

Sau khi login lại thì hệ thống sẽ source các nội dung trong file /etc/profile và hiện trên màn hình cho chúng ta.

Lưu ý: File này là file hệ thống các bạn hạn chế chỉnh sửa cũng như thay thế sẽ có thể gây ra lỗi.

~/.bash_profile

Sau khi hệ thống tìm và source file /etc/profile thì tiếp theo hệ thống sẽ tìm và source file .bash_profile nằm trong thư mục Home của server.

Để chứng minh cho điều đó mình sẽ thêm một dòng có nội dung echo”Here is .bash_profile”

Sau đó mình sẽ exit SSH và login lại để xem kết quả.

Các bạn có thể thấy hệ thống sẽ source theo thứ tự ưu tiên và hiển thị lên màn hình với từng nội dung trong file tương ứng.

~/.profile (nếu có)

File .profile này sẽ là sự lựa chọn nếu file .bash_profile không có hoặc lỗi. Nếu như file .bash_profile không có thì hệ thống sẽ tự động tìm và source file này ( .profile)

File .profile mặc định sẽ không có nên chúng ta có thể tạo nó và thiết lập những nội dung giống file .bash_profile để dự phòng.

Ví dụ: Mình sẽ tạo file .profile với nội dung là “Here is .profile” mặc định nếu còn file .bash_profile thì hệ thống sẽ không source file .profile nên mình sẽ thay đổi tên của file .bash_profile thành .bash_profile.bak để kiểm tra.

Chưa đổi tên file .bash_profile

Sau khi đổi tên và login lại thì hệ thống sẽ tìm file .profile để chạy thay cho file .bash_profile bị thay đổi.

Đã đổi tên file .bash_profile

  • Chúng ta vẫn có thể ép chương trình thực thi cả 2 file .bash_profile và file .profile cùng một lúc khi login. Ta có thể thêm dòng này vào file .bash_profile

Chú thích:

  • if [ -f ~/.profile ] : Nếu file .profile có tồn tại
  • then source ~/.profile : thì sẽ source file này ( .profile)

Chúng ta có thể thấy sau khi ta chèn điều kiện vào file .bash_profile thì hệ thống đã có thể thực thi cả 2 file cùng một lúc và hiện thị ra màn hình khi ta login vào.

Để lấy một ví dụ cụ thể hơn, lần này mình sẽ thêm Logo VinaHost và thêm màu cho chính Logo này, Mình sẽ thêm logo và file .bash_profile để hệ thống thực thi và hiện logo sau mỗi lần login vào.

Đây là file .bash_profle mà mình đã thêm. Bây giờ mình sẽ exit và login lại để xem kết quả.

Login Shells

Hiện tại hệ thống thực thi các nội dung trong file này và trả về logo khi chúng ta login vào.

Như vậy bài tìm hiểu về Login-shell cụ thể hơn là file .bash_profile của mình đã hoàn thành. Nếu có thắc mắc hoặc yêu cầu trợ giúp, xin vui lòng gửi email về support@vinahost.vn để được hỗ trợ.

THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST:

>> SERVERCOLOCATION – CDN

>> CLOUDVPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

Was this article helpful?