Как избежать "root не разрешено запускать sudo"?

642
kottalovag

Я пытаюсь выполнить какой-нибудь сторонний скрипт установщика (ansible tower setup.sh), который должен быть запущен от имени пользователя root или через sudo, так как некоторые команды зависят от привилегий root. Однако некоторые команды во время выполнения скрипта пытаются выполнить sudo . Не спрашивайте меня почему, я думаю, что скрипт установки - это совместная работа с некоторыми несоответствиями ...

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

root@machine:/home/someuser: sudo echo 1 root is not allowed to run sudo on <FQDN here>. This incident will be reported. 

Я никогда не видел такого в своем предыдущем опыте работы с Ubuntu (и, честно говоря, ни в Google).

Поскольку невозможно найти все места и преобразовать скрипт, чтобы он не вызывал sudo, я должен найти способ, которым пользователь root сможет выполнить sudo. Сервер Ubuntu 16.04, над которым я работаю, экзотическим образом настраивается частным облачным провайдером компании внутри домена (IDK, имеет ли это значение).

Мой / etc / sudoers выглядит так:

# # This file MUST be edited with the 'visudo' command as root. # more bla bla Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"  # User privilege specification root ALL=(ALL:ALL) ALL  # Members of the admin group may gain root privileges +unixadmin,+unixadminext ALL= NOPASSWD: ALL  # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL  # See sudoers(5) for more information on "#include" directives:  #includedir /etc/sudoers.d 

о судо:

root@machine:/home/someuser# which sudo /usr/bin/sudo root@machine:/home/someuser# ll /usr/bin/sudo -rwsr-xr-x 1 root root 140816 Jun 7 2017 /usr/bin/sudo*  

Что мне не хватает?

Я добавил пользователя root в группу sudo, но это не решило проблему.

0
Если вы * root *, зачем вам запускать sudo? Я уверен, что здесь упущен какой-то более тонкий момент, но, конечно, когда вы запускаете что-то из командной строки root, sudo совершенно излишен. Mokubai 6 лет назад 0
Я задаю себе тот же вопрос. Root не должен нуждаться в sudo, поскольку sudo по сути эмулирует root-доступ для других пользователей без полномочий root. Если ваш сценарий должен быть запущен с более высокими привилегиями, то выполнение этого с правами root сделает это. Однако идея запуска с правами root дает мне дрожь. Возможно, мы могли бы помочь больше, если бы знали, чего вы на самом деле пытаетесь достичь, и ошибок, которые вы там получаете. s1ns3nt 6 лет назад 0
@Mokubai, спроси у создателей сценария, с которым я работаю. По сути, это делает внутренний установщик ansible tower, я сам просто вызываю скрипт оболочки. Естественно, скрипт должен вызываться через sudo, так как здесь и там он опирается на root-ность, в других местах он пытается поднять себя. kottalovag 6 лет назад 0
@ s1ns3nt, спасибо за вопрос, я отредактировал свой вопрос, чтобы быть более ясным. kottalovag 6 лет назад 0

1 ответ на вопрос

0
djsmiley2k

От имени root запустите groups- Root не входит в группу sudo, потому что зачем это нужно?

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

Чтобы добавить root в группу sudo:

(как корень) usermod -a -G sudo root

Спасибо, я посмотрел на группы, используя команду members. Затем добавил пользователя root в группу sudo с помощью usermod. Я сделал релогин. Однако я все еще не могу выполнить sudo через root. kottalovag 6 лет назад 0

Похожие вопросы