Freebsd | Sudo | подскажите плиз
6491
16
Есть Freebsd 9.2, нужно дать пользователю права на sudo, но так что-бы он не смог сменить пароль root (sudo passwd root), добавляя его просто в группу wheel разрешаю ему обсолютно все.
Как можно решить проблему?


p.s. что именно будет делаться из под рута понятия не имею, по это разрешить только определенные команда не могу, нужно именно определенную запретить.
Yura_18
Я думаю, что это невозможно. Разрешить определенные команды и запретить остальные -- не проблема. А вот обратную операцию я не нашел.
Но даже если запрещено sudo passwd, этот пользователь может дать команду sudo -i, после чего он станет полноценным суперпользователем, неотличимым от "настоящего". Ну или просто руками изменить /etc/shadow.
pavelv
Вот и я это решение нашел пока как единственное, не подскажите случаем, может был опят, каков список основных команд?
Yura_18
Да как же его дашь? У каждого свой. Попробуйте дать команду history от рута. Повится список команд, которые вы использовали в реальной работе. Так же стоит вывести список команд того пользователя, которому собираетесь рутовые права дать. На эти два списка, наверное, и следует ориентироваться.
Yura_18
Встречный вопрос: А зачем давать права на sudo человеку, которому не доверяете? Может, пусть лучше обращается к вам для решения администраторских задач?

Ну и как вариант решения проблемы, если все-таки этот пользователь сменил пароль root: убедитесь заранее, что у вас у самого есть права на sudo, сделайте копию файла /etc/shadow, чтобы в случае чего вернуть пароли к исходному состоянию.
pavelv
Краткая предыстория такова, есть некий web програмер у которого кое как удалось забрать наш сервер целиком, тепеоь ему нужно работать и он утверждает что без sudo он не как рабоать не может, если честно я вообще не понимаю за чем ему это нужно, все права на каталог сайта у него есть на мускуль тоже, но тем не мение он капает на директора, тот в свою очерередь на меня что мол надо дать права, но так чтоб сам сервер остался у меня. На данный момент его пришлось таки включить в группу вхил, так как хренов апач от нее работает и доступ ко всем без исключения файлам сайта только для этой группы, но так как автоматом у него появилось судо, пришлось исправить файлик судовский так чтоб выдавала ошибку при попытке использования вмето работы.
pavelv
к сожалению сейчас уже история ни чего не даст, так как после получения доступа я сам из под рута очень мнго чего сделал и разобраться где чье теперь не реально.
Yura_18
Я по-прежнему думаю, что, невозможно обеспечить безопасность рутового пароля от человека с sudo, если он имеет доступ к любому текствому редактору. С его помощью или элементарным sed'ом можно переписать строчку с паролем в файле /etc/shadow.

Поэтому придумал еще варианты восстановления пароля после успешной атаки.
1. Заранее обеспечьте беспарольный доступ по ssh по ключу под учетную запись root от своего имени (или от имени специально для этого созданного пользователя, чтобы враги не догадались).
2. Прописать в cron'e задачу, которая будет сама через каждый час (или раз в сутки) сбрасывать пароль рута на нужный вам. В этом случае, даже если атакующий сменит пароль, через какое-то время он вернется к исходному состоянию.
3. Как-то раз мне давали рутовый доступ в систему под новым пользователем без sudo, а просто заводили альтернативного рута. То есть, в системе одновременно существовали два рута, каждый со своим паролем. К сожалению, не помню, как это было сделано, и в интернете сходу не нашел, но, может, вы найдете.
pavelv
3. Как-то раз мне давали рутовый доступ в систему под новым пользователем без sudo, а просто заводили альтернативного рута. То есть, в системе одновременно существовали два рута, каждый со своим паролем. К сожалению, не помню, как это было сделано, и в интернете сходу не нашел, но, может, вы найдете.
а вот это уже очень интересно, покапаю в эту сторону.

Хотя я лично вообще не понимаю зачем не админу сервера пароль рута.
Yura_18
Увас сайт на каком движке сделан ? Например для Django иногда рут нужен чтоб нужную компоненту проинсталить. В любом случае если у вас сервак под боком, яб особо не заморачивался. Сделайте безпарольный доступ в сингл моде и всегда будет шанс заиметь доступ взад.
Mozepiy
Это еще одно условие, сервер фик знает где в датацентре в Москве с неизвестной архитертурой и начинкой.
Yura_18
Обычно, за редким исключением, консольное управление машиной присутствует у вас нетак ?
Mozepiy
Консили в чистом виде у меня нет! Есть только ssh доступ.
Yura_18
неужели даже KVM не дадут в "датацентре в Москве"?
Mad_Dollar
Над этим сейчас работаем, пока неизвестно что там дадут и есть ли вообще что-то.
Yura_18
настраивайте судо на команды, пусть шлет список команд - получит судо на них. по другому не получится
а вообще, apache от wheel - я даже не знаю. может вам администратора нанять?
Mad_Dollar
Это тоже в процессе, но старый должен закончить работу, а пока я за него все подкладываю и права раздаю...