Gặp lỗi "sudo: command not found" trên Linux? Đây là một sửa chữa dễ dàng

Tác giả Security+, T.Tư 18, 2024, 12:16:52 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Nhiều quyền lực hơn, nhưng có nhiều trách nhiệm hơn.

  • Trở thành root (sử dụng "su -") và cài đặt sudo bằng lệnh "apt install sudo" trên Debian và Ubuntu.
  • Thêm người dùng của bạn vào nhóm sudo bằng cách sử dụng lệnh "usermod -aG sudo username" (Debian/Ubuntu) hoặc "usermod -aG Wheel username" (các bản phân phối khác) với tư cách là người dùng root.
  • Nếu sudo được cài đặt nhưng không hoạt động, hãy thêm thư mục của nó vào biến PATH bằng cách chỉnh sửa tệp "/etc/profile" với tư cách là người dùng root.


Bạn đã thử sử dụng lệnh Linux đầu tiên của mình với tư cách là siêu người dùng và gặp lỗi "sudo: command not found"? Đây là một trong những vấn đề phổ biến nhất mà người dùng Linux mới gặp phải sau khi cài đặt mới. Đây là cách bạn có thể giải quyết vấn đề này và bắt đầu sử dụng lại lệnh sudo.

Đối với hướng dẫn này, tôi sẽ trình bày mọi thứ trên Debian 12. Tuy nhiên, bạn cũng sẽ tìm thấy các lệnh cần thiết để sửa lỗi "sudo: command not found" trên các bản phân phối Linux khác.

1. Lệnh sudo là gì?

Lệnh sudo trên Linux, viết tắt của cụm từ "superuser do", là một tiện ích mạnh mẽ cho phép người dùng thực thi các lệnh với đặc quyền của người dùng khác, điển hình là root. Với sudo, người dùng được ủy quyền có thể thực hiện các tác vụ quản trị mà không cần đăng nhập với tư cách người dùng root.

Cách sử dụng sudo là bắt đầu một lệnh khác bằng từ "sudo". Điều này cho phép bạn chạy lệnh với các đặc quyền nâng cao. Vì vậy, lệnh sudo cho phép bạn có các quyền cần thiết của một người dùng khác và chạy một lệnh nhạy cảm. Bạn có thể tìm hiểu thêm về lệnh sudo từ trang hướng dẫn của nó.

2. Tại sao bạn gặp phải lỗi này?

Thường có hai lý do có thể gây ra lỗi "sudo: command not found" trên Linux. Đó là do sudo chưa được cài đặt hoặc thư mục sudo không có trong biến PATH của hệ thống của bạn.

Một số bản phân phối Linux có thể không cài đặt gói sudo theo mặc định. Điều này đúng với Arch và Gentoo Linux. Trên Debian, nếu bạn đặt mật khẩu root trong khi cài đặt thì bạn sẽ gặp phải vấn đề tương tự.


Nguyên nhân thứ hai là do sudo được cài đặt nhưng thư mục của nó không có trong biến PATH. PATH là biến môi trường mà hệ thống Linux sử dụng để định vị lệnh mà không chỉ định đường dẫn đầy đủ của nó.

Khi bạn nhập lệnh trong thiết bị đầu cuối, hệ thống sẽ tìm kiếm thông qua các thư mục được liệt kê trong biến PATH và cố gắng tìm tệp thực thi chính xác. Nếu lệnh sudo không có trong biến PATH đó, hệ thống sẽ không tìm thấy và không thể sử dụng nó.

3. Dưới đây là Cách khắc phục lỗi "sudo: command not found"

Nếu bạn chưa cài đặt sudo, việc cài đặt nó và thêm người dùng của bạn vào nhóm sudo/wheel là đủ để khắc phục sự cố. Để đảm bảo bạn đã cài đặt sudo hay chưa, hãy chạy:

Mã nguồn [Chọn]
sudo -V

Nếu chưa cài đặt sudo, bạn sẽ thấy kết quả đầu ra tương tự, trong trường hợp đó hãy tiếp tục theo phương pháp sau.

3.1. Cài đặt sudo trên Linux

Để cài đặt gói sudo, trước tiên bạn cần phải root. Để trở thành người dùng root, hãy mở terminal của bạn và chạy:

Mã nguồn [Chọn]
su -
Nhập mật khẩu root và nhấn Enter. Nếu thành công, bạn sẽ thấy dấu nhắc shell chuyển sang màu trắng và từ "root" được viết ở đầu dấu nhắc.


Là người dùng root, bạn có thể cài đặt bất kỳ gói phần mềm nào, bao gồm cả sudo. Để cài đặt sudo, hãy chạy lệnh này trên các bản phân phối dựa trên Debian:

Mã nguồn [Chọn]
apt install sudo

Đối với các hệ thống dựa trên RHEL, hãy sử dụng lệnh này:

Mã nguồn [Chọn]
yum install sudo
Trên Arch Linux, hãy chạy:

Mã nguồn [Chọn]
pacman -S sudo
Nếu bạn đang sử dụng Gentoo, hãy sử dụng lệnh này:

Mã nguồn [Chọn]
emerge --ask app-admin/sudo
3.2. Thêm người dùng của bạn vào nhóm sudo

Sau khi cài đặt lệnh sudo, bạn cần thêm người dùng không phải root của mình vào nhóm sudo. Điều này là do bạn muốn cấp cho người dùng đó đặc quyền siêu người dùng. Sau đó, người dùng không phải root của bạn có thể sử dụng lệnh sudo để nhận được các đặc quyền nâng cao.

Để thêm người dùng vào nhóm sudo, hãy chạy lệnh này trên bản phân phối dựa trên Debian:

Mã nguồn [Chọn]
usermod -aG sudo username
Đảm bảo thay thế "tên người dùng" trong lệnh bằng tên người dùng chính xác.


Nếu bạn đang sử dụng Arch Linux, Fedora hoặc các bản phân phối dựa trên RHEL khác, hãy sử dụng lệnh sau:

Mã nguồn [Chọn]
usermod -aG wheel username
Cuối cùng, chuyển về người dùng không phải root bằng:

Mã nguồn [Chọn]
su username

Bây giờ bạn có thể thử một lệnh bắt đầu bằng sudo để kiểm tra xem nó có hoạt động không. Ví dụ: hãy thử cập nhật các gói trên hệ thống. Để làm điều đó, hãy sử dụng:

Mã nguồn [Chọn]
sudo apt update

Nó hoạt động như mong đợi.

4. Hãy thử thêm sudo vào biến PATH

Nếu bạn đã cài đặt sudo nhưng nó vẫn không hoạt động thì bạn cần thêm sudo vào biến PATH. Trước tiên hãy xác định vị trí của lệnh sudo.

Mã nguồn [Chọn]
which sudo

Như bạn có thể thấy, nó nằm trong thư mục "/usr/bin/". Bây giờ hãy kiểm tra xem thư mục có nằm trong biến PATH hay không. Chạy lệnh này:

Mã nguồn [Chọn]
echo $PATH

Trong trường hợp của tôi, vị trí của lệnh sudo có trong biến PATH. Trong trường hợp không, bạn có thể thêm nó bằng lệnh này:

Mã nguồn [Chọn]
export PATH=$PATH:/usr/bin
Tuy nhiên, điều này sẽ chỉ tạm thời thêm thư mục của lệnh sudo. Sau khi bạn kết thúc phiên cuối, mọi thứ sẽ trở lại như cũ.

Để thêm vĩnh viễn thư mục, hãy mở tệp "/etc/profile" trong trình soạn thảo văn bản. Để mở nó trong trình soạn thảo văn bản nano, trước tiên hãy truy cập root bằng cách nhập su - và sử dụng lệnh này:

Mã nguồn [Chọn]
nano /etc/profile
Chỉnh sửa dòng khai báo biến PATH. Thêm dấu hai chấm (:) rồi thêm đường dẫn vào sudo ("/usr/bin" trong trường hợp này.)


Lưu tệp bằng Ctrl+O rồi thoát khỏi trình chỉnh sửa bằng Ctrl+X. Bây giờ hãy thử sử dụng lệnh sudo để xem nó có hoạt động không.

Điều đó sẽ giải quyết được vấn đề của bạn và cho phép bạn sử dụng lệnh sudo mà không gặp bất kỳ lỗi nào. Hãy nhớ rằng, chỉ những người dùng được thêm vào nhóm sudo mới có thể sử dụng nó. Nếu bạn muốn cấp đặc quyền sudo cho nhiều người dùng hơn, hãy xem hướng dẫn của chúng tôi về cách kiểm soát quyền truy cập sudo trên Linux.