Hiện tại, Linux hỗ trợ tính năng chuyển đổi giữa các tài khoản người dùng, giúp ngăn ngừa xung đột giữa các phiên làm việc. Và lệnh su là công cụ chính để thực hiện lệnh chuyển đổi này. Bài viết này mình sẽ giới thiệu chi tiết đến bạn cách sử dụng lệnh su trong Linux thông qua 6 ví dụ cụ thể.
Lệnh su trong Linux là gì?
Lệnh su (switch user) được sử dụng trong việc quản lý và bảo mật hệ thống nhiều người dùng. Dòng lệnh cho phép người dùng chuyển đổi giữa các tài khoản người dùng khác trên cùng một phiên làm việc.
Cú pháp:
su [options] [-] [user [argument...]]
Bên cạnh đó, bạn có thể tham khảo một số bài viết về các câu lệnh trong Linux dưới đây:
8 tùy chọn sử dụng lệnh su
Bạn có thể tự kiểm tra các tùy chọn của lệnh su bằng cách nhập lệnh sau:
man su
Tuỳ chọn | Mô tả |
-c/--command=command | Thực thi một lệnh cụ thể với quyền của người dùng khác |
-f/--fast | Truyền tham số -f tới shell, có thể ảnh hưởng đến hành vi của shell tùy thuộc vào loại shell |
-g/--group=group | Chỉ định nhóm chính (chỉ dành cho người dùng root) |
-G/--supp-group=group | Chỉ định nhóm bổ sung (chỉ dành cho người dùng root). Nhóm bổ sung đầu tiên cũng sẽ được sử dụng làm nhóm chính nếu không chỉ định tùy chọn -group |
-h/--help | Hiển thị thông tin trợ giúp cho lệnh su |
-l/--login | Khởi động một phiên đăng nhập mới với môi trường tương tự như đăng nhập thực tế |
-p/--preserve-environment | Giữ nguyên môi trường shell hiện tại |
-s/--shell | Chỉ định một môi trường shell khác để chạy |
6 ví dụ về cách sử dụng lệnh su trong Linux
Ví dụ 1: Chuyển sang tài khoản Root
Lệnh su trong Linux được sử dụng để chuyển đổi quyền truy cập người dùng. Nếu không chỉ định được tên người dùng cụ thể thì hệ thống sẽ chuyển sang người dùng có quyền truy cập root (toàn quyền).
Các bước thực hiện như sau:
Bước 1: Mở cửa sổ terminal trên Ubuntu.
Bước 2: Gõ lệnh sudo dưới đây vào command prompt và nhấn phím Enter:
sudo su
Kết quả: Nếu mật khẩu đúng, bạn sẽ được chuyển sang tài khoản Root.
Ví dụ 2: Chuyển đổi sang người dùng cụ thể bằng lệnh su
Ví dụ, bạn cần chuyển từ người dùng có quyền truy cập root sang người dùng có tên susmit. Lúc này, hệ thống sẽ không yêu cầu bạn nhập mật khẩu vì hiện tại bạn đang có quyền truy cập cao nhất.
Bạn thực hiện các bước thực hiện như sau:
Bước 1: Mở cửa sổ terminal trên Ubuntu.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
su susmit
Kết quả: Bạn sẽ thấy tên người dùng ở đầu dòng lệnh thay đổi thành susmit. Lúc này, bạn đang làm việc dưới quyền truy cập của tài khoản này.
Ví dụ 3: Chuyển đến thư mục home của người dùng cụ thể
Trong ví dụ này, bạn sẽ cần sử dụng lệnh su với tùy chọn -l
để chuyển từ người dùng có quyền truy cập root sang người dùng có tên susmit, với mục đích truy cập môi trường shell hiện tại của người dùng này.
Các bước thực hiện như sau:
Bước 1: Mở cửa sổ terminal trên Ubuntu.
Bước 2: Nhâp cú pháp lệnh sau vào command prompt và nhấn phím Enter:
su -l susmit
Kết quả: Hình ảnh minh họa cho thấy sau khi thực hiện lệnh, bạn đã chuyển từ người dùng có quyền truy cập root sang người dùng susmit và đang sử dụng môi trường làm việc của họ.
Ví dụ 4: Thực hiện lệnh su dưới quyền người dùng khác
Giả sử, bạn không phải là người dùng có quyền truy cập root, bạn sẽ không thể xem các file và thư mục trong thư mục /root. Tuy nhiên bạn vẫn có thể thể liệt kê các thành phần trong thư mục này bằng lệnh su với tùy chọn -c
mà không cần chuyển đổi thành người dùng root.
Lúc này, bạn cần thực hiện như sau:
Bước 1: Mở cửa sổ terminal trên Ubuntu.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
sudo su -c 'ls /root' root
Kết quả: Sau khi thực hiện lệnh, bạn có thể truy cập vào thư mục root mặc dù không chuyển sang người dùng có quyền truy cập root, tương tự như hình dưới:
Ví dụ 5: Làm việc cùng người dùng khác ngay trên môi trường hiện tại
Bạn có thể sử dụng lệnh su với tùy chọn -p
để chuyển sang làm việc với một người dùng khác mà không cần thay đổi môi trường làm việc hiện tại. Giả sử, hiện tại bạn cần chuyển sang tài khoản người dùng rick nhưng vẫn ở lại môi trường hiện tại.
Các bước thực hiện cụ thể như sau:
Bước 1: Mở cửa sổ terminal trên Ubuntu.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
su -p rick
Kết quả: Sau khi chạy lệnh, bạn sẽ chuyển sang làm việc dưới quyền người dùng rick, tuy nhiên mọi thứ trong môi trường làm việc của bạn sẽ vẫn được giữ nguyên như trước.
Ví dụ 6: Thay đổi sang một shell khác bằng lệnh su trong Linux
Để chuyển sang một môi trường làm việc khác trên hệ thống Linux, bạn có thể sử dụng lệnh su kèm theo tùy chọn -s
. Trong ví dụ này, bạn sẽ chuyển từ tài khoản người dùng susmit sang tài khoản root và mở thêm một shell mới là /bin/sh.
Các bước thực hiện cụ thể như sau:
Bước 1: Mở cửa sổ terminal trên Ubuntu.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
sudo su -s /bin/sh
Kết quả: Sau khi thực hiện lệnh, bạn sẽ được chuyển sang shell mới là /bin/sh với tài khoản người dùng root.
Sự khác biệt giữa lệnh su và sudo trong Linux
Trong hệ điều hành Linux, lệnh sudo và su đều cho phép bạn thực hiện các tác vụ với quyền hạn cao hơn, nhưng cả 2 đều có những điểm khác nhau.
Như hình minh hoạ, ban đầu lệnh su thực hiện tác vụ thất bại vì không có quyền truy cập admin. Tuy nhiên sau đó, lệnh sudo đã cấp quyền quản trị cho lệnh su để có thể hoàn thành tác vụ này.
Câu hỏi thường gặp
Tại sao lệnh su lại yêu cầu mật khẩu khi chuyển đổi sang người dùng khác?
Lệnh su yêu cầu mật khẩu khi chuyển đổi sang người dùng khác vì lý do bảo mật: bảo vệ tài khoản người dùng, ngăn chặn truy cập trái phép và đảm bảo tính toàn vẹn của hệ thống.
Sự khác biệt giữa lệnh su – và su -l là gì?
Cả 2 đều chuyển đổi người dùng
su -l: liệt kê các nhóm mà người dùng đích thuộc về
su – : khởi động một shell mới với các biến môi trường và cài đặt của người dùng mới
Có thể sử dụng lệnh su để chuyển đổi giữa các người dùng mà không cần nhập mật khẩu không?
Câu trả lời là không. Vì thông thường lệnh su
yêu cầu bạn nhập mật khẩu của người dùng đích để đảm bảo an toàn để đảm bảo tính bảo mật.
Lời kết
Bài viết này đã hướng dẫn bạn cách sử dụng lệnh su để chuyển đổi giữa các tài khoản người dùng khác nhau trên hệ thống Linux. Hy vọng rằng với những ví dụ thực tế được cung cấp, bạn có thể nắm vững cách thao tác và làm chủ lệnh su trong Linux.