Портал информационной и технической поддержки ПО образовательных учреждений РФ

SPO HELP
  • Новости
  • Продукты
  • Поддержка
  • Учебный центр
  • Документация
  • Сообщество
  • Форумы
       
  • Вход
  • Регистрация

Форумы → Свободное Программное Обеспечение → [решено]Аналог ShadowUser для Linux
Последние записи

[решено]Аналог ShadowUser для Linux

Подписаться на [решено]Аналог ShadowUser для Linux Сообщений: 14, участников: 8

  • Участвуют:
  • Детский дом
  • testuser
  • Александр Шуваев
  • Константин Сакрюкин
  • Julia Dronova (administrator)
  • Школа8
  • Андрей Ивницкий
  • Viktor
Ответить


10 февраля 2012, 14:09
Icon_missing_medium Детский дом Записей: 7
Подскажите, пожалуйста, может, кто-нибудь встречал в природе софт, предназначенный для "виртуализации" сессии пользователя в Linux? Т.е. пользователь входит в систему, делает в ней всё-что-захочет и
что-ему-позволено, а после перезагрузки... система опять в первоначальном, "зафиксированном" состоянии? Что-то типа VirtualBox) - не подходят. Нужна не ОС-внутри-ОС, а "заморозка состояния" имеющейся
системы.
Или, если готового софта нет, может кто подскажет набор скриптов, который при каждой загрузке "убивает" все изменения в системе, сделанные пользователем, и восстанавливает её первоначальный вид?
 
10 февраля 2012, 16:50
Icon_missing_medium_medium testuser Записей: 990

Запуск с liveCD, например.

 
10 февраля 2012, 17:40
фото_4_medium Александр Шуваев Записей: 115

Плюсую ! Лучший ответ на заданый вопрос в номинации текущего года . . .

 
10 февраля 2012, 20:12
Skv_medium Константин Сакрюкин Записей: 282

Вам нужно, чтобы восстанавливались именно пользовательские настройки (рабочее пространство пользователя) или даже те, что он может попортить с правами root? Просто от root можно "грохнуть" всё без возможности восстановления.

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

 
10 февраля 2012, 20:32
Zhuu_admin_medium Julia Dronova (administrator) Записей: 3144

Товарищи, давайте мы не будем говорить, как именно можно завалить систему. Вы ещё на перловую строку ссылку дайте. 

 
10 февраля 2012, 21:13
Skv_medium Константин Сакрюкин Записей: 282

Что-то не туда отправил сообщение. Предыдущий свой пост исправл - "вирус" уничтожения удалил :о).

 
10 февраля 2012, 21:50
Custom_1_medium Школа8 Записей: 862

Детский дом писал(а):

Подскажите, пожалуйста, может, кто-нибудь встречал в природе софт, предназначенный для "виртуализации" сессии пользователя в Linux? Т.е. пользователь входит в систему, делает в ней всё-что-захочет и
что-ему-позволено, а после перезагрузки... система опять в первоначальном, "зафиксированном" состоянии? Что-то типа VirtualBox) - не подходят. Нужна не ОС-внутри-ОС, а "заморозка состояния" имеющейся
системы.
Или, если готового софта нет, может кто подскажет набор скриптов, который при каждой загрузке "убивает" все изменения в системе, сделанные пользователем, и восстанавливает её первоначальный вид?
http://unixforum.org/index.php?s=defe283d2cd53b...
 
11 февраля 2012, 08:51
Trollface_medium Андрей Ивницкий Записей: 360

Не знаю велосипед или нет, но как вариант создать нового пользователя, сделать TAR его домашнего каталога и добавить в rc.local что то типа:

cd /home/guest

rm -rf *

tar -xf /root/guest.tar

т.е. при перезагрузке системы содержимое домашнего каталога (вместе с настройками пользователя) будет удаляться и из архива восстанавливаться настройки по умолчанию

 
11 февраля 2012, 18:06
Icon_missing_medium Детский дом Записей: 7

Константин Сакрюкин писал(а):

Вам нужно, чтобы восстанавливались именно пользовательские настройки (рабочее пространство пользователя) или даже те, что он может попортить с правами root? Просто от root можно "грохнуть" всё без возможности восстановления.

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

​Alt Linux 5, KDE. дети у нас не хакеры, потому под правами root вряд ли зайдут, а вот с рабочим столом делают что хотят - вечно пропадает меню в панели задач, удаляют все значки с рабочего стола и окна типа интернет, опенофис и диспетчер файлов вечно приперты к краям экрана так, что их  не переместить, не закрыть крестиком и т.п. При всем этом файлы, которые они создают или загружают из инета, сохранять совсем не обязательно. Задача стоит так, чтоб следующий пользователь, котрый сядет за комп, работал с нормальным рабочим столом, который был поставлен изначально, а не приходилось каждый раз его воссоздавать заново вручную.
 
11 февраля 2012, 18:07
Icon_missing_medium Детский дом Записей: 7

Детский дом писал(а):

Константин Сакрюкин писал(а):

Вам нужно, чтобы восстанавливались именно пользовательские настройки (рабочее пространство пользователя) или даже те, что он может попортить с правами root? Просто от root можно "грохнуть" всё без возможности восстановления.

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

​Alt Linux 5, KDE. дети у нас не хакеры, потому под правами root вряд ли зайдут, а вот с рабочим столом делают что хотят - вечно пропадает меню в панели задач, удаляют все значки с рабочего стола и окна типа интернет, опенофис и диспетчер файлов вечно приперты к краям экрана так, что их  не переместить, не закрыть крестиком и т.п. При всем этом файлы, которые они создают или загружают из инета, сохранять совсем не обязательно. Задача стоит так, чтоб следующий пользователь, котрый сядет за комп, работал с нормальным рабочим столом, который был поставлен изначально, а не приходилось каждый раз его воссоздавать заново вручную.
​Да и прав у детей не очень много - только стандартные игры, которые входят в дистрибутив, интернет и опенофис
 
11 февраля 2012, 22:36
Skv_medium Константин Сакрюкин Записей: 282

Да не вопрос! Сегодня поздновато уже, а вот завтра что-то сообразим.

В моей школе тоже назрела необходимость такого возврата рабочего стола в исходное состояние. Пришла идея скрипта универсального - не зависимого от DE и семейства Linux. Завтра займусь.

 
12 февраля 2012, 20:31
Skv_medium Константин Сакрюкин Записей: 282

Ну вот и скриптики готовы!

Их два. Первый делает копию домашнего каталога пользователя сохраняя всё в архиве.

Второй скрипт при старте распаковывает сохранённый архив заменяя имеющийся пользовательский каталог.

И так, скрипт первый.

Открываем терминал с правами root. Создаём файл - команду см. ниже

touch /usr/bin/user-backup

Открываем созданный файл на редактирование:

mcedit /usr/bin/user-backup

Копируем листинг скрипта (см. ниже "Листинг 1") от #!/bin/bash до exit 0; и вставляем в открытый файл. Сохраняем изменения и закрываем mcedit.

Даём права на выполнение созданному скрипту:

chmod 755 /usr/bin/user-backup

Всё! С одним сценарием покончили. Переходим ко второму.

Создаём файл user-unback

touch /etc/rc.d/init.d/user-unback

Открываем его на редактирование

mcedit /etc/rc.d/init.d/user-unback

копируем листинг 2 и вставляем в открытый файл.

Сохраняем изменения и закрываем mcedit.

Даём права на выполнение файлу

chmod 755 /etc/rc.d/init.d/user-unback

Включаем скрипт в автозагрузку

chkconfig --add user-unback

chkconfig user-unback on

(Для выключения скрипта из автостарта даём команду chkconfig user-unback off )


Листинг 1 (исправлен 26.02.2012):

#!/bin/bash
# Скрипт создаёт резервную копию всех файлов и каталогов пользователя заданного как аргумент в командной строке
# к примеру: user-backup sidorov
# Будет сохранён каталог /home/sidorov
#
# Данный скрипт необходимо разместить в каталоге /usr/bin
# Дать права на выполнение chmod 755 /usr/bin/user-backup
#
# Использование: после проведения настроек у пользователя открываем терминал получаем права root
# Запускаем скрипт на выполнение задав каталог пользователя как аргумент: /usr/bin/user-backup sidorov

IFS=$'\t\n'; # Меняем разделитель на случай если имена файлов и каталогов с пробелами

# Проверяем наличие аргумета командной строки
if [ -n "$1" ];
then
# Если аргумент есть, в нашем случае это каталог пользователя без /home, то скрипт продолжает работу

# Проверяем наличие каталога для хранения резервной копии
if [ ! -d /root/user-backup ] ;
then
  mkdir /root/user-backup ; # И если его нет, то создаём у root-а, чтобы не достали...
fi
cd /home
tar cpf /root/user-backup/$1.tar ./$1 # сохраняем каталог пользователя в архив

else echo "Запусти скрипт с указанием домашнего каталога пользователя - без /home. Пример: /usr/bin/user-backup sidorov"; # Если каталог пользователя не задан, то выводим сообщение
fi

exit 0;

 

Листинг 2:

#!/bin/bash
# user-unback Unbackup user dir.
# chkconfig: 5 44 05
# description: unbackup user dir

IFS=$'\t\n'; # Переназначаем разделитель для случая имён с пробелом

if [ ! -d /root/user-backup ] ; # проверяем наличие каталога с резервными копиями
then
  exit 0; # если каталога нет, то завершаем работу скрипта

else
    for i in /root/user-backup/* # если каталог есть, то читаем всё его содержимое
    do
        user_home=$(echo $i | sed 's/.*\///g' | sed 's/\.tar//g'); # Из имени файла вычленяем имя пользователя
        rm -Rf /home/$user_home ; # Удаляем каталог пользователя польностью
        tar xpf $i -C /home # Распаковываем сохранённую копию каталога пользователя на место удалённого
    done
fi

exit 0;

 

Использование:

После полной настройки учётной записи пользователя необходимо запустить терминал с правами root и дать команду:

/usr/bin/user-backup sidorov

Где sidorov - каталог пользователя подлежащий резервированию. (Не полный путь, а только имя самого каталога)

Если пользователей несколько и у каждого была сделана резервная копия данной командой, то при старте системы будут восстанавливаться каталоги всех забекапированных пользователей.

Всё! Проверил сегодня под ALT-Linux-5.0.2 Мастер, под Debian-6 Squeeze - всё работает.

Предупреждение!!!

Каталог пользователя, который был забекапирован удаляется полностью без возможности восстановления и заменяется резервной копией. Домашние каталоги пользователей, которым бекап не производился остаются не тронутыми.

На моём сайте можно скачать оба скрипта в архиве: http://www.sakryukin.ru/?module=filesdb&id=... (ссылка исправлена).

Потом распаковать, раскидать в нужные места и раздать права, включить скрипт в автостарт. В общем всё то же, что и в статье, только скрипты готовые.

 
18 февраля 2012, 10:18
Custom_Аватар_medium Viktor Записей: 1327

Детский дом писал(а):

Подскажите, пожалуйста, может, кто-нибудь встречал в природе софт, предназначенный для "виртуализации" сессии пользователя в Linux? Т.е. пользователь входит в систему, делает в ней всё-что-захочет и
что-ему-позволено, а после перезагрузки... система опять в первоначальном, "зафиксированном" состоянии? Что-то типа VirtualBox) - не подходят. Нужна не ОС-внутри-ОС, а "заморозка состояния" имеющейся
системы.
Или, если готового софта нет, может кто подскажет набор скриптов, который при каждой загрузке "убивает" все изменения в системе, сделанные пользователем, и восстанавливает её первоначальный вид?
Гостевой сеанс в Ubuntu 12.04 :)
И еще rsync  http://www.spohelp.ru/forums/10-produkty-paketa...
 
28 февраля 2012, 08:53
Icon_missing_medium Детский дом Записей: 7

Всем спасибо! Отдельное спасибо Константину - очень помогли! Проблема стояла еще когда винда на всех компьютерах была - ничего не помогало, даже вышеупомянутый ShadowUser... Дети добирались до всего и 60% рабочего времени уходило на восстановление настроек.

Войдите чтобы ответить на тему

Форумы → Свободное Программное Обеспечение → [решено]Аналог ShadowUser для Linux
  • Главная
  • О проекте
  • Справка
  • Теги
  • Карта сайта

©2015 Все права защищены. Портал информационной и технической поддержки ПО образовательных учреждений РФ.
Cо всеми проблемами и пожеланиями по работе портала и службы технической поддержки вы можете обратиться по адресу .