Cách sử dụng lệnh SU trong Linux

Lệnh su thường được sử dụng cùng với các lệnh khác như sudo để truy cập nâng cao tạm thời, passwd để thay đổi mật khẩu và whoami để kiểm tra xem bạn hiện đang đăng nhập với tư cách người dùng nào. Hiểu su rất quan trọng đối với các tác vụ quản trị hệ thống và đối với người dùng cần hoạt động trong môi trường nhiều người dùng.

Vì vậy, hãy bắt đầu và tìm hiểu cách sử dụng hiệu quả lệnh su để chuyển đổi tài khoản người dùng và nâng cao quyền.

Cú pháp chung của lệnh su:

$ su [OPTIONS] [USER [ARGUMENT...]]

1. Đăng nhập bằng tài khoản người dùng khác

su [username]

Chuyển tên người dùng tới lệnh su và nó sẽ cung cấp phiên đăng nhập khi mật khẩu đã được xác minh.

Ví dụ 1: Chuyển sang người dùng root

Nếu bạn chạy su mà không có tên người dùng, nó sẽ mặc định là người dùng root. Bạn sẽ được nhắc nhập mật khẩu root.

$ su
Password: [Enter root password here]
# [You are now in a shell as the root user]

Ví dụ 2: Chuyển sang một người dùng cụ thể

Để chuyển sang một người dùng cụ thể, bạn có thể chỉ định tên người dùng làm đối số. Ví dụ, để chuyển sang người dùng có tên john, bạn sẽ làm như sau:

$ su john
Password: [Enter john's password here]
$ [You are now in a shell as john]

Ví dụ 3: Chạy lệnh với tư cách người dùng khác

Bạn cũng có thể chạy một lệnh với tư cách một người dùng khác mà không cần vào shell của họ. Ví dụ, để chạy whoami với tên john:

$ su -c "whoami" john
Password: [Enter john's password here]
john

2. Đăng nhập bằng tài khoản người dùng khác + chạy lệnh

su [username] -c [command]

Tùy chọn -c cho phép bạn chạy một lệnh cụ thể dưới một tài khoản người dùng khác và hiển thị kết quả trong phiên đăng nhập hiện tại.

Ví dụ 1: Chạy lệnh với quyền root

Giả sử bạn muốn chạy lệnh ls /root để liệt kê nội dung của thư mục /root, thường chỉ người dùng root mới có thể truy cập được. Bạn có thể dùng:

su root -c "ls /root"

Sau khi thực thi lệnh này, bạn sẽ được nhắc nhập mật khẩu root. Sau khi được xác thực, lệnh ls /root sẽ được thực thi và bạn sẽ thấy nội dung của thư mục /root.

Ví dụ 2: Chạy lệnh với tư cách người dùng khác

Giả sử bạn có một người dùng khác trên hệ thống của mình tên là john và bạn muốn chạy script Python có tại /home/john/script.py với tư cách là người dùng đó. Bạn có thể dùng:

su john -c "python3 /home/john/script.py"

Một lần nữa, bạn sẽ được nhắc nhập mật khẩu cho tài khoản john. Sau khi được xác thực, script Python sẽ được thực thi với tư cách người dùng john.

Ví dụ 3: Chạy nhiều lệnh

Bạn cũng có thể chạy nhiều lệnh theo trình tự. Ví dụ, để thay đổi thành một thư mục và sau đó liệt kê nội dung của nó với tư cách người dùng john, bạn có thể thực thi:

su john -c "cd /home/john/documents && ls"

Thao tác này sẽ chuyển sang người dùng john, điều hướng đến /home/john/documents và sau đó liệt kê nội dung của thư mục đó.

3. Chỉ định shell

su -s /bin/[shell]

Sử dụng tùy chọn -s để thay đổi shell mặc định hiện có thành một shell khác.

Ví dụ:

Giả sử bạn hiện đang đăng nhập với tư cách là người dùng john và bạn muốn chuyển sang người dùng alice bằng cách sử dụng bash shell. Bạn sẽ thực thi lệnh sau:

su -s /bin/bash alice

Sau khi chạy lệnh này, bạn sẽ được nhắc nhập mật khẩu cho alice. Nếu mật khẩu đúng, bạn sẽ được chuyển sang tài khoản người dùng của Alice và shell sẽ là bash.

4. Bảo vệ môi trường tài khoản người dùng

su –p [another_user]

Tùy chọn -p cho phép bạn giữ nguyên môi trường của tài khoản người dùng hiện tại.

Ví dụ:

Giả sử bạn hiện đang đăng nhập với tư cách là người dùng john và bạn muốn chuyển sang người dùng alice nhưng vẫn giữ nguyên các biến môi trường của john.

Hãy gõ lệnh sau:

su -p alice

Bạn sẽ được nhắc nhập mật khẩu cho Alice.

Sau khi nhập mật khẩu thành công, bạn sẽ được chuyển sang người dùng alice, nhưng môi trường của bạn vẫn chứa các cài đặt từ john.

Thứ Bảy, 30/12/2023 06:38
53 👨 358
0 Bình luận
Sắp xếp theo
    ❖ Linux