Как избежать слова sudo для выполнения команд с более высоким уровнем привилегий пользователем без полномочий root

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

Пример: нормальное выполнение команды Sudo.

$ sudo -u root /usr/bin/tcpdump

пользователи без полномочий root должны выполнить tcpdump, как показано ниже.

$ tcpdump

Заранее спасибо.

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


person Nikhil    schedule 24.06.2016    source источник
comment
Вы можете определить alias tcpdump='sudo tcpdump'.   -  person melpomene    schedule 24.06.2016
comment
Вы имеете в виду добавить псевдоним профилей пользователей без полномочий root?   -  person Nikhil    schedule 24.06.2016
comment
Почему этот вопрос отмечен perl?   -  person dgw    schedule 24.06.2016
comment
@dgw - Хороший вопрос. Поэтому я удалил тег Perl.   -  person Dave Sherohman    schedule 24.06.2016


Ответы (2)


Да. Это возможно.

Вам следует:

1- Создайте новую конкретную новую группу, в которую будут входить некоторые пользователи:

groupadd nonroot

2- Добавьте своих привилегированных пользователей в эту группу:

2.1- Редактировать /etc/group:

vim /etc/group

2.2- Найдите строку новой созданной группы. Это должно выглядеть так:

nonroot:x:127:

2.3- В конце добавьте своих привилегированных пользователей:

nonroot:x:127:user1,user2

3- Измените группу вашего двоичного файла:

chgrp nonroot /usr/bin/tcpdump

4- Дайте разрешения на групповое выполнение бинарному файлу:

chmod g+x /usr/bin/tcpdump

Вы должны иметь в виду, что если двоичный файл читает, записывает или выполняет файлы, для которых user1 не имеет разрешений, вам придется изменить их таким же образом.

Если вы не можете изменить группу двоичного файла, проверьте правильный ответ в сообщении ниже, что аналогично:

Разрешить пользователям определенной группы запускать команда без sudo

Надеюсь, поможет.

ПРИМЕЧАНИЕ. Команды могут различаться в разных дистрибутивах Linux/Unix.

person nicof    schedule 24.06.2016
comment
спасибо за ответ nicof, но это не то, что я ищу. - person Nikhil; 24.06.2016
comment
@sach - Если бы вы сказали нам, почему это не тот ответ, который вы ищете, это значительно повысило бы ваши шансы на получение удовлетворительного ответа. - person Dave Sherohman; 24.06.2016
comment
@nicof, я буду определять политики sudo для нескольких пользователей, чтобы у пользователей было разрешение на выполнение команд, определенных в политике. Мне нужен способ скрыть пользователей для ввода sudo. Таким образом, я ищу способ, при котором пользователи будут просто выполнять команды, не вводя sudo. - person Nikhil; 24.06.2016
comment
@sach - я предполагаю, что когда вы говорите о политиках sudo, вы имеете в виду настройку файла /etc/sudoers для некоторых пользователей. Этот файл позволяет выполнять некоторые двоичные файлы высокого уровня для некоторых пользователей или их группы, но всегда вводя sudo перед этим, потому что файл sudoers является конфигурацией для этого файла. - person nicof; 24.06.2016
comment
Кроме того, насколько мне известно, вы не можете пропустить использование sudo из конфигурации /etc/sudoers. Если вы прочитали ссылку, которую я разместил в конце, у вас есть возможность создать скрипт для скрыть использование sudo (как сказал Хенрик в своем ответе) - person nicof; 24.06.2016

Я вижу как минимум две возможности:

  1. Завернуть его в скрипт (псевдоним тоже возможен, но если пользователи могут использовать разные шеллы или просто запускать их вручную, это может превратиться в ад обслуживания)

  2. Установите бит suid в tcpdump, но это означает, что каждый, кто может вызывать tcpdump, всегда делает это как владелец.

person Henrik supports the community    schedule 24.06.2016