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
|
|
|
|
- dep:
init-system-helpers
(>= 1. 54~) - вспомогательные инструменты для всех систем инициализации
- dep:
- dep:
libaudit1
(>= 1:2.2.1) - динамическая библиотека для аудита безопасности
- dep:
- dep:
libc6
(>= 2.34)
[не alpha, ia64, sh5] - библиотека GNU C: динамически подключаемые библиотеки
также виртуальный пакет, предоставляемыйlibc6-udeb
- dep:
libc6
(>= 2.36)
[sh5]
- dep:
- dep:
libc6.1
(>= 2.34)
[alpha] - библиотека GNU C: динамически подключаемые библиотеки
также виртуальный пакет, предоставляемыйlibc6.1-udeb
- dep:
libc6.1
(>= 2.36)
[ia64]
- dep:
- dep:
libpam-modules - Подключаемые Модули Аутентификации для PAM
- dep:
- dep:
libpam0g
(>= 0. 99.7.1) - библиотека Подключаемых Модулей Аутентификации (PAM)
- dep:
- dep:
libselinux1
(>= 3.1~) - динамические библиотеки SELinux
- dep:
- 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]
- dep:
Загрузка sudo
Архитектура | Размер пакета | В установленном виде | Файлы |
---|---|---|---|
alpha (неофициальный перенос) | 1 805,6 Кб | 6 889,0 Кб | [список файлов] |
amd64 | 1 844,7 Кб | 6 054,0 Кб | [список файлов] |
arm64 | 1 783,4 Кб | 6 358,0 Кб | [список файлов] |
armel | 1 784,9 Кб | 5 850,0 Кб | [список файлов] |
armhf | 1 791,1 Кб | 5 362,0 Кб | [список файлов] |
hppa (неофициальный перенос) | 1 798,6 Кб | 6 192,0 Кб | [список файлов] |
i386 | 1 855,5 Кб | 6 276,0 Кб | [список файлов] |
ia64 (неофициальный перенос) | 1 920,6 Кб | 8 065,0 Кб | [список файлов] |
m68k (неофициальный перенос) | 1 754,1 Кб | 5 794,0 Кб | [список файлов] |
mips64el | 1 748,1 Кб | 6 726,0 Кб | [список файлов] |
mipsel | 1 760,6 Кб | 6 492,0 Кб | [список файлов] |
ppc64 (неофициальный перенос) | 1 804,4 Кб | 7 193,0 Кб | [список файлов] |
ppc64el | 1 825,1 Кб | 6 998,0 Кб | [список файлов] |
riscv64 (неофициальный перенос) | 1 786,9 Кб | 5 557,0 Кб | [список файлов] |
s390x | 1 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 addusersudo
Изменение вступит в силу после следующего входа в систему.
Это работает, потому что /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, переключившись на учетную запись администратора.