164

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
4
  • Is this a customer account on a commercial server?
    – user147505
    Mar 30, 2017 at 20:48
  • @tomas yeah//// Mar 30, 2017 at 20:54
  • 3
    If you don't own the server, what made you think you have the right to install or remove software? ask the admin
    – Shadur
    Mar 31, 2017 at 4:50
  • What happens if you run apt-cache policy sudo ? Not all Linux distros install sudo by default (Debian, for instance, will install sudo if and only if you don't specify a root password on installation). You can run apt-cache without root privileges.
    – rosuav
    Mar 31, 2017 at 10:21

4 Answers 4

222

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.

12
  • 4
    This should be accepted answer, this solved my problem
    – Callat
    Mar 18, 2018 at 18:19
  • I am getting "su: Cannot determine your user name." on doing su -
    – user674669
    May 3, 2019 at 23:26
  • @user674669 have you checked this post: serverfault.com/questions/816969/… ? May 6, 2019 at 6:45
  • Thanks @MaksimLuzik. Mine is a docker container. The ideas on that page aren' helpful to me. Maybe, I should post a separate question.
    – user674669
    May 7, 2019 at 3:11
  • 3
    if you get the package not found error, run apt-get update first. and then apt-get install sudo.
    – Mahdi Abdi
    Sep 4, 2020 at 21:34
19

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.

6
  • when I write su - nothing happens - just new line Mar 30, 2017 at 20:33
  • 4
    Then you're probably already root. Check with whoami. If you're root, apt install sudo as described.
    – DopeGhoti
    Mar 30, 2017 at 20:40
  • (uiserver):u78600811:~$ apt install sudo Mar 30, 2017 at 20:47
  • 1
    W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (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? Mar 30, 2017 at 20:47
  • 1
    Depending on what PS1 is set to.
    – DopeGhoti
    Mar 31, 2017 at 17:50
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.

0
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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .