-bash: sudo: không tìm thấy lệnh


63

Tôi đang cố gắng triển khai ứng dụng django. Khi tôi in apt-get update tôi thấy

W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list - RealFileExists (13: Permission denied)
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Khi tôi in sudo apt-get update tôi thấy

-bash: sudo: command not found

Tôi đã cố gắng sử dụng suthay vì sudo. Nhưng nó thật lạ. Ví dụ tôi in su apt-get update Và không có gì xảy ra Tôi chỉ thấy một dòng mới,

(uiserver):u78600811:~$ su apt-get update
(uiserver):u78600811:~$

Tương tự nếu tôi cố gắng cài đặt một số gói. Tôi làm gì?

Nếu đó là thông tin hữu ích - Tôi đang sử dụng Debian

(uiserver):u87600811:~$ uname -a
Linux infong1559 3.14.0-ui16294-uiabi1-infong-amd64 #1 SMP Debian 3.14.79-2~ui80+4 (2016-10-20) x86_64 GNU/Linux

Đây có phải là tài khoản khách hàng trên một máy chủ thương mại?
Tomasz

@tomas yeah ////
user2950593 30/03/2017

1
Nếu bạn không sở hữu máy chủ, điều gì khiến bạn nghĩ rằng bạn có quyền cài đặt hoặc gỡ bỏ phần mềm? hỏi quản trị viên
Shadur

Điều gì xảy ra nếu bạn chạy apt-cache policy sudo? Không phải tất cả các bản phân phối Linux đều cài đặt sudo theo mặc định (ví dụ Debian sẽ cài đặt sudo khi và chỉ khi bạn không chỉ định mật khẩu gốc khi cài đặt). Bạn có thể chạy apt-cache mà không cần quyền root.
rosuav

Câu trả lời:


79

Theo mặc định, sudo không được cài đặt trên Debian, nhưng bạn có thể cài đặt nó. Lần đầu kích hoạt chế độ su:
su -

Cài đặt sudo bằng cách chạy:
apt-get install sudo -y

Sau đó, bạn sẽ cần phải chơi xung quanh với người dùng và quyền. Cung cấp sudo ngay cho người dùng của riêng bạn.

usermod -aG sudo yourusername

Hãy chắc chắn rằng tập tin sudoers của bạn có nhóm sudo được thêm vào. Chạy:
visudođể sửa đổi tập tin sudoers và thêm dòng sau vào nó (nếu nó bị thiếu):

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

Bạn cần phải đăng nhập lại hoặc khởi động lại thiết bị hoàn toàn để các thay đổi có hiệu lực.


3
Điều này nên được chấp nhận câu trả lời, điều này đã giải quyết vấn đề của tôi
Callat 18/03/18

Tôi đang nhận được "su: Không thể xác định tên người dùng của bạn." khi làm su -
user674669

@ user674669 bạn đã kiểm tra bài đăng này chưa: serverfault.com/questions/816969/NH ?
Maksim Luzik

Cảm ơn @MaksimLuzik. Của tôi là một container docker. Các ý tưởng trên trang đó không hữu ích cho tôi. Có lẽ, tôi nên đăng một câu hỏi riêng biệt.
dùng674669

19

Vì đó là máy chủ thương mại nên bạn sẽ không có quyền truy cập vào tài khoản root cũng như không thể hoạt động với quyền root. Điều này có nghĩa là bạn sẽ không thể chạy sudohoặc cài đặt các gói. Những gì bạn có thể cố gắng làm là:

  • Kiểm tra xem bạn có quyền truy cập vào trình biên dịch và biên dịch những gì bạn muốn cho chính mình và trong không gian nhà của bạn.

  • Kiểm tra nếu bạn có thể chạy một máy ảo. Điều này có thể cho phép bạn chạy phiên bản riêng của HĐH, trên đó bạn sẽ cài đặt các gói.


12

susudolà hai lệnh khác nhau, nhưng có liên quan. Thật không bình thường khi sudokhông được cài đặt, nhưng nó có thể đơn giản là không có trong Đường dẫn của bạn. Hãy thử /usr/bin/sudo command.

Nếu thực sự sudokhông có sẵn, bạn cần như bạn phỏng đoán để sử dụng su, nhưng nó không hoạt động theo cùng một cách như sudo. Cách đơn giản nhất để sử dụng nó là chạy đơn giản:

su -

Điều này sẽ hỏi bạn rootmật khẩu của người dùng, tại thời điểm đó bạn có thể nên apt install sudođăng xuất khỏi shell gốc, và sau đó tiến hành như bình thường.

Nhớ rằng không giống như sudo, mà sẽ yêu cầu bạn cho bạn mật khẩu, susẽ yêu cầu bạn cho rễ mật khẩu 's.


khi tôi viết su - không có gì xảy ra - chỉ là dòng mới
user2950593

3
Thì có lẽ bạn đã root rồi. Kiểm tra với whoami. Nếu bạn root, apt install sudonhư được mô tả.
DopeGhoti

(uiserver): u78600811: ~ $ apt cài đặt sudo
user2950593

1
W: Không thể đọc /etc/apt/apt.conf.d/ - DirectoryExists (13: Quyền bị từ chối) E: Không thể mở tệp khóa / var / lib / dpkg / lock - open (13: Quyền bị từ chối) E: Không thể để khóa thư mục quản trị (/ var / lib / dpkg /), bạn đã root chưa?
dùng2950593

1
Tùy thuộc vào những gì PS1được đặt thành.
DopeGhoti
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.