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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Скрипт запрета запуска приложений от пользователя root  (Прочитано 2845 раз)

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

Оффлайн captd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Добрый день!
Необходимо сделать скрипт, который проверяет вход пользователя, если он root или имеет права на sudo, то не дает вход в систему, обычный пользователь может входить в ОС.
Как в Ubuntu определить root пользователя?
Выложил набросок кода:
# Условие проверки пользователя
if [ Если root то ]  #
then
echo "Доступ запрещен"
  блокируем доступ
#иначе входим в систему
else

fi

exit 0



Оффлайн Alligatоr

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Это не возможно. Root это пользователь с неограниченными правами.
Root можно в системе отключить, а sudo всё равно понадобится. Что будешь делать если надо будет установить программу или что-то подправить? Без рута это никак.
« Последнее редактирование: 12 Августа 2011, 16:58:15 от Alligatоr »

Оффлайн Pace!

  • Активист
  • *
  • Сообщений: 345
    • Просмотр профиля
Так?
#!/bin/bash

if [[ $EUID -ne 0 ]]; then
   echo "You must be root to do this." 1>&2
   exit 100
fi
Вот тут есть другие примеры.
« Последнее редактирование: 12 Августа 2011, 16:58:00 от Pace! »

Оффлайн Alligatоr

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Цитировать
Как в Ubuntu определить root пользователя?
Вот так:
vim /etc/group

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
А смысл?

В любом случае, по-моему, не тем путём идёте.

Оффлайн captd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Дописал следующее
ROOT_UID=0

if [ "$UID" -eq "$ROOT_UID" ]
then
killall -u root
else
 
fi

exit 0

Как я понял у Root'a UID всегда равен = 0, как быть с пользователями, которые имеют права на sudo? Их можно пресечь?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
killall -u root
Пардон, но это абсолютное ОЛОЛО.

Оффлайн captd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
А смысл?

В любом случае, по-моему, не тем путём идёте.
Данный скрипт я хочу добавить в автозагрузку, в плане дополнительной защиты.Допустим известен пароль пользователя с правами рута, после ввода пароля срабатывает скрипт, и завершает сеанс пользователя.

Оффлайн captd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
killall -u root
Пардон, но это абсолютное ОЛОЛО.

Я к примеру добавил, пока более хитрого способа не нашел.

Оффлайн Alligatоr

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Отключи root-пользователя вообще и поставь на учётку-админа пароль посложнее и будет безопасно.
Отключение рута - $ sudo passwd -l root
Смена пароля - sudo passwd user
Пароли вводятся, но не отображаются (даже звёздочки) - так задумано.

Оффлайн captd

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Отключи root-пользователя вообще и поставь на учётку-админа пароль посложнее и будет безопасно.
Отключение рута - $ sudo passwd -l root
Смена пароля - sudo passwd user
Пароли вводятся, но не отображаются (даже звёздочки) - так задумано.
Это все понятно, но мне охота, чтобы дополнительно после авторизации шла дополнительная проверка скриптом.
Как определить пользователя с правами sudo? Хотя в условии можно указать UID обычного пользователя, которому разрешен вход, а остальных блокировать.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
ммм лучше сразу сделай sudo chmod -x `which chmod`

Погуглишь. где-то был внушителный список способов разрешения этой проблемы.

Оффлайн s_lim

  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Насколько я понимаю, sudo имеют право использовать только 1000-ный юзер (это тот которого создают при установке ОС) и члены группы sudo (27-ая группа). Поэтому если пользователь не является 1000-ным и не является членом группы sudo, то он не сможет использовать данную утилиту.
Ubuntu 10.04.3 LTS Lucid Lynx (amd64)
AMD Phenome II x6; AMD 890GX; ATI Radeon HD4290; GDDR3 1600

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
очень извращённое понимание конфигов sudo
больше ни кому это не говори

перефразирую исходную задачу:
необходимо сконфигурировать ОС Linux так чтобы право входа имели исключительно кастрированные по самое нехочу пользователи (не будем обсуждать преследуемые цели).

решение задачи:
удаляешь из системы sudo и запрещаешь вход руту. готово.

зачем скрипт? как тогда это относится к программированию?

ну а вообще проверку на рута здесь уже подсказали.

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
Поэтому если пользователь не является 1000-ным и не является членом группы sudo, то он не сможет использовать данную утилиту.
Нет, использовать sudo могут те, кто указан в файле sudoers. В ubuntu в нём указана группа sudo, но может быть кто угодно, хоть nobody.

 

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