[Linux] Tìm hiểu sự khác biệt giữa lệnh “su – user” và “su user” trên Linux

210

Bài viết này là cái note nhỏ để tìm hiểu sự khác biệt giữa lệnh “su – user” và “su user” trên Linux hay nói cách khác là cách sử dụng lệnh “su option “” và “sukhông có option ““. Cụ thể là :

 
Mình không giải thích cách xài lệnh “su” nhé, hẹn dịp nói trong 1 bài viết khác. Còn bạn muốn 1 cái định nghĩa đơn giản thì nó như thế này :

Chương trình lệnh “su” giúp chúng ta chạy 1 shell mới bằng cách chuyển đổi session shell mới sang user ID và group ID khác. Nói tóm gọi là đăng nhập sang 1 user khác ngay trên terminal đang chạy.

 
Ok giờ mình nói đến sự khác biệt nào.

1. “su – <user>”

– Khi bạn sử dụng lệnh “su+” để chuyển đổi session user khác thì đồng nghĩa với việc yêu cầu hệ thống Linux hãy tạo 1 session hoàn toàn mới và thay đổi toàn bộ các biến môi trường của user hiện tại sang user khác, hay còn gọi là load toàn bộ biến môi trường của user mà mình muốn chuyển session qua y hệt như bạn mở 1 session SSH hay local đăng nhập vào user đó. Bạn coi qua ví dụ 1 để hiểu thêm.
– Ví dụ ở đây ta xét biến môi trường $PATH là dễ hình dung nhất.

Ví dụ 1:

 
– Thực hiện chuyển đổi sang user root với “su –“. Nếu bạn không để tên username sau lệnh su thì mặc định Linux hiểu là bạn đang muốn chuyển session sang user root.

 
– Bạn sẽ thấy là biến môi trường $PATH có sự khác nhau rõ rệt của 2 user.
 

2. “su <user>”

– Thế nhưng nếu bạn sử dụng lệnh “su” mà không có dấu” thì session chuyển đổi sang user khác sẽ không được áp hay được thiết lập các biến môi trường được quy định của user đó, trong trường hợp này là vẫn giữ thông tin biến môi trường của user cũ. Bạn coi qua ví dụ 2:
– Ta vẫn ở thư mục và session của user “cuongqc” và xét biến môi trường $PATH như cũ.

Ví dụ 2:

 
– Thực hiện chuyển đổi sang user root với “su “.

 
Hy vọng với 2 cái ví dụ ở trên thì bạn đã hiểu rõ hơn về sự khác biệt này.

Đánh giá sao từ người đọc :
[ Tổng : 1 - Trung bình: 5 ]