-bash: sudo: команда не найдена

63

Я пытаюсь развернуть приложение Django. Когда я печатаю, apt-get update я вижу

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?

Когда я печатаю, sudo apt-get update я вижу

-bash: sudo: command not found

Я пытался использовать suвместо sudo. Но это странно. Например, я печатаю su apt-get update И ничего не происходит, я просто вижу новую строку,

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

То же самое, если я пытаюсь установить несколько пакетов. Что я делаю?

Если это полезная информация - я использую 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
user2950593
источник
Это учетная запись клиента на коммерческом сервере?
Томаш
@tomas да ////
user2950593
1
Если вы не являетесь владельцем сервера, что заставило вас думать, что у вас есть право устанавливать или удалять программное обеспечение? спросите у администратора
Шадур
Что произойдет, если вы бежите apt-cache policy sudo? Не все дистрибутивы Linux устанавливают sudo по умолчанию (например, Debian установит sudo, если и только если вы не укажете пароль root при установке). Вы можете запустить apt-cache без прав root.
росав

Ответы:

79

По умолчанию sudo не установлен в Debian, но вы можете установить его. Сначала включите su-mode:
su -

Установите sudo, запустив:
apt-get install sudo -y

После этого вам нужно будет поиграться с пользователями и разрешениями. Дайте право sudo своему собственному пользователю.

usermod -aG sudo yourusername

Убедитесь, что в вашем файле sudoers добавлена ​​группа sudo. Выполнить:
visudoизменить файл sudoers и добавить в него следующую строку (если он отсутствует):

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

Чтобы изменения вступили в силу, вам необходимо полностью перезапустить или перезагрузить устройство.

Максим Лузик
источник
3
Это должен быть принят ответ, это решило мою проблему
Каллат
Я получаю "su: Невозможно определить ваше имя пользователя". делать су -
user674669
@ user674669 Вы проверили этот пост: serverfault.com/questions/816969/… ?
Максим Лузик
Спасибо @MakimLuzik. Мой - контейнер для докеров. Идеи на этой странице не являются полезными для меня. Может быть, я должен написать отдельный вопрос.
user674669
19

Поскольку это коммерческий сервер, у вас не будет доступа к учетной записи root и вы не сможете работать с привилегиями root. Это означает, что вы не сможете sudoни запускать, ни устанавливать пакеты. То, что вы можете попытаться сделать, это:

  • Проверьте, есть ли у вас доступ к компилятору, и скомпилируйте то, что вы хотите для себя и в своем домашнем пространстве.

  • Проверьте, можете ли вы запустить виртуальную машину. Это может позволить вам запустить свой личный экземпляр ОС, на который вы будете устанавливать пакеты.

Tomasz
источник
12

suи sudoдве разные, но связанные команды. Это необычно для sudoне быть установленным, но это может просто не быть на вашем Пути. Попробуй /usr/bin/sudo command.

Если действительно sudoнет в наличии, вам нужно, как вы и предполагали, использовать su, но это не работает так же, как sudo. Самый простой способ его использования - просто запустить:

su -

Это попросит вас rootввести пароль пользователя, после чего вам, вероятно apt install sudo, следует выйти из корневой оболочки, а затем продолжить работу в обычном режиме.

Имейте в виду, что в отличие от вас sudo, который запрашивает ваш пароль, suпопросит вас ввести пароль root .

DopeGhoti
источник
когда я пишу su - ничего не происходит - просто новая строка
user2950593
3
Тогда вы, вероятно, уже root. Проверьте с whoami. Если вы root, apt install sudoкак описано.
DopeGhoti
(uiserver): u78600811: ~ $ apt install sudo
user2950593
1
W: невозможно прочитать /etc/apt/apt.conf.d/ - DirectoryExists (13: разрешение запрещено) E: не удалось открыть файл блокировки / var / lib / dpkg / lock - открыть (13: разрешение запрещено) E: невозможно заблокировать административный каталог (/ var / lib / dpkg /), вы root?
user2950593
1
В зависимости от того, что PS1установлено на.
DopeGhoti