Debian 9 sudo: Debian — Подробная информация о пакете sudo в sid

sudo — Debian Wiki

Translation(s): العربية — English — Español — Français — Italiano — Русский


Root > sudo


Sudo (sometimes considered as short for Super-user do) is a program designed to let system administrators allow some users to execute some commands as root (or another user). The basic philosophy is to give as few privileges as possible but still allow people to get their work done. Sudo is also an effective way to log who ran which command and when.

Notes for new Debian users

Some new Debian users, usually coming from Ubuntu, are shocked by problems like «sudo not working in Debian». However, this situation only happens if you have set a root password during your Debian installation.

If you like sudo and you want to install it (even if you skipped it during your Debian installation), you can, but in the way without sudo, so, becoming root with the su command, installing it, and adding yourself in the sudo group and doing a full logout/login.

Example:

(Obviously just replace «jhon-smith» with your personal username)

Then please do a full logout and login again.

Why not sudo?

Note that, historically, all Unix-like systems worked perfectly even before «sudo» was invented. Moreover, having a system without sudo could still give security benefits, since the sudo package could be affected by security bugs, as any additional part of the system.

Lot of Debian users do not install sudo. Instead, they open a terminal as root (for example with su — from a normal user). So you do not have to put «sudo» in front of any command.

Why sudo?

Using sudo could be more familiar to newer users, and it could be better (safer) than allowing a normal user to open a session as root. Some reasons:

  • Nobody needs to know the root password (sudo prompts for the current user’s password). Extra privileges can be granted to individual users temporarily, and then taken away without the need for a password change.

  • It’s easy to run only the commands that require special privileges via sudo; the rest of the time, you work as an unprivileged user, which reduces the damage that mistakes can cause.

  • Auditing/logging: when a sudo command is executed, the original username and the command are logged.

For the reasons above, switching to root using sudo -i (or sudo su) is usually deprecated because it cancels most of the above features.

Users and sudo

Debian’s default configuration allows users in the sudo group to run any command via sudo.

Verifying sudo membership

Once logged in as a user, you can verify whether or not the user belongs to group=sudo using either the id or groups commands. E.g., a user with id=foo should see output from

  • $ groups

like

  • foo sudo

If sudo is not present in the output, the user does not belong to that group. Similarly, the more complex and variable output from command=id should look something like

Add existing user from commandline

To add an existing user with id=foo to group=sudo:

Alternatively, you can first get root (e. g., sudo su -) and then run the same commands without prefix=sudo:

After being added to a new group the user must log out and then log back in again for the new group to take effect. Groups are only assigned to users at login time. A most common source of confusion is that people add themselves to a new group but then do not log out and back in again and then have problems because the group is not assigned; be sure to verify group membership.

Creating users with sudo

You can also create new users with sudo membership:

Creating new user while installing OS

As of DebianSqueeze, if you give root an empty password during installation, sudo will be installed and the first user will be able to use it to gain root access (currently, the user will be added to the sudo group). The system will also configure gksu and aptitude to use sudo. You should still verify group membership after logging in as the installed user.

Creating new user from commandline

A user which already has sudo can create another user (example id=foo) with sudo group membership from the commandline:

(or first get root as in previous section). You should then login as the new user and verify group membership.

Configuration overview

Now, if you want to allow certain users to execute certain programs, here’s a quick example (for more information, read the fine manual), which you can put in a file in /etc/sudoers.d, probably using visudo -f /etc/sudoers.d/myfile.

User_Alias      MYADMINS = jdoe
Cmnd_Alias      SHUTDOWN = /sbin/reboot, /sbin/poweroff
Cmnd_Alias      PKGMGMT = /usr/bin/dpkg, /usr/bin/apt-get, /usr/bin/aptitude
# Users listed above (MYADMINS) can run package managers and reboot the system.
MYADMINS ALL = PKGMGMT, SHUTDOWN

Problems and tips

Sorry, user jdoe is not allowed to execute …

A typical session goes like this:

  • $ sudo test
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
        #1) Respect the privacy of others.
        #2) Think before you type.
        #3) With great power comes great responsibility. 
    [sudo] password for jdoe: 
    Sorry, user jdoe is not allowed to execute '/usr/bin/test' as root on localhost.

This message means what it says: the user you’re running as isn’t allowed to execute the given command on the given machine. One confusing possible reason for this is that the administrator has just added user jdoe to a privileged group — but you’re still using the old login, which doesn’t have that new group information, and therefore has no new sudo-ing rights. People in this situation are usually advised to log out completely and back in again, though you can sometimes get away with just performing a «re-login on the spot» with su — $USER or changing group with newgrp sudo.

The include directive

The standard /etc/sudoers ends with a line:

This makes it possible for other packages to provide snippets in /etc/sudoers.d/<packagename> which modify the configuration of sudo. It may look as if it needs to be edited to take out the leading numbersign (a. k.a. «hash» or «pound»), but no, the ‘#’ is part of the directive!

It is recommended that you make local changes in a snippet as well.

sudoers is read-only

Yes, the file /etc/sudoers is intentionally set read-only, even for root!

The explanation is that it was set up this way to motivate admins to only ever edit it via the command visudo, which provides additional checking before leaving the new file in place. You might think that the fix for a mangled /etc/sudoers, the fix may be as simple as su -c visudo, but sudo is often used in a place where simply su’ing to root is not possible since you simply don’t know the root password.

Beware, most text editors will let you edit the file without complaining about the read-only bit, so you might not automatically get this additional protection.

Require root password

If you want to require the root password for use of sudo, rather than the user password, add the line:

Defaults   rootpw

No password prompt for sudo user

If you want sudo group members to execute commands without password, add the line:

%sudo ALL=(ALL) NOPASSWD: ALL

Customize credentials cache timeout

As default, after asking a password, your credentials are cached by sudo and last for 15 minutes. You can change this behavior using the command visudo and customizing the timeout for a specific user:

Defaults:foobar timestamp_timeout=30

See also

  • Manpages: sudoers(5), sudo(8), visudo(8), sudoedit(8), sudoreplay(8)

  • Doas — A lighter and more minimalistic tool for the same purpose, with simpler configuration.


CategoryRoot | CategorySystemSecurity | CategorySystemAdministration

Debian — Подробная информация о пакете sudo в sid

в именах пакетовв описаниях пакетовв именах пакетов исходного кодав содержимом пакетоввсе параметры

[  buster  ]
[  bullseye  ]
[  bookworm  ]
[  trixie  ]
sid  ]

[ Источник: sudo  ]

предоставление частичных привилегий суперпользователя другим пользователям

Sudo – это программа, позволяющая системному администратору предоставлять
пользователям частичные привилегии root и регистрировать выполняемые
действия. Основная цель – предоставление минимально достаточных прав для
выполнения определённых задач.

Эта версия собрана в варианте использующем минимальное количество
библиотек. Если вам нужна поддержка LDAP, используйте пакет sudo-ldap.

Теги:

Системное администрирование:

Вход,

Управление пользователями,

Реализовано на:

implemented-in::c,
interface::commandline,

Роль:

Программа,

Область:

scope::utility,
security::authentication,

Цель:

Вход

Пакеты, предоставляющие sudo

sudo-ldap
Provide limited super user privileges (with LDAP support)

Другие пакеты, относящиеся к sudo

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep:
    init-system-helpers
    (>= 1. 54~)
    вспомогательные инструменты для всех систем инициализации
  • dep:
    libaudit1
    (>= 1:2.2.1)
    динамическая библиотека для аудита безопасности
  • dep:
    libc6
    (>= 2.34)
    [не alpha, ia64, sh5]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый

    libc6-udeb

    dep:
    libc6
    (>= 2.36)
    [sh5]
  • dep:
    libc6.1
    (>= 2.34)
    [alpha]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый

    libc6.1-udeb

    dep:
    libc6.1
    (>= 2.36)
    [ia64]
  • dep:
    libpam-modules

    Подключаемые Модули Аутентификации для PAM
  • dep:
    libpam0g
    (>= 0. 99.7.1)
    библиотека Подключаемых Модулей Аутентификации (PAM)
  • dep:
    libselinux1
    (>= 3.1~)
    динамические библиотеки SELinux
  • dep:
    zlib1g
    (>= 1:1.2.0.2)
    [не armel, armhf, hppa, i386, m68k, mipsel, sh5]
    библиотека сжатия
    dep:
    zlib1g
    (>= 1:1.2.3.4)
    [armel, armhf, hppa, i386, m68k, mipsel, sh5]

Загрузка sudo

Загрузить для всех доступных архитектур
АрхитектураРазмер пакетаВ установленном видеФайлы
alpha (неофициальный перенос)1 805,6 Кб6 889,0 Кб [список файлов]
amd641 844,7 Кб6 054,0 Кб [список файлов]
arm641 783,4 Кб6 358,0 Кб [список файлов]
armel1 784,9 Кб5 850,0 Кб [список файлов]
armhf1 791,1 Кб5 362,0 Кб [список файлов]
hppa (неофициальный перенос)1 798,6 Кб6 192,0 Кб [список файлов]
i3861 855,5 Кб6 276,0 Кб [список файлов]
ia64 (неофициальный перенос)1 920,6 Кб8 065,0 Кб [список файлов]
m68k (неофициальный перенос)1 754,1 Кб5 794,0 Кб [список файлов]
mips64el1 748,1 Кб6 726,0 Кб [список файлов]
mipsel1 760,6 Кб6 492,0 Кб [список файлов]
ppc64 (неофициальный перенос)1 804,4 Кб7 193,0 Кб [список файлов]
ppc64el1 825,1 Кб6 998,0 Кб [список файлов]
riscv64 (неофициальный перенос)1 786,9 Кб5 557,0 Кб [список файлов]
s390x1 781,5 Кб6 042,0 Кб [список файлов]
sh5 (неофициальный перенос)1 864,8 Кб6 209,0 Кб [список файлов]
sparc64 (неофициальный перенос)1 776,7 Кб18 256,0 Кб [список файлов]
x32 (неофициальный перенос)1 840,2 Кб5 929,0 Кб [список файлов]

Debian 9: нельзя использовать sudo

спросил

Изменено
4 года, 7 месяцев назад

Просмотрено
55 тысяч раз

Недавно я установил Debian 9 и обнаружил следующую ошибку.

Во время установки я установил пароль ‘root’ и установил ‘пользователь’ со своим паролем. Позже, когда я вхожу в учетную запись «пользователь» и хочу установить какой-то пакет, у меня возникает эта проблема. Если я запускаю:

 sudo apt-get install 'package'
 

, затем я получаю это сообщение:

 «пользователь» отсутствует в списке sudoers
 

И если я попытаюсь войти в терминал ‘root’ с помощью:

 su
 

и введите пароль, я получаю:

 su: Ошибка аутентификации
 

П.С. Я понимаю, что этот вопрос может быть действительно глупым, но я не нашел никакой информации об этом в Интернете, поэтому мне нужно задать его здесь.

  • debian
  • sudo
  • root

Похоже, вы столкнулись с ошибкой в ​​программе установки Debian 9, описанной в этом разделе форума: http://forums.debian.net/viewtopic.php?f =17&t=133604

В последнем (на данный момент) сообщении этой темы есть обходной путь.

Насколько я помню, команда sudo не настроена в Debian, если при установке не указан пароль root. Раньше команда sudo даже не устанавливалась по умолчанию в Debian.

4

Похоже, вы не добавили пользователя без полномочий root в список sudoers . Подробнее об этом см. man sudoers .

Что касается второго вопроса, вы уверены, что используете пароль root ? В отличие от sudo , который запрашивает ваш пароль , su запросит пароль пользователя, на которого вы переключаетесь.

1

su: Ошибка аутентификации

Вы получаете su: Ошибка аутентификации , потому что вы пытаетесь стать пользователем root (возможно, это отключено). Примечание su root потребует пароль «root», а не пароль «user».

Вместо su , используя sudo -i или еще лучше, добавьте к любой команде sudo в виде:

 sudo apt-get install something
    [sudo] пароль для пользователя:
 

«пользователь» отсутствует в списке sudoers

Вы можете добавить пользователя в группу sudo :

 sudo adduser  sudo
 

Изменение вступит в силу после следующего входа в систему.

Это работает, потому что /etc/sudoers предварительно настроен для предоставления разрешений всем членам этой группы. Хотя вы не должны вносить никаких изменений в это:

 # Разрешить членам группы sudo выполнять любую команду
%sudo ВСЕ=(ВСЕ:ВСЕ) ВСЕ
 

Пока у вас есть доступ к пользователю, входящему в те же группы, что и ваш «исходный» пользователь, вы можете удалить старого.

Что я сделал, так это отредактировал /etc/group во время загрузки другим способом. Добавьте свое обычное имя пользователя в строку sudo (& group) в конце. Перезагрузить. Затем в терминале введите sudo passwd root и введите новый пароль.

Вероятно, будет работать загрузка с live CD или в режиме восстановления с установочного диска. У меня была установлена ​​OpenBSD на том же диске, поэтому я использовал ее.

Подсказка находится в файле /etc/sudoers:

%sudo ALL=(ALL:ALL) ALL

Просто войдите в группу sudo, вам вообще не нужно возиться с файлом sudoers. Я только что попробовал холодную загрузку и вошел в систему как пользователь root, чтобы проверить это.

Должен быть файл с именем sudoers ; найдите это (возможно, в /etc (я не могу сказать вам напрямую, так как я не работаю в Linux-системе, а мой, вероятно, где-то еще). man sudoers должен сказать вам, где он находится.

Вам нужно будет разрешить вашему пользователю использовать sudo там.

Как отмечено в самом файле sudoers и в других местах, существуют ужасные предупреждения о непосредственном редактировании этого файла. Вместо этого используйте команду visudo , так как это поможет вам не выстрелить себе в ногу. Несмотря на свое название, visudo не обязательно будет использовать vi для редактирования файла; он будет использовать ваш любимый редактор, заданный переменной окружения EDITOR .

4

Как исправить команду debian sudo не найдена

Debian

2 года назад

Хаммад Захид

Прежде чем обсуждать, как исправить команды sudo, отсутствующие в Debian, сначала обсудим, что такое Sudo. Sudo означает суперпользователь; как суперпользователь, у вас есть все привилегии, которыми может пользоваться пользователь root. Различные дистрибутивы Linux, такие как Ubuntu, Fedora и Mageia. Точно так же Debian также является примером общего дистрибутива Linux. Дистрибутив Ubuntu используется для начинающих, тогда как Debian — это продвинутый дистрибутив, который используется на уровне экспертов. Во время работы над Debian мы иногда обнаруживали ошибку при использовании команды «sudo». Это может быть что-то вроде «команда sudo не найдена», «[имя пользователя] отсутствует в списке sudoers» или, может быть, какая-то другая ошибка, которая означает то же самое.

Эта запись связана с решением, с помощью которого мы можем устранить эту ошибку. Мы обсудим обе ошибки отдельно, связанные с пакетом sudo, когда мы столкнемся с ними и как мы можем решить эти проблемы.

Как исправить: команда Debian sudo не найдена

По умолчанию в Debian установлена ​​команда sudo, но иногда бывает так, что мы используем команду sudo, и она генерирует следующую ошибку.

Мы просто входим в режим пользователя root как:

$ sudo -s

Таким образом, это означает, что пакет sudo не установлен по умолчанию, поэтому для решения этой проблемы мы просто переходим в пользовательский режим и устанавливаем пакет. Сначала мы перейдем в режим пользователя root.

$ su —

Сначала обновите репозиторий.

# apt update

Установите пакет sudo.

# apt install sudo -y

Выйдите из режима root.

# выход

Чтобы проверить установку ошибки, мы снова войдем в корень с помощью команды sudo.

$ sudo -s

Проблема, которая обсуждалась в начале, теперь решена.

Как добавить пользователя в файл sudoers для устранения ошибки

Мы просто запускаем команду списка дисков на Debian.

$ sudo fdisk -l

У нас есть вывод: «zhammad нет в файле sudoers. Об этом инциденте будет сообщено.», это ошибка, означающая, что мы не можем использовать команду sudo. Команда Sudo — это административная команда, которая используется с теми командами, которым требуются административные разрешения. Теперь это означает, что пользователь «zhammad» не имеет прав администратора, поэтому для доступа к этим разрешениям мы должны установить «команду sudo» вручную и предоставить этому пользователю права администратора.

Мы переключим пользователя на администратора, который в нашем случае является «хаммадом». Таким образом, с помощью команды «su» мы переключаемся с zhammad на hammad.

$ su hammad

Теперь, когда мы переключим пользователя на hammad, мы перейдем в режим root.

$ sudo -s

Обновите репозиторий Debian с помощью команды update.

# apt-get update

Как видно из вывода, репозиторий обновлен, и все пакеты обновлены, поэтому нет необходимости обновлять репозиторий. Теперь мы добавляем нового пользователя в список файлов sudoers с помощью команды.

# usermod -aG sudo zhammad

Пользователь добавлен в список sudoers и для проверки этого мы использовали команду «id».

# id zhammad

В приведенном выше выводе мы видим, что пользователь zhammad также добавлен в список sudo. Убедившись в этом, мы выйдем из режима root, набрав «exit».

#выход

Для переключения обратно на жаммад с хаммада.

$ су жаммад

Снова запустите команду fdisk и подтвердите, что проблема решена.

$ sudo fdisk -l

Команда выполняется успешно и отображает список дисков. Итак, наша проблема решена.

Заключение

Sudo используется для команд, которые вносят изменения в корневую папку и административные вещи. В целях безопасности эти разрешения предоставляются только пользователю root или пользователю, разрешенному пользователем root. Мы обсудили решение проблемы в этой статье, которая заключается в том, чтобы решить ее, установив sudo вручную (если он не установлен, его можно установить с помощью этой команды, иначе он установлен в Debian по умолчанию) и добавив пользователя в список sudoers, переключившись на учетную запись администратора.