Есть Freebsd 9.2, нужно дать пользователю права на sudo, но так что-бы он не смог сменить пароль root (sudo passwd root), добавляя его просто в группу wheel разрешаю ему обсолютно все.
Как можно решить проблему?
p.s. что именно будет делаться из под рута понятия не имею, по это разрешить только определенные команда не могу, нужно именно определенную запретить.
Я думаю, что это невозможно. Разрешить определенные команды и запретить остальные -- не проблема. А вот обратную операцию я не нашел.
Но даже если запрещено sudo passwd, этот пользователь может дать команду sudo -i, после чего он станет полноценным суперпользователем, неотличимым от "настоящего". Ну или просто руками изменить /etc/shadow.
Это сообщение не направлено на оскорбление чувств верующих, неверующих, сексменьшинств, животных, разжигание межнациональной вражды и загрязнение природы.
Да как же его дашь? У каждого свой. Попробуйте дать команду history от рута. Повится список команд, которые вы использовали в реальной работе. Так же стоит вывести список команд того пользователя, которому собираетесь рутовые права дать. На эти два списка, наверное, и следует ориентироваться.
Это сообщение не направлено на оскорбление чувств верующих, неверующих, сексменьшинств, животных, разжигание межнациональной вражды и загрязнение природы.
Встречный вопрос: А зачем давать права на sudo человеку, которому не доверяете? Может, пусть лучше обращается к вам для решения администраторских задач?
Ну и как вариант решения проблемы, если все-таки этот пользователь сменил пароль root: убедитесь заранее, что у вас у самого есть права на sudo, сделайте копию файла /etc/shadow, чтобы в случае чего вернуть пароли к исходному состоянию.
Это сообщение не направлено на оскорбление чувств верующих, неверующих, сексменьшинств, животных, разжигание межнациональной вражды и загрязнение природы.
Краткая предыстория такова, есть некий web програмер у которого кое как удалось забрать наш сервер целиком, тепеоь ему нужно работать и он утверждает что без sudo он не как рабоать не может, если честно я вообще не понимаю за чем ему это нужно, все права на каталог сайта у него есть на мускуль тоже, но тем не мение он капает на директора, тот в свою очерередь на меня что мол надо дать права, но так чтоб сам сервер остался у меня. На данный момент его пришлось таки включить в группу вхил, так как хренов апач от нее работает и доступ ко всем без исключения файлам сайта только для этой группы, но так как автоматом у него появилось судо, пришлось исправить файлик судовский так чтоб выдавала ошибку при попытке использования вмето работы.
к сожалению сейчас уже история ни чего не даст, так как после получения доступа я сам из под рута очень мнго чего сделал и разобраться где чье теперь не реально.
Я по-прежнему думаю, что, невозможно обеспечить безопасность рутового пароля от человека с sudo, если он имеет доступ к любому текствому редактору. С его помощью или элементарным sed'ом можно переписать строчку с паролем в файле /etc/shadow.
Поэтому придумал еще варианты восстановления пароля после успешной атаки.
1. Заранее обеспечьте беспарольный доступ по ssh по ключу под учетную запись root от своего имени (или от имени специально для этого созданного пользователя, чтобы враги не догадались).
2. Прописать в cron'e задачу, которая будет сама через каждый час (или раз в сутки) сбрасывать пароль рута на нужный вам. В этом случае, даже если атакующий сменит пароль, через какое-то время он вернется к исходному состоянию.
3. Как-то раз мне давали рутовый доступ в систему под новым пользователем без sudo, а просто заводили альтернативного рута. То есть, в системе одновременно существовали два рута, каждый со своим паролем. К сожалению, не помню, как это было сделано, и в интернете сходу не нашел, но, может, вы найдете.
Это сообщение не направлено на оскорбление чувств верующих, неверующих, сексменьшинств, животных, разжигание межнациональной вражды и загрязнение природы.
В ответ на: 3. Как-то раз мне давали рутовый доступ в систему под новым пользователем без sudo, а просто заводили альтернативного рута. То есть, в системе одновременно существовали два рута, каждый со своим паролем. К сожалению, не помню, как это было сделано, и в интернете сходу не нашел, но, может, вы найдете.
а вот это уже очень интересно, покапаю в эту сторону.
Хотя я лично вообще не понимаю зачем не админу сервера пароль рута.
Увас сайт на каком движке сделан ? Например для Django иногда рут нужен чтоб нужную компоненту проинсталить. В любом случае если у вас сервак под боком, яб особо не заморачивался. Сделайте безпарольный доступ в сингл моде и всегда будет шанс заиметь доступ взад.
настраивайте судо на команды, пусть шлет список команд - получит судо на них. по другому не получится
а вообще, apache от wheel - я даже не знаю. может вам администратора нанять?