При выполнении команды от имени sudo выдаёт ошибку [закрыт]
Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой. Хотя похожие вопросы могут быть уместны на этом сайте, решение для этого вопроса вряд ли поможет будущим посетителям. Обычно можно избежать подобных вопросов написанием и исследованием минимальной программы для воспроизведения проблемы до публикации вопроса.
Закрыт 2 года назад .
При выполнении команды от имени sudo выдаёт ошибку *username* is not in the sudoers file. This incident will be reported . Пробовал зайти через команду su , также не выходит. Консоль пишет su: Authentication failure
Отслеживать
68.2k 225 225 золотых знаков 80 80 серебряных знаков 223 223 бронзовых знака
задан 26 июл 2021 в 12:47
vanorro228 vanorro228
37 6 6 бронзовых знаков
обращайтесь к администратору данного компьютера.
26 июл 2021 в 13:09
я администратор, ввожу верный пароль в su и он фейлится
26 июл 2021 в 13:17
Значит вы на самом деле забыли пароль.
26 июл 2021 в 13:19
В таком случае он бы писал фразу Sorry, try again.
26 июл 2021 в 13:23
Окей, давайте начнём с самого начала — почему вы решили, что sudo вообще должен работать для вашего пользователя?
26 июл 2021 в 13:27
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Предполагаю, что вашего пользователя нет в файле /etc/sudoers . Эту ошибку можно исправить с помощью режима восстановления.
- Командой tail /var/log/auth.log можно узнать, кто пытался получить доступ root. Примерный вывод:
Jul 26 16:08:16 surface-PC sudo: surface : TTY=pts/0 ; PWD=/home/surface ; USER=root ; COMMAND=/usr/bin/su Jul 26 16:08:17 surface-PC sudo: pam_unix(sudo:session): session opened for user root by (uid=0) Jul 26 16:08:17 surface-PC su: (to root) surface on pts/0 Jul 26 16:08:17 surface-PC su: pam_unix(su:session): session opened for user root by (uid=0)
- Перезагружаем компьютер, в меню Grub нажимаем E . В открывшемся редакторе меню загрузки находим строку linux vmlinuz. и приводим её к следующему виду: linux vmlinux. init=/bin/bash .
- После загрузки в оболочку bin/bash с правами root добавляем пользователя в группу wheel или sudo :
usermod -a -G wheel your_name
usermode -a -G sudo your_name
- Можно добавить разрешение для самого пользователя в файл sudoers (вставить строку в конец):
your_name ALL = (ALL) ALL
- Если не разрешено использование утилиты su пользователями из групп wheel ( sudo ):
%wheel ALL = (ALL) ALL
%sudo ALL = (ALL) ALL
Использование команды sudo в Linux
Команда sudo ( s ubstitute u ser and do , подменить пользователя и выполнить ) позволяет строго определенным пользователям выполнять указанные программы с административными привилегиями без ввода пароля суперпользователя root . Если быть точнее, то команда sudo позволяет выполнять программы от имени любого пользователя, но, если идентификатор или имя этого пользователя не указаны, то предполагается выполнение от имени суперпользователя root . Таким образом, использование sudo позволяет выполнять привилегированные команды обычным пользователям без необходимости ввода пароля суперпользователя root . Список пользователей и перечень их прав по отношению к ресурсам системы может быть настроен оптимальным образом для обеспечения комфортной и безопасной работы. Например, команда sudo в Ubuntu Linux, используется в режиме, позволяющем выполнять любые задачи администрирования системы без интерактивного входа под учетной записью root .
Настройки sudo довольно несложные, и тем не менее, позволяют реализовать гибкую систему распределения полномочий отдельных пользователей в многопользовательской среде.
Командная строка sudo может быть использована в следующих форматах:
sudo -h | -K | -k | -V
sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [ ]
sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-u user] file
Параметры командной строки:
-A, —askpass — использовать вспомогательную программу для ввода пароля
-b, —background — выполнить команду в фоновом режиме
-C, —close-from=num — закрыть все дескрипторы файлов >= num
-E, —preserve-env — сохранить пользовательское окружение при выполнении команды
-e, —edit — редактировать файлы вместо выполнения команды
-g, —group=group — выполнить команду от имени или ID указанной группы
-H, —set-home — установить для переменной HOME домашний каталог указанного пользователя
-h, —help — показать справку и выйти
-h, —host=host — выполнить команду на узле (если поддерживается модулем)
-i, —login — запустить оболочку входа в систему от имени указанного пользователя; также можно задать команду
-K, —remove-timestamp — полностью удалить файл с timestamp
-k, —reset-timestamp — объявить недействительным файл timestamp
-l, —list — показать список прав пользователя или проверить заданную команду; в длинном формате используется дважды
-n, —non-interactive — автономный режим без вывода запросов пользователю
-P, —preserve-groups — сохранить вектор группы вместо установки целевой группы
-p, —prompt=prompt — использовать указанный запрос пароля
-S, —stdin — читать пароль из стандартного ввода
-s, —shell — запустить оболочку от имени указанного пользователя; также можно задать команду
-U, —other-user=user — в режиме списка показывать права пользователя
-u, —user=user — выполнить команду (или редактировать файл) от имени или ID указанного пользователя
-V, —version — показать сведения о версии и выйти
-v, —validate — обновить временную метку пользователя без выполнения команды
— — прекратить обработку аргументов командной строки
Примеры использования команды sudo :
sudo –l — отобразить список команд, доступных для выполнения текущему пользователю. Кроме списка команд отображаются параметры среды, которые будут применяться при их выполнении.
sudo –ll — отобразить список команд, доступных для выполнения текущему пользователю в длинном (расширенном) формате.
В данном формате вместо краткого синтаксиса для списка разрешенных команд в виде (ALL : ALL) ALL отображается подробное описание прав пользователя:
sudo lshw -C network — отобразить информацию о сетевом оборудовании с правами суперпользователя root
sudo –l –U user1 — посмотреть список команд, доступных для выполнения пользователю user1 . Для выполнения данной команды пользователь должен быть root или иметь право на выполнение команды sudo -l , что обеспечивается настройками утилиты sudo в файле /etc/sudoers
sudo ipmitool sensor — выполнить команду ipmitool sensor с правами root .
sudo su — выполнить команду su , т.е. создать сеанс суперпользователя root
sudo -i — запустить командную оболочку с правами суперпользователя root . Для выполнения данной команды пользователь должен иметь право на выполнение программы оболочки в среде sudo , например — /bin/bash
sudo ls /usr/local/protected — получить список файлов каталога, доступного только root
sudo -u user2 ls ~ — получить список файлов домашнего каталога пользователя user2
sudo -u www vi ~www/htdocs/index.html — редактировать файл ~www/htdocs/index.html от имени пользователя www
sudo -g adm view /var/log/syslog — просмотреть файл системного журнала, доступного только суперпользователю root и членам группы adm
sudo -u user1 -g users2 vi /home/users2/textfile.txt — редактировать текстовый файл как пользователь user1, с принадлежностью к первичной группе users2
sudo -E /usr/bin/firefox — запустить браузер firefox от имени суперпользователя root , сохранив параметры среды текущего пользователя. Возможность выполнения команд с сохранением среды пользователя должна быть разрешена параметром SETENV в настройках файла конфигурации sudo
Файл конфигурации /etc/sudoers
Настройки sudo определяется содержимым файла /etc/sudoers . Поскольку ошибочные данные в данном файле могут привести к серьезным проблемам доступа к ресурсам системы, рекомендуется выполнять его изменение с помощью специального редактора sudoedit ( в некоторых дистрибутивах — visudo ), который поддерживает функции проверки синтаксиса и значительно снижает риск создания неработоспособной конфигурации sudo .
Содержимое файла /etc/sudoers определяет имена пользователей и групп, перечень выполняемых программ, необходимость введения паролей, и некоторые другие настройки, связанные с формированием переменных окружения при смене пользователя. Кроме данного файла, настройки sudo могут определяться содержимым файлов из каталога /etc/sudoers.d , что позволяет структурировать систему предоставления прав на использование sudo в виде набора файлов с осмысленными именами, что полезно при большом количестве пользователей и сложной системе разграничения прав. Имена файлов конфигураций в каталоге /etc/sudoers.d могут быть любыми, но их содержимое должно полностью соответствовать формату файла /etc/sudoers .
Синтаксис настроек в файле /etc/sudoers позволяет использовать специальные псевдонимы ( Alias-ы ), с помощью которых значительно упрощается как настройка, так и восприятие конфигурационной информации sudo .
В файле конфигурации /etc/sudoers возможно использование четырех разновидностей псевдонимов:
User_Alias — списки пользователей, для которых настраивается политика использования sudo .
Runas_Alias — списки пользователей, от имени которых может быть задано выполнение команд через sudo .
Host_Alias — списки узлов, с которых выполняется подключение к системе.
Cmnd_Alias — списки команд, использующиеся в настройках, выполняемых директивами файла /etc/sudoers
Host_Alias ADMCOMPS = localhost, server, admin — определяет псевдоним ADMCOMPS , который определяет группу компьютеров с именами localhost, server, admin .
Host_Alias MAILSERVERS = 192.168.0.100, smtp2 — определяет группу из двух компьютеров с указанными IP и именем. Возможно использование адресов подсетей.
User_Alias ADMINS = jsmith, admusr — определяет группу ADMINS , в которую входят пользователи с именами jsmith и admusr .
Аналогичным образом можно создать псевдонимы для различных наборов команд, доступных для выполнения в sudo :
## Группа команд, для работы в сети, псевдоним Networking
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
# Группа команд для управления установкой и удалением программ, псевдоним SOFTWARE
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
# Группа команд для управления системными службами, псевдоним SERVICES
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
Аналогичным образом можно создать псевдонимы для групп команд, выполнение которых делегируется одиночным или объединенных псевдонимами пользователей.
Основная часть настроек в файле /etc/sudoers задает правила, определяющие, какие пользователи, каких компьютеров, какие команды могут выполнять. Формат записей:
user — имена или псевдонимы пользователей.
MACHINE — имена или псевдонимы компьютеров
COMMANDS — секция команд, включающая имена или псевдонимы команд и дополнительные параметры.
Обычно, в файле /etc/sudoers присутствует директива, разрешающая выполнение пользователю root любых команд при любом подключении к системе:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Аналогичным образом можно разрешить выполнение через sudo всех команд для пользователя, например, с именем user
user ALL=(ALL) ALL
При данной настройке, у пользователя будет запрашиваться пароль ( его личный, а не пароль суперпользователя root ). При необходимости, можно настроить секцию команд таким образом, чтобы пароль не запрашивался, с использованием параметра NOPASSWD :
user ALL=(ALL) NOPASSWD: /usr/bin/su, /usr/bin/drakxconf — пароль будет запрашиваться при выполнении пользователем user через sudo всех команд, кроме su и drakxconf
Использование псевдонимов позволяет уменьшить необходимое число записей для определения прав пользователей, которые могут подключаться к системе с разных компьютеров и входить в разные группы:
ADMINS localhost=(ALL) NOPASSWD:ALL — разрешить группе пользователей, определенной псевдонимом “ADMINS” выполнять любые команды при подключении через петлевой интерфейс “localhost” без ввода пароля..
ADMINS ALL= NETWORKING, SOFTWARE — разрешить группе пользователей, объединенных псевдонимом “ADMINS” выполнять группы команд, объединенные псевдонимами “NETWORKING” и “SOFTWARE”.
Для существующих в системе групп пользователей можно также разрешать выполнение отдельных команд или групп команд:
%users localhost=/sbin/shutdown -h now — разрешить локальным пользователям выключение компьютера.
%operators ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom — разрешить членам группы “operators” монтирование и размонтирование указанных устройств.
%powerusers ALL=NETWORKING, NOPASSWD: /usr/bin/su — разрешить членам группы “powerusers” выполнять команды группы “NETWORKING” с вводом пароля и команду “su” без пароля.
Довольно часто возникает необходимость исключения разрешения на выполнение отдельных команд из списка, объединенных псевдонимом . В этом случае, перед именем команды или псевдонима ставится восклицательный знак – !
ADMINS ALL= ALL, !NETWORKING — разрешить группе пользователей, объединенных псевдонимом “ADMINS” выполнение всех команд, кроме команд, объединенных псевдонимом “NETWORKING”
В следующем примере, используется конфигурация команд, разрешающая выполнение через sudo для всех пользователей группы “ADMINS”, всех команд, кроме команд смены оболочки :
ADMINS ALL= ALL, !/bin/bash, !/usr/bin/su
Кроме настроек доступа, в файле /etc/sudoers присутствуют директивы Defaults , определяющие некоторые настройки путей исполняемых файлов и создание переменных окружения при выполнении команд:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Defaults env_keep = «COLOS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS»
Defaults env_keep += «MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE»
Defaults env_keep += «LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES»
Defaults env_keep += «LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE»
Defaults env_keep += «LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY»
По умолчанию, если интервал выполнения команд с использованием sudo , не превышает 5 минут, то повторный ввод пароля не требуется. Однако, это значение можно изменить, добавив значение timestamp_timeout в минутах:
В данном случае, если команда sudo будет выполняться не позже, чем через 1 минуту после ввода пароля для предыдущей команды, то повторно пароль запрашиваться не будет. Если значение “timestamp_timeout” сделать равным нулю, то пароль будет запрашиваться при каждом запуске sudo , если сделать отрицательным ( -1 ), — то повторный ввод пароля не будет запрашиваться никогда.
Для исключения возможности выполнения sudo-команд при подключении через ssh без авторизации, по умолчанию, должна использоваться команда “ssh –t “:
# Disable «ssh hostname sudo «, because it will show the password in clear.
# You have to run «ssh -t hostname sudo «.
Для определения дополнительного каталога с файлами конфигурации пользователей sudo используется директива:
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
Подробную справку по использовании sudo можно получить с помощью команд:
Не могу запустить от имени другого пользователя cowsay и xcowsay что делать?
Не могу запустить от имени другого пользователя cowsay и xcowsay.
sudo -u username cowsay hello
Output:
sudo: cowsay: command not found
Тоже самое если через gksu, gksudo или если sudo -u username -s cowsay hello
Ну и тоже самое с пакетом xcowsay, хотя от своего пользователя запускается
Подскажете?
- Вопрос задан более трёх лет назад
- 580 просмотров
1 комментарий
Оценить 1 комментарий
Вопросы с меткой [wsl]
Используйте для вопросов, связанных с Windows Subsystem for Linux, вместо меток «windows», «linux» и т.п.
34 вопроса без принятого ответа или без ответа, за который были отданы голоса
Новые Текущие Конкурсные Неотвеченные Ещё
- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Неотвеченные (мои метки)
322 показа
Ошибка в запуске python в wsl через pycharm: CreateProcess error=1921, Имя этого файла не может быть разрешено системой
Скачал подсистему Ubuntu 20.04 для windows 10, следуя этому туториалу (Simplified Installation), а затем настроил интерпретатор pycharm по туториалу. После запуска файла .py любого содержания вылетает .
задан 11 янв 2021 в 15:39
15 показов
Что прочитать, чтобы хорошо понимать как в linux взаимодействуют разные элементы среды разработки?
Неопытный программист, столкнулся с тем, что после установки на WSL 2, сборки из apache, mysql и всего, что нужно оказалось: версию php нужно устанавливать отдельно на сервере и отдельно в пакет с .
задан 20 июн 2023 в 15:06
2k показов
Как решить проблему «wsl : Имя «wsl» не распознано как имя командлета. «?
Ввожу «wsl —install» Появляется следующая ошибка: Подозреваю, что тот, кто ставил винду, ставил минимальную сборку «без мусора». Концы сейчас не найти, а wsl2 нужен. Подскажите, .
задан 18 фев 2023 в 17:52
237 показов
WSL2 автозапуск nginx, php, mariadb
При запуске «wsl2» как сделать так чтобы не приходилось запускать вручную (nginx, php8.1-fpm, mariadb) WSL2 Ubuntu 22.04.1 LTS Пробовал sudo update-rc.d nginx defaults sudo systemctl enable .
задан 9 фев 2023 в 5:56
1k показов
Настройка WSL с Ubuntu 20.04 LTS. Работа через общий vpn OpenVPN
Установил Ubuntu 20.04 LTS на Windows 10 через wsl. Всё корректно работает, но возникает проблема настройки маршрутизации трафика. На компьютере работаю через рабочий vpn с доступом до офисной .
задан 15 ноя 2020 в 15:20
158 показов
Установка интерпретатора Python в Neovim (WSL + Ubuntu Terminal)
OS: Win10 Pro (+подсистема Линукс) App: Neovim v.0.4.3 (использую с терминалом Ubuntu) Поддержка Python 3 имеется (:echo has(‘python3’)), все необходимое установлено, использую coc.nvim для авто-.
задан 13 авг 2020 в 15:33
10 показов
Snort3 в WSL2 для защиты Windows
установил и настроил snort3 в Windows 10 WSL2 (Ubuntu 22.03). Может ли snort обрабатывать пакеты которые идут на Windows из сети и как это сделать т.е. защитить и Windows 10? WSL Mirror Mode не .
задан 5 апр в 7:52
20 показов
Как из WSL подключиться к OpenServer
Есть приложение на Flask — он подключается к БД. На локальной машине если запускать на Windows, то все прекрасно подключается, а если это же приложение запустить через WSL, то он не видит БД, которая .
задан 3 апр в 8:33
Ошибка установки WSL
При установке выходит ошибка Операция развертывания была заблокирована из-за ограничений политики для каждого семейства пакетов, ограничивающей развертывания приложений на несистемном томе. Согласно .
задан 17 мар в 18:05
С чем связанны артефакты браузера?
Сегодня скачал kali linux на windows 10, попытался запустить firefox через консоль. Вот что с ним происходит. Причём когда я двигаю окно, этот баг пропадает, но стоит мне остановить окно, снова .
задан 4 мар в 8:19
Не могу запушить по ssh
По SSH склонировал, а запушить не могу. На ПК1 PyCharm открыт проект в WSL. там делаю git push Все хорошо пушится. Перехожу в соседнюю папку — делаю тоже самое и выпадает ошибка [email protected]: .
задан 5 фев в 15:08
Вызов .so библиотеки в C#
Написал небольшую C++ библиотеку с экспортируемым методом. Собираю ее в Dll и метод вызывается без проблем, но мне нужно, чтобы программа работала на Linux, поэтому я собираю библиотеку в Shared .
задан 29 ноя 2023 в 10:10
47 показов
Ошибка при установке WSL
Всем привет, при установке wsl такая ошибка, надеюсь на помощь Я пробовал устанавливать wsl по гайдам от разных сайтов, к примеру microsoft. Пересмотрел куча видео. Но все привело ни к чему.
задан 6 ноя 2023 в 12:53
48 показов
Виртуализация включена, но WSL этого не видит
Пытаюсь установить Ubuntu через wsl, выдает ошибку: не включена виртуализация (на скриншоте видно), Платформа виртуальной машины и виртуализация точно включена. Пк перезагружал.