The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Пользователь с для выключения, для перегрузки"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Пользователь с для выключения, для перегрузки"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 06-Май-04, 15:54  (MSK)
Создал /bin/shutdown.sh

#!/bin/sh

/sbin/shutdown -r now

Сделал исполняемым
Создал пользователя, которому в качестве шела дал /bin/shutdown.sh

При регистрации от данного пользователя ничего не происходит. Что пропустил?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Пользователь с для выключения, для перегрузки"
Сообщение от dev emailИскать по авторуВ закладки(??) on 06-Май-04, 16:09  (MSK)
а прав у него хватает?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Пользователь с для выключения, для перегрузки"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 06-Май-04, 16:33  (MSK)
>а прав у него хватает?


Все скрипты должны быть в группе оператор (которой принадлежит сам shutdown) и пользователь должен быть в группе оператор.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Пользователь с для выключения, для перегрузки"
Сообщение от lavr emailИскать по авторуВ закладки on 06-Май-04, 17:33  (MSK)
>>а прав у него хватает?
>
>
>Все скрипты должны быть в группе оператор (которой принадлежит сам shutdown) и
>пользователь должен быть в группе оператор.

смотрим shutdown:

bash-2.05a$ uname -rs
OpenBSD 3.1
bash-2.05a$ ls -al /sbin/shutdown
-r-sr-x---  1 root  operator  180224 Aug 21  2002 /sbin/shutdown
bash-2.05a$

видим что в наличии setuid-bit

варианты, либо пользователя которому будет дан shutdown - добавить
в wheel (нехорошо), либо в оператор и setgroupid на shutdown видимо.

И в обоих случаях, в скрипте который в качестве shell'а - выставить
trap'ы чтобы нельзя было прервать выполнение в целях секурити

Голова уже не варит :(

PS. Вобщем, нехорошая затея...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Пользователь с для выключения, для перегрузки"
Сообщение от Дмитрий Ю. Карпов emailИскать по авторуВ закладки on 06-Май-04, 17:52  (MSK)
> варианты, либо пользователя которому будет дан shutdown - добавить в wheel (нехорошо),

Ну а даже если добавишь - что это даст?

> либо в оператор и setgroupid на shutdown видимо.

Запустить shutdown могут только владелец (root, которому и так всё можно) и члены группы operator; на фига тут SetGID? Просто тот юзер, под которым будет логиниться шатдаунер, :-) д.б. включён в группу operator.


Sergey_A:
> скрипт лежит в /sbin, а шелл в /bin

В данном случае в роли шелла выступает скрипт; т.е. шелл и скрипт - одно и то же, а в /sbin лежит не шелл и не скрипт, а экзешник.

Хотя я бы не стал класть свои файлы в /bin - лучше в /usr/local/sbin.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Пользователь с для выключения, для перегрузки"
Сообщение от Sergey_A emailИскать по авторуВ закладки(ok) on 06-Май-04, 18:00  (MSK)
>Sergey_A:
>> скрипт лежит в /sbin, а шелл в /bin
>
>В данном случае в роли шелла выступает скрипт; т.е. шелл и скрипт
>- одно и то же, а в /sbin лежит не шелл
>и не скрипт, а экзешник.
>
>Хотя я бы не стал класть свои файлы в /bin - лучше
>в /usr/local/sbin.

Мдя, я что-то не туда глянул. Я по ошибке прочитал, что скрипт (в котором команда shutdown) и путь к шеллу (в /etc/passwd) различаются. Сглючил.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Пользователь с для выключения, для перегрузки"
Сообщение от lavr emailИскать по авторуВ закладки on 06-Май-04, 18:03  (MSK)
>> варианты, либо пользователя которому будет дан shutdown - добавить в wheel (нехорошо),
>
>Ну а даже если добавишь - что это даст?
>
>> либо в оператор и setgroupid на shutdown видимо.
>
>Запустить shutdown могут только владелец (root, которому и так всё можно) и
>члены группы operator; на фига тут SetGID? Просто тот юзер, под
>которым будет логиниться шатдаунер, :-) д.б. включён в группу operator.
>

ой, чуял что наморосил!!! посыпаю голову пеплом, столько серьезных промахов :(, все - заканчиваю на сегодня работать. Уволють за такое, как пить дать уволють :(

Дима - Thanks за поправки.

>Sergey_A:
>> скрипт лежит в /sbin, а шелл в /bin
>
>В данном случае в роли шелла выступает скрипт; т.е. шелл и скрипт
>- одно и то же, а в /sbin лежит не шелл
>и не скрипт, а экзешник.
>
>Хотя я бы не стал класть свои файлы в /bin - лучше
>в /usr/local/sbin.

не факт, особенно когда /usr отдельная FS, важно помнить и записывать
изменения, я статический bash всегда в корневую FS кладу для single-user
mode например.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Пользователь с для выключения, для перегрузки"
Сообщение от Дмитрий Ю. Карпов emailИскать по авторуВ закладки on 06-Май-04, 19:38  (MSK)
lavr:
> не факт, особенно когда /usr отдельная FS, важно помнить
> и записывать изменения, я статический bash всегда в корневую FS
> кладу для single-user mode например.

Это же скрипт, просто скрипт; и в Single-User Mode он совершенно не нужен.


A Clockwork Orange:
> скрипт должен принадлежать пользователю shutdown,
> принадлежность его группе operator недостаточно

Ну и что это даст скрипту? Владелец и группа файла со скриптом совершенно не важны - надо лишь чтобы посторонние не могли его заменть.


Amy:
> Плохой способ, несекьюрный!

Ну и чем же он несекьюрный? Что может сделать шатдаунер, кроме как прервать перезагрузку нажатием Ctrl+C?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Пользователь с для выключения, для перегрузки"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 06-Май-04, 18:27  (MSK)
>> варианты, либо пользователя которому будет дан shutdown - добавить в wheel (нехорошо),
>
>Ну а даже если добавишь - что это даст?
>
>> либо в оператор и setgroupid на shutdown видимо.
>
>Запустить shutdown могут только владелец (root, которому и так всё можно) и
>члены группы operator; на фига тут SetGID? Просто тот юзер, под
>которым будет логиниться шатдаунер, :-) д.б. включён в группу operator.
>
>
>Sergey_A:
>> скрипт лежит в /sbin, а шелл в /bin
>
>В данном случае в роли шелла выступает скрипт; т.е. шелл и скрипт
>- одно и то же, а в /sbin лежит не шелл
>и не скрипт, а экзешник.
>
>Хотя я бы не стал класть свои файлы в /bin - лучше
>в /usr/local/sbin.

скрипт должен принадлежать пользователю shutdown, принадлежность его группе operator недостаточно

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Пользователь с для выключения, для перегрузки"
Сообщение от Sergey_A emailИскать по авторуВ закладки(ok) on 06-Май-04, 16:20  (MSK)
>Создал /bin/shutdown.sh
>#!/bin/sh
>/sbin/shutdown -r now
  ^^^^^^

>Сделал исполняемым
>Создал пользователя, которому в качестве
>шела дал /bin/shutdown.sh
                   ^^^^^

>При регистрации от данного пользователя ничего не происходит. Что пропустил?


См. помеченное. Это ты при написании сообщения ошибся или так и есть (скрипт лежит в /sbin, а шелл в /bin) ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Пользователь с для выключения, для перегрузки"
Сообщение от Amy emailИскать по авторуВ закладки(ok) on 06-Май-04, 18:26  (MSK)
>Создал /bin/shutdown.sh
>
>#!/bin/sh
>
>/sbin/shutdown -r now
>
>Сделал исполняемым
>Создал пользователя, которому в качестве шела дал /bin/shutdown.sh
>
>При регистрации от данного пользователя ничего не происходит. Что пропустил?

Плохой способ, несекьюрный!
Лучше так:
Пользователю shutdown в кач. шелла такой /bin/shutdown.sh:
#!/bin/sh
trap : 1 2 3 15 30 31
: >/home/shutdown/.shutdown.now

Далее из крона, скажем раз в минуту проверяешь наличие файлика /home/shutdown/.shutdown.now и при наличии оного, удаляешь его и делаешь shutdown -r now
Таким образом пользователю shutdown не нужны никакие права, всё круто и секьюрно :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Пользователь с для выключения, для перегрузки"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 06-Май-04, 19:39  (MSK)
Не въехал, по подробнее можно?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Пользователь с для выключения, для перегрузки"
Сообщение от yux Искать по авторуВ закладки on 07-Май-04, 06:56  (MSK)
вроде проще сделать в скрипте написать sudo ...


  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Пользователь с для выключения, для перегрузки"
Сообщение от Amy emailИскать по авторуВ закладки(ok) on 07-Май-04, 16:08  (MSK)
>Не въехал, по подробнее можно?

Всё просто. Скрипт, /bin/shutdown.sh, не делает ничего, кроме создания пустого файла /home/shutdown/.shutdown.now.
trap : заставляет скрипт игнорировать сигналы, чтобы злобный хакер не смог чего-нибудь сделать во время его выполнения.

Дальше в /etc/crontab прописывай строчку, вроде этой:
* * * * *   root   /bin/rm /home/shutdown/.shutdown.now && /sbin/shutdown -r now

Все дела!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру