Phòng Thông tin và truyền thông

Trường Đại học Khoa học Tự nhiên

Ở chế độ mặc định của Ubuntu, tại khoản người dùng đầu tiên được khởi tạo trong quá trình cài đặt cũng là Administrator của hệ thống. Nếu sử dụng tài khoản này thì người đăng nhập hoàn toàn có thể thực hiện được nhiều tác vụ qua lệnh sudo – Super User Do, tất cả các tài khoản khác trong nhóm này đều đã được gán quyền quản trị cao nhất để quản lý hệ thống. Tuy nhiên, nếu bạn hoặc ai đó vô tình gỡ bỏ tài khoản của bạn khỏi nhóm sudo thì sẽ không thể làm được việc gì nữa, và thay vào đó hệ thống sẽ hiển thị thông báo lỗi như sau:

damien is not in the sudoers file. This incident will be reported

trong đó damien là tên tài khoản đang sử dụng.

Trong bài thử nghiệm của chúng ta thì các bạn gõ lệnh sau trong khi gán tài khoản vào nhóm khác:

usermod -G nogroup damien

không sử dụng tham số -a, và cũng sẽ dẫn tới việc tài khoản đang dùng bị di chuyển khỏi nhóm sudo. Trong khi vẫn có thể dùng hệ thống như 1 tài khoản người dùng bình thường thì chúng ta lại không thể cài đặt, gỡ bỏ ứng dụng hoặc cập nhật hệ thống. Và nếu bạn gặp tình huống tương tự như vậy thì hãy thực hiện theo các bước lần lượt sau để khắc phục:

 - Khởi động lại hệ thống, nếu máy tính của bạn chỉ có 1 hệ điều hành Ubuntu duy nhất thì hãy nhất phím Shift khi khởi động. Màn hình Grub sẽ hiển thị, tại đây các bạn chọn Recovery mode như hình dưới và nhấn Enter

chọn Recovery mode

Tại màn hình tiếp theo, chọn Check all file systems...

chọn Check all file systems...

 - Nhấn Enter khi hệ thống hiển thị thông báo: Finished, press Enter.

 - Tiếp theo, chọn Drop to root shell prompt:

chọn Drop to root shell prompt:

 - Khi màn hình Command Prompt hiển thị, gõ lệnh:

usermod -a -G admin username

 - Thay thế username với tên tài khoản đăng nhập của bạn.

 - Tiếp theo, các bạn chỉ cần gõ lệnh exit và chọn Resume normal boot tại màn hình tiếp theo.

Tuy nhiên, cách xử lý trên chỉ có thể áp dụng nếu file /etc/sudoers vẫn còn nguyên vẹn, chưa bị chỉnh sửa hoặc tác động gì cả. Còn nếu file /etc/sudoers của hệ thống không còn như lúc đầu, thì các bạn hãy thực hiện thao tác giống như trên cho tới bước 3 – nhấn Enter khi hiển thị thông báo Finished. Sau đó:

 - Tại giao diện dòng lệnh, chúng ta gõ:

sudo cp /etc/sudoers /etc/sudoers.backup

sudo nano /etc/sudoers

 - Và nhập đoạn mã dưới đây vào file hiển thị:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#

Defaults env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification

root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

 - Nhấn Ctrl + O để lưu nội dung và Ctrl + X để đóng file.

 - Tiếp theo, khởi tạo mức phân quyền mới cho file sudoers vừa tạo:

chmod 440 /etc/sudoers

 - Và cuối cùng là gán tài khoản cần thiết vào nhóm sudo bằng lệnh:

usermod -a -G admin damien

Thoát khỏi Command Prompt và quay trở lại chế độ khởi động bình thường, và vấn đề trên đã được giải quyết. Chúc các bạn thành công!

T.Anh (MakeTechEasier)
Trang chủ Bài viết Linux Hướng dẫn khắc phục lỗi file sudo trong Ubuntu