Как реализовать энергозависимый “профиль пользователя”

Я хочу настроить машину Linux, таким образом, что, когда конкретный пользователь, названный студентом, выходит из системы, их / корневой каталог вытерт чистый и сброс.

В основном я хочу выполнить эти действия, когда пользователь выходит из системы:

userdel student
rm -r /home/student
useradd -m student
echo student | passwd --stdin student

Существует ли более простой путь, чем удаление и воссоздание пользователя?

Примечание: Цель здесь состоит в том, чтобы вытереть содержание корневого каталога пользователя и повторно заполнить корневой каталог пользователя от/etc/skel. Я предполагаю, что просто пытаюсь работать вокруг проблем принадлежности файла, которые возникают когда копия/etc/skel по/home/student.

Править: То, что я должен сделать, подражать пути который useradd -m копирует материал с /etc/skel кому: /home/student и изменяет владельца, группу и полномочия. Как я могу сделать что useradd -m обходится без необходимости удалить и затем воссоздать пользователя?

3
задан 27.10.2009, 17:23

4 ответа

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

Не можете Вы просто сделать a

rsync -a --delete /etc/skel/ /home/student/

каждый раз пользователь выходит из системы?

Возможно, также уничтожьте все пользовательские процессы, если кого-либо оставляют, но вот именно.

ОБНОВЛЕНИЕ: Для изменения владельца файлов необходимо просто работать

chown -R student:student /home/student/*

после rsync.

Я сомневаюсь, что полномочия должны быть изменены, но если так, Вы оказываетесь перед необходимостью делать это на файле основанием файла, чем-то как

chmod +x /home/student/bin/*
5
ответ дан 08.12.2019, 00:09

Отмеченный с "ударом", таким образом, я предполагаю, что Вы смотрите на вход в систему командной строки вместо GUI

student@pc:~$ cat .bash_logout 
if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
cd ~
rm -r ~/* ~/.[a-zA-Z1-9]*
cp -r /etc/skel/* /etc/skel/.[a-zA-Z1-9]* .

Сначала 3 строки вышеупомянутого являются стандартными (по крайней мере, на моей машине Ubuntu), и остальное не было протестировано. Этот маршрут имеет преимущество не необходимости быть выполненным исключительно как корень.

0
ответ дан 08.12.2019, 00:09

Подготовка:

sudo mkdir /home/clean-homes/
sudo tar zcvf /home/clean-homes/$user.tar.gz ~user

Я не использую GDM и тем самым забываю формат /usr/share/xsessions/*.desktop то, что это использует, но они просты. Имейте ваши вызывают сценарий как

#! /bin/sh
cd
mkdir .old
mv * .* .old
rm -rf .old &
tar zxpPf /home/clean-homes/$USER.tar.gz
exec gnome-session  # or whatever

Это сделало, чтобы новый пользователь сделал всю работу удаления старых файлов и воссоздания содержания корневого каталога на входе в систему. Это не решение, если Вы хотите, чтобы старые файлы были защищены от нового пользователя: в этом случае необходимо ли создать многочисленных пользователей [почему не так ли?], или советуют людям запускать Ваш скрипт 'чистого выхода из системы', или - если Вам заблокировали людей во вход в систему с только Вашим /usr/share/xsessions/*.desktops - перепишите вышеупомянутый сценарий с полными путями и без фоновой обработки rm.

Не полагайтесь на пользователей, освобождающих их собственные каталоги на выходе из системы. См.: ctrl+alt+backspace, pkill gnome, и питание физически доступного компьютера.

0
ответ дан 08.12.2019, 00:09

Ubuntu 8.10 и позже появляется стандарт с опцией "Guest session". Это переключается на гостевую учетную запись со всеми обычными программами и каталогами в девственном состоянии. Любые изменения, которые вносит гость, потеряны, когда гость выходит из системы. В любое время можно переключиться на нормальную сессию, просто введя пароль.

0
ответ дан 08.12.2019, 00:09

Теги

Похожие вопросы