169

I am trying to deploy django app. When I print apt-get update I see

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?

When I print sudo apt-get update I see

-bash: sudo: command not found

I tried to use su instead of sudo. But it is strange. For example I print su apt-get update And nothing happens I just see a new line,

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

The same if I try to install some packages. What do I do?

If it is useful info - I am using 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
  • 1,857

4 Answers4

225

By default sudo is not installed on Debian, but you can install it. First enable su-mode:
su -

Install sudo by running:
apt-get install sudo -y

After that you would need to play around with users and permissions. Give sudo right to your own user.

usermod -aG sudo yourusername

Make sure your sudoers file have sudo group added. Run:
visudo to modify sudoers file and add following line into it (if it is missing):

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

You need to relogin or reboot device completely for changes to take effect.

Maksim Luzik
  • 2,423
20

su and sudo are two different, but related commands. It is unusual for sudo not to be installed, but it may simply not be in your Path. Try /usr/bin/sudo command.

If indeed sudo is not available, you need as you surmised to use su, but it does not work in the same way as sudo. The simplest way to use it is to simply run:

su -

This will ask you for the root user's password, at which point you should probably apt install sudo, log out of the root shell, and then proceed as normal.

Mind that unlike sudo, which asks you for your password, su will ask you for root's password.

DopeGhoti
  • 76,081
19

Since it's a commercial server you won't have access to root account nor be able to operate with root privileges. This means you won't be able to run sudo nor install packages. What you can try to do is:

  • Check if you have access to a compiler and compile what you want for yourself and in your home space.

  • Check if you can run a virtual machine. This might let you run your private instance of an OS, on which you would install packages.

1

In a new Debian server install I too found out that sudo is not installed by default, but it can be done as root:

$ su root
# apt install sudo

What puzzled me is that I still got errors with visudo and usermod:

# visudo
bash: visudo: command not found

apt install visudo

Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package visudo

Actually, visudo is included with the sudo package, it was just not in the PATH for root:

# dpkg -S visudo
sudo: /usr/sbin/visudo
sudo: /usr/share/man/man8/visudo.8.gz

So I added it to the root's ~/.bashrc.

PATH=$PATH:/usr/sbin

Now it can find visudo and usermod which can be used to setup sudo access.

Nagev
  • 439