Lệnh “su” cho phép bạn chạy một shell với quyền của một người dùng khác trên hệ thống Linux. Điều này có nghĩa là bạn có thể đăng nhập với một người dùng khác mà không cần đăng xuất khỏi tài khoản của mình. Lệnh này rất hữu ích cho việc thực hiện các tác vụ đòi hỏi quyền truy cập cao, nhưng đòi hỏi quyền truy cập của một người dùng khác.
Cú pháp của lệnh su trên Linux là:
su [options] [username]
Trong đó, options
là các tùy chọn cho lệnh, và username
là tên người dùng mà bạn muốn đăng nhập.
Ví dụ, để đăng nhập vào tài khoản root, ta có thể sử dụng lệnh:
su
Lúc này, hệ thống sẽ yêu cầu nhập mật khẩu của tài khoản root. Sau khi nhập đúng mật khẩu, bạn sẽ đăng nhập vào tài khoản root và có thể thực hiện các lệnh với quyền root.
Nếu bạn muốn đăng nhập vào tài khoản khác, bạn có thể sử dụng lệnh:
su username
Trong đó username
là tên người dùng mà bạn muốn đăng nhập. Lúc này, hệ thống sẽ yêu cầu nhập mật khẩu của tài khoản đó. Nếu bạn nhập đúng mật khẩu, bạn sẽ đăng nhập vào tài khoản đó và có thể thực hiện các lệnh với quyền của tài khoản đó.
Su to root
Giả sử bạn đang đăng nhập vào máy tính với tài khoản user và muốn đăng nhập vào hệ thống với quyền root để thực hiện một số lệnh đòi hỏi quyền quản trị viên. Bạn có thể sử dụng lệnh sau để đăng nhập vào hệ thống với quyền root:
su -
Sau đó, bạn sẽ được yêu cầu nhập mật khẩu quản trị viên của hệ thống để xác thực. Nếu mật khẩu được xác thực thành công, bạn sẽ đăng nhập vào hệ thống với quyền root và có thể thực hiện các lệnh đòi hỏi quyền quản trị viên.
Ví dụ: Nếu mật khẩu quản trị viên của hệ thống là “password”, bạn có thể sử dụng lệnh sau để đăng nhập vào hệ thống với quyền root:
su -
Password: password
Lưu ý rằng, nếu không nhập tên người dùng, su sẽ đăng nhập vào tài khoản root mặc định, nếu tồn tại.
Su – $username
Giả sử tôi đang đăng nhập với tài khoản “user1” và muốn đăng nhập vào tài khoản “user2”, tôi có thể sử dụng lệnh “su – user2” như sau:
[user1@localhost ~]$ su - user2
Password:
[user2@localhost ~]$
Sau khi nhập mật khẩu của tài khoản “user2”, tôi đã đăng nhập thành công vào tài khoản đó và được đưa đến thư mục home của tài khoản đó.
Sử dụng lệnh sudo
Với lệnh “sudo” chúng ta được phép tạo người dùng mới trên hệ thống mà không cần trở thành root hoặc không cần biết mật khẩu root. Nó cho phép người dùng đăng nhập và thực thi các lệnh hoặc các chương trình với đặc quyền root mà không cần truy cập trực tiếp vào tài khoản root. Ví dụ:
sudo adduser johndoe
Lệnh trên sẽ tạo một người dùng mới có tên là “johndoe” trên hệ thống. Sử dụng sudo cho phép người dùng hiện tại thực thi lệnh “adduser” với đặc quyền của người dùng root mà không cần biết mật khẩu của root.
sudo su –
Mặc định, một số hệ thống Linux như Ubuntu không có mật khẩu được đặt cho người dùng root. Điều này có nghĩa là bạn không thể đăng nhập dưới tên người dùng root.
Để thực hiện các tác vụ giống như root, một người dùng được cấp quyền sudo toàn bộ thông qua file /etc/sudoers. Tất cả các người dùng là thành viên của nhóm admin có thể sử dụng lệnh sudo để thực hiện các tác vụ giống như root.
Ví dụ để đăng nhập vào terminal với quyền root trên Ubuntu, bạn có thể sử dụng lệnh sudo su -
. Hoặc ví dụ bạn cần cài đặt một phần mềm trên Ubuntu, bạn có thể sử dụng lệnh sudo apt-get install <package_name>
để cài đặt phần mềm đó. Lệnh này yêu cầu quyền root, vì vậy bạn phải sử dụng sudo su -
để đăng nhập vào hệ thống với quyền root trước khi sử dụng lệnh cài đặt phần mềm.
Bạn có thể sử dụng lệnh:
grep admin /etc/sudoers
Đây là một command trên Linux, được sử dụng để tìm kiếm và hiển thị các dòng chứa chuỗi “admin” trong file /etc/sudoers
. Tệp này chứa các quyền sudo của các người dùng và nhóm trên hệ thống, cho phép họ thực thi các lệnh với đặc quyền người dùng root. Việc tìm kiếm admin
trong file này có thể giúp chúng ta tìm ra các người dùng hoặc nhóm có quyền sudo trên hệ thống.
Running Program As Another User / sudo Command
Lệnh sudo cho phép người dùng khởi động các chương trình với các thông tin xác thực của một người dùng khác. Nó cho phép người dùng thực hiện các tác vụ như là một người dùng khác mà không cần phải đăng nhập vào tài khoản đó.
Ví dụ nếu một người dùng muốn chạy chương trình “apt-get update” nhưng không có quyền truy cập root, họ có thể sử dụng lệnh sudo để thực thi như sau:
sudo apt-get update
Lệnh này cho phép người dùng hiện tại chạy chương trình “apt-get update” với quyền của người dùng root mà không cần đăng nhập vào tài khoản root.