Cách dùng lệnh su trong linux (so sánh SU vs -SU)
Trong bài viết này mình sẽ giới thiệu lệnh SU trong Linux, đây là lệnh dùng để chuyển đổi tài khoản trên Linux.
Sử dụng su là cách đơn giản nhất để chuyển sang tài khoản quản trị trong phiên đăng nhập hiện tại. Điều này đặc biệt hữu ích khi người dùng root không được phép đăng nhập vào hệ thống thông qua ssh hoặc sử dụng chương trình quản lý đồ họa GUI.
1. Cú pháp lệnh SU trong Linux
Lệnh su có cú pháp như sau:
su [OPTIONS] [USER [ARGUMENT...]]
Khi bạn chạy lệnh su mà không truyền gì vào thì nó sẽ hiểu là bạn sẽ chuyển sang tài khoản root. Lúc này bạn sẽ được nhắc nhập mật khẩu tk root để xác thực, ngay sau đó mọi lệnh bạn chạy được gán cho tài khoản root.
Bài viết này được đăng tại [free tuts .net]
Để kiểm tra xem có đúng là đã chuyển sang tk root hay không thì hãy sử dụng lệnh whoimi nhé.
whoami
Kết quả sẽ trả về như sau:
root
2. Sự khác nhau giữa lệnh SU và -SU trong Linux
Trong phần này mình sẽ nói về sự khác nhau giữa hai lệnh SU
và SU -
trong Linux. Đây là hai lệnh quan trọng được sử dụng để triển khai bảo mật trong Linux, liên quan đến chính sách quản lý người dùng và quyền của người dùng.
Lệnh SU
được sử dụng để chuyển sang người dùng khác, hay nói cách khác là thay đổi ID người dùng trong một phiên đăng nhập bình thường (đó là lý do tại sao đôi khi nó được một số người dùng Linux gọi là switch (-) user).
Nếu bạn không nhập tên người dùng (ví dụ như su -), thì nó sẽ đăng nhập với tư cách người dùng root theo mặc định.
Trường hợp dùng SU trong Linux
Thông thường, để chuyển thành người dùng khác hoặc đăng nhập vào người dùng khác, bạn có thể gọi lệnh sau:
$ su tecmint
Sau đó bạn sẽ được nhắc nhập mật khẩu của người dùng mà bạn đang chuyển sang (như ví dụ trên người dùng tên là tecmint).
Ta hãy xét đến tình huống ở hình chụp trên nhé, điều quan trọng cần lưu ý ở đây là người dùng tecmint giữ lại toàn bộ môi trường làm việc của user aaronkilik như: thư mục làm việc hiện tại và đường dẫn đến file thực thi cũng được giữ nguyên.
Do đó, khi người dùng tecmint dùng lệnh ls
để liệt kê thư mục làm việc (vẫn là thư mục làm việc của người dùng aaronkilik), thì xuất hiện lỗi: “ls: cannot open directory .: Permission denied”.
Nhưng cuối cùng, người dùng tecmint có thể liệt kê thư mục chính của mình sau khi chạy lệnh cd
mà không cần thêm tham số phía sau.
Trường hợp dùng SU - trong Linux
Thứ hai, khi bạn gọi lệnh su bằng cờ -
, hoặc -l
hoặc --login
, thì Linux sẽ cung cấp cho bạn một giao diện đăng nhập tương tự như khi bạn đăng nhập bình thường. Tất cả các lệnh dưới đây tương đương với nhau.
$ su - tecmint OR $ su -l tecmint OR $ su --login tecmint
Trong trường hợp này, người dùng tecmint được cung cấp môi trường đăng nhập mặc định của riêng mình, bao gồm đường dẫn đến các tệp thực thi, nên có thể sử dụng lệnh liệt kê file và thư mục ls
bình thường.
Điều quan trọng là khi bạn chạy su
mà không có tên người dùng, bạn sẽ tự động trở thành superuser. Bạn sẽ được cung cấp môi trường mặc định của root, bao gồm các thay đổi đường dẫn đến các file thực thi. Bạn cũng có thể truy cập vào thư mục chính của root:
$ su
Hy vọng bài viết này cung cấp đủ thông tin cho bạn, giúp bạn phân biệt được sự khác nhau giữa hai lệnh SU
và SU -
trong Linux.