Интересно, возможно ли создать пользователя на сервере Ubuntu 11.10 с пользовательскими правами sudo.Под этим я подразумеваю использование, которое может запускать и закрывать окно, но не может, например, получить доступ к /var/www или изменить ip коробки через /etc/network/interfaces и перезапустить сеть и получить доступ только к определенным файлам. как системный, так и пользовательский в /etc/init.d/* .

Такие вещи можно сделать? Спасибо

РЕДАКТИРОВАТЬ: Это первый раз, когда мы внедряем программное обеспечение на коробке Linux. так что это комбинация php-приложения, работающего в apache2, с сервером отчетов в tomcat и другими приложениями, объединенными в 2 jars. эти файлы используются в качестве служб, чтобы их конфигурации были добавлены в папку /etc/init . Поэтому в идеале мы хотели бы защитить папку /var/www/ourapp , /var/lib/tomcat6/webapps/ourreporting если это возможно. Позволить клиенту перезапустить окно, изменить ip, перезапустить сеть, запустить и остановить наши службы , apache2, tomcat6 смотрите logs /var/logs/apache2|tomcat6 и это должно быть все

3 ответа3

1

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

Пока вы не повысите этих пользователей до администраторов (поместите их в определенные группы), у них не должно быть доступа к /var/www .


Обновление: по словам Брон Гондваны, мое следующее предложение опасно, потому что пользователи могут открыть что-нибудь с помощью vi, как только он будет запущен с правами root.

AFAIK, вы можете создать псевдоним для пользователей ~/.bashrc (или в /etc/bash.bashrc для общесистемных настроек), например, alias viinterfaces="vi /etc/network/interfaces" и предоставить пользователю доступ к viinterfaces как описано в одной из вышеуказанных статей. У меня в настоящее время нет linux на моей руке, поэтому вы должны проверить это предложение или подождать, пока другой суперпользователь не подтвердит или не откажется, что это работает.


1

Да, вы можете - но стоит подумать, от чего вы пытаетесь защитить.

Наиболее идеальными будут закаленные двоичные файлы, которые выполняют только одну задачу, и тщательно проверяют свои входные данные.

Конечно, такие вещи, как изменение /etc /network /interfaces - вы не хотите, чтобы они обращались к редактору с правами root - вы хотите, чтобы они генерировали новый файл со своим стандартным редактором, а затем вы хотите, чтобы этот файл был установлен поверх.

Но обратите внимание: если они меняют IP-адреса, им также нужен способ отключить интерфейс и снова выполнить резервное копирование.

И затем они могут установить на интерфейс все, что им нравится, в виде сценария "вверх" или "вниз", и все, у них есть root.

Так что в основном - это сложно, это куча дыр, ожидающих достаточно творческого человека, чтобы использовать его. Поэтому я спрашиваю еще раз - от чего вы пытаетесь защититься, и это то, что вы можете решить на уровне людей, а не на техническом уровне?

1

открыть файл /etc /sudoers

# /etc /sudoers

#

# Этот файл ДОЛЖЕН быть отредактирован командой 'visudo' от имени root.

#

# Смотрите страницу руководства для получения подробной информации о том, как написать файл sudoers.

#

По умолчанию env_reset

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

#% sudo ALL = NOPASSWD: ALL

# Спецификация псевдонима хоста

# Псевдоним пользователя

# Спецификация псевдонима Cmnd

# Спецификация привилегий пользователя

root ALL =(ALL) ALL

# Члены группы администраторов могут получить привилегии root

% admin ALL =(ALL) ALL


напишите строку ниже в файле /etc /sudoers

имя пользователя ALL =(ALL) ALL

тогда вы станете sudoer

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .