Không tìm thấy lệnh Bash Sudo


33

Tôi đã thiết lập VM bằng chìa khóa trao tay linux redmine và tôi đang cố gắng SSH vào máy chủ để cài đặt thêm một số mục.

Nó dường như không nhận ra lệnh sudo. Mỗi lần tôi cố gắng sudo một cái gì đó tôi nhận được một lỗi nói:

 -bash: sudo: command not found

Tôi đọc ở một nơi khác để gõ 'whereis sudo' và đầu ra là:

 sudo:

Câu trả lời:


20

Nó trông từ http://www.turnkeylinux.org/redmine như Redmine, không giống như Ubuntu, không sử dụng sudo theo mặc định. Bạn đang sử dụng tên người dùng nào để SSH? Nếu đó là root, thì bạn không cần phải sử dụng sudo, vì mọi thứ bạn làm khi SSH vào hệ thống Redmine đều được thực hiện như root. Nếu đó là một cái gì đó khác, như vậy admin, thì bạn có thể thử sử dụng sulệnh để lấy rootshell để chạy các lệnh như root.


Phải làm gì khi script có lệnh sudo. Xảy ra với tôi với mkusb. Nó tốt hơn để cài đặt sudo cho thuận tiện trong tương lai.
Yêu Grover

40

Có lẽ nó chưa được cài đặt? Mở trình quản lý gói của bạn và cài đặt gói sudo .


2
Nó chưa được cài đặt! Cảm ơn. Tôi khá mới với Linux và chỉ cho rằng nó đã có trên tất cả các cài đặt. Tôi chỉ cần gói sudo hoặc sudo-ldap là tốt?

2
Bạn không cần gói sudo-ldap. Sudo hoạt động tốt trên máy tính của tôi và tôi chưa cài đặt sudo-ldap.
Azendale

6

Đầu tiên đăng nhập vào tài khoản root của bạn. Sau đó

$ apt-get install sudo

Thêm người dùng hiện tại của bạn vào nhóm sudo

$ sudo adduser <user> sudo

Sau đó, bạn nên đăng nhập như <user>, và sudolệnh sẽ ở đó.


5

cố gắng sử dụng đường dẫn đầy đủ

/usr/bin/sudo

nếu lệnh đó hoạt động thì bao gồm / usr / bin / trong biến env của bạn PATH trong ~ / .bashrc

echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc

hy vọng hoạt động ..


4
Điều đó rất khó xảy ra; /usr/bingần như chắc chắn sẽ nằm trong đường dẫn mặc định của bạn. Vấn đề, như được chỉ ra bởi các câu trả lời và nhận xét khác, là sudolệnh chưa được cài đặt.
Keith Thompson

2

Lỗi xảy ra do nhị phân mà bạn đang cố gắng gọi từ dòng lệnh chỉ là một phần của biến PATH của người dùng hiện tại, nhưng không phải là một phần của PATH của người dùng gốc.

Bạn có thể xác minh điều này bằng cách định vị đường dẫn của nhị phân bạn đang cố truy cập. Trong trường hợp của tôi, tôi đã cố gắng gọi "bettercap-ng". Vì vậy, tôi đã chạy,

$ which bettercap-ng

output: /home/user/work/bin/bettercap

Tôi đã kiểm tra xem vị trí này có phải là một phần của PATH người dùng gốc của tôi không.

$ sudo env | grep ^PATH

đầu ra: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Vì vậy, sudo không thể tìm thấy nhị phân mà tôi đang cố gắng gọi từ dòng lệnh. Do đó trả về lệnh lỗi không tìm thấy.

Bạn có thể trực tiếp sudo để sử dụng PATH của người dùng hiện tại khi gọi một nhị phân như bên dưới.

$ sudo -E env "PATH=$PATH" [command] [arguments]

Trong thực tế, người ta có thể tạo ra một bí danh từ nó:

$ alias mysudo='sudo -E env "PATH=$PATH"'

Cũng có thể đặt tên bí danh là sudo, thay thế sudo gốc.

Vui lòng tham khảo video này để biết giải pháp từng bước

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.