Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Запрет на выполнение команды passwd  (Прочитано 7221 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн StrangerSerg

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Debian Lenny vs Ubuntu 10.04
    • Просмотр профиля
Имеется 4 пользователя в системе ну и root соответсвенно.
У двоих пользователей есть доступ к команде sudo.
Необходимо что бы команду passwd мог выполнять только root.
т.е что бы даже вот такая команда запущена пользователем sudo passwd user не отрабатывалась.
Реально?
Linux - это такая фэнтезийная mmorpg: эльфы в файлах, гномы на столах, зомби в процессах, а на форумах сплошь тролли да красноглазые орки.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Запрет на выполнение команды passwd
« Ответ #1 : 07 Июля 2015, 14:56:05 »
И да, и нет. При редактировании visudo:

- заводите алиас

Cmnd_Alias    PSWD = /usr/bin/passwd, /usr/sbin/visudo
- меняете разрешения группе sudo (или той, которой разрешено sudo)

%sudo   ALL=(ALL:ALL) ALL , !PSWD
В алиас добавлена команда visudo, чтобы не было возможности изменить собственно список sudoers. На самом деле, есть еще куча способов изменить этот список, так что в принципе особого смысла такой запрет не имеет.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Запрет на выполнение команды passwd
« Ответ #2 : 07 Июля 2015, 16:10:32 »
sudo - Без пароля -> http://paste.ubuntu.com/8274823/
Wars ~.o

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Запрет на выполнение команды passwd
« Ответ #3 : 07 Июля 2015, 16:41:05 »
Это здесь вообще не к месту.

Оффлайн StrangerSerg

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Debian Lenny vs Ubuntu 10.04
    • Просмотр профиля
Re: Запрет на выполнение команды passwd
« Ответ #4 : 07 Июля 2015, 17:54:12 »
Итог:
выполняем команду
sudo visudoКоментируем или удаляем строку:
 %sudo   ALL=(ALL:ALL) ALLи добавляем новую
 %sudo   ALL=(root) /usr/bin/apt-get, /usr/bin/passwd, !/usr/bin/passwd root
Пользователь успешно может устанавливать программы (/usr/bin/apt-get) но от имени рута т.е с использованием sudo запрещено исполнять команду passwd (!/usr/bin/passwd root)
Linux - это такая фэнтезийная mmorpg: эльфы в файлах, гномы на столах, зомби в процессах, а на форумах сплошь тролли да красноглазые орки.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Запрет на выполнение команды passwd
« Ответ #5 : 07 Июля 2015, 18:25:34 »
ну, новый скрипт к файл /usr/bin/user-passwd.sh
#!/bin/bash
passwd user
и постав
user ALL=(ALL) NOPASSWD:/usr/bin/user-passwd.sh
Wars ~.o

alexxnight

  • Гость
Re: Запрет на выполнение команды passwd
« Ответ #6 : 08 Июля 2015, 12:45:15 »
А давайте попробуем зайти с другой стороны.
Вы дали sudo-доступ пользователем для выполнения каких программ?
Есть вариант поместить этих пользователей в отдельную группу и дать доступ этой группе к определенному списку программ, за исключением passwd.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Запрет на выполнение команды passwd
« Ответ #7 : 08 Июля 2015, 13:05:11 »
(Нажмите, чтобы показать/скрыть)
Wars ~.o

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Запрет на выполнение команды passwd
« Ответ #8 : 08 Июля 2015, 13:24:07 »
Я просто хотел сказать следующее:

1. В механизме sudo существует механизм исключения (списка) команд из доступных
2. Однако вариант "разрешить все, кроме" не работает по причине того, что изменение списка sudoers возможно произвести кучей разных способов (а не только выполнением команды visudo). Это дает возможность разрешить себе выполнение и "запрещенной" команды.

Соответственно, наилучший метод - это давать разрешение только на требуемый список команд (следя при этом за тем, чтобы при помощи этих команд нельзя было бы изменить список sudoers).

Есть, впрочем, еще один вариант - установить на все файлы в папке /etc/sudoers.d/ , на папку /etc/sudoers.d и на файл /etc/sudoers атрибут "i", запретив нужной группе/пользователю предварительно выполнение команды /usr/bin/chattr

Но это нужно проверять - возможно и в этом случае найдется способ "обхода" этого запрета.

Пользователь решил продолжить мысль 08 Июля 2015, 15:28:49:
А вообще, стоит, видимо, поверить написанному в man sudoers

Цитировать
Limitations of the ‘!’ operator
     It is generally not effective to “subtract” commands from ALL using the
     ‘!’ operator.  A user can trivially circumvent this by copying the
     desired command to a different name and then executing that.  For exam‐
     ple:

     bill    ALL = ALL, !SU, !SHELLS

     Doesn't really prevent bill from running the commands listed in SU or
     SHELLS since he can simply copy those commands to a different name, or
     use a shell escape from an editor or other program.  Therefore, these
     kind of restrictions should be considered advisory at best (and rein‐
     forced by policy).

     In general, if a user has sudo ALL there is nothing to prevent them from
     creating their own program that gives them a root shell (or making their
     own copy of a shell) regardless of any ‘!’ elements in the user specifi‐
     cation.
« Последнее редактирование: 08 Июля 2015, 15:28:49 от Karl500 »

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.