Sự khác biệt giữa SUDO và SU trong Linux | D-BLOG

Nếu bạn theo dõi các bài viết về Linux trên D-BLOG thì đều bắt gặp tôi chạy cài đặt các chương trình với lệnh SUDO. Và nếu như bạn là người sử dụng Linux nhiều thì cũng đều thường xuyên sử dụng SUDO và SU trong quá trình sử dụng. Vậy sự khác biệt giữa SUDO và SU trong Linux là gì? Bài viết dưới đây sẽ giúp bạn hiểu rõ hơn về nó.

Root là gì?

Root là tài khoản có quyền cao nhất trên hệ thống tài khoản của Linux. Nó có thể làm bất kỳ điều gì với hệ thống mà không bị hạn chế giống như những người dùng khác. Những tài khoản người dùng khác trên hệ thống sẽ bị hạn chế một vài đặc quyền như: cài đặt gói phần mềm, gỡ bỏ, truy cập dịch vụ nào đó,… nhưng Root thì không bị giới hạn.

Và để có được đặc quyền Root này, bạn phải sử dụng tới câu lệnh SUDO hoặc SU.

Sự khác biệt giữa SUDO và SU trong Linux

Với lệnh SU, bạn sẽ chỉ cần gõ câu lệnh “su” trong terminal và nhập mật khẩu để chuyển đổi sang tài khoản Root, như vậy, bạn sẽ phải có được mật khẩu của tài khoản Root thì mới sử dụng được câu lệnh “su” này. Điều này rất nguy hiểm, vì như bạn biết Root là tài khoản có quyền cao nhất trong hệ thống, nếu như nó bị lộ thì sẽ ảnh hưởng rất nhiều tới hệ thống.

Để có thể truy cập được tài khoản Root với lệnh “su”, chúng ta chỉ cần gõ lệnh “su” mà không cần phải option đi kèm:

su-khac-biet-giua-sudo-va-su-trong-linux (2)su-khac-biet-giua-sudo-va-su-trong-linux (2)

Sau khi sử dụng xong, gõ lệnh “exit” để thoát khỏi tài khoản Root.

Ngoài ra, nếu như bạn gõ lệnh “su” kèm với tên user, hệ thống sẽ hỏi mật khẩu của user đó và đăng nhập vào tài khoản mà bạn đã khai báo trước đó. Ví dụ, tôi đang đứng ở tài khoản datnt và muốn chuyển sang tài khoản datnt_2, chỉ cần gõ lệnh “sudo datnt_2”

su-khac-biet-giua-sudo-va-su-trong-linux (3)su-khac-biet-giua-sudo-va-su-trong-linux (3)

Với câu lệnh SUDO, bạn sẽ không cần phải đưa cho người dùng tài khoản Root của hệ thống, mà sẽ sử dụng luôn mật khẩu của user đó để gọi đặc quyền Root. Tuy nhiên, để sử dụng được đặc quyền Root với lệnh SUDO, tài khoản này phải được tham gia nhóm “sudo” trong hệ thống thì mới có quyền chạy lệnh SUDO. Ví dụ, tôi muốn cài đặt gói unrar, chạy câu lệnh “sudo apt-get install unrar” và nhập mật khẩu cùa tài khoản datnt là xong, không cần phải biết mật khẩu Root.

su-khac-biet-giua-sudo-va-su-trong-linux (4)su-khac-biet-giua-sudo-va-su-trong-linux (4)

Thêm quyền SUDO cho tài khoản

Như ở trên tôi có nói, việc một tài khoản chạy được quyền SUDO thì tài khoản này phải tham gia nhóm sudo trong hệ thống thì mới được. Ví dụ, tôi thử chạy quyền SUDO cài đặt một gói phần mềm với tài khoản datnt_2 mà tôi đã tạo trước đó, chưa được join vào nhóm sudo:

su-khac-biet-giua-sudo-va-su-trong-linux (5)su-khac-biet-giua-sudo-va-su-trong-linux (5)

Như bạn thấy, cảnh báo xuất hiện tài khoản datnt_2 không có trong sudoers file.

Vậy làm sao để thêm được? Chúng ta chỉ cần đơn giản chạy câu lệnh “sudo adduser username sudo” – trong đó, username là user mà bạn muốn thêm vào nhóm sudo.

su-khac-biet-giua-sudo-va-su-trong-linux (6)su-khac-biet-giua-sudo-va-su-trong-linux (6)

Đã hoàn thành thêm tài khoản datnt_2 vào nhóm sudo. Bây giờ bạn có thể quay lại tài khoản datnt_2 để cài đặt phần mềm và chạy lệnh SUDO rồi.

Ngoài cách này, bạn có thể truy cập file “/etc/sudoers” và khai báo user / group muốn có quyền Root. Ví dụ như hình dưới, tôi muốn thêm tài khoản datnt_3 với toàn quyền trên hệ thống, khai báo tương tự như hình phía dưới là được:

su-khac-biet-giua-sudo-va-su-trong-linux (7)su-khac-biet-giua-sudo-va-su-trong-linux (7)

Sau khi khai báo xong, lưu lại để hoàn thành.

Trong file sudoers, “%” ký hiệu cho group và những dòng nào không có thì là user.

Kết luận

Lệnh SU là lệnh truyền thống để truy cập vào quyền Root trên hệ thống Linux. Nhưng với lệnh SUDO, Ubuntu là hệ điều hành phổ biến tiên phong sử dụng để thay thế lệnh SU. Khi bạn cài đặt Ubuntu lên, mặc định tài khoản Root sẽ không được đặt mật khẩu và chưa thể sử dụng được. Để có thể đăng nhập và sử dụng, bạn phải đặt mật khẩu cho tài khoản Root trước. Để đặt mật khẩu cho tài khoản Root, sử dụng câu lệnh “sudo passwd root” và khai báo mật khẩu:

su-khac-biet-giua-sudo-va-su-trong-linux (1)su-khac-biet-giua-sudo-va-su-trong-linux (1)

Ưu điểm của việc sử dụng lệnh SUDO đó là không phải cung cấp mật khẩu Root cho người dùng, tránh làm lộ mật khẩu quan trọng nhất, và người dùng cũng chỉ cần nhớ mật khẩu của mình mà không cần phải nhớ thêm một mật khẩu nữa.

Một ưu điểm khác là nó không khuyến khích người dùng đăng nhập với tư cách người dùng root – hoặc sử dụng “su” để lấy root shell – và giữ root shell mở để thực hiện công việc bình thường của họ. Chạy ít lệnh hơn khi root sẽ tăng tính bảo mật và ngăn chặn các thay đổi ngẫu nhiên trên toàn hệ thống.

Share this:

Like this:

Like

Loading…

Rate this post

Viết một bình luận