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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Первый вход юзера?  (Прочитано 1977 раз)

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

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Первый вход юзера?
« Ответ #15 : 12 Ноября 2010, 19:38:00 »
find /home/*/.profile -mtime +2 -printf %u | while read ; do deluser --quiet $REPLY ; done
« Последнее редактирование: 12 Ноября 2010, 19:51:30 от ArcFi »

Оффлайн Averus8

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
Re: Первый вход юзера?
« Ответ #16 : 12 Ноября 2010, 19:41:36 »
Цитировать
Это очень просто:
touch /var/local/$USER

/var/local/ не содержит ничего в моей ubuntu10server

Цитировать
Или даже ещё проще.
ls -ld $HOMEТогда остаётся лишь найти каталог старше 2-х дней и удалить соответствующего пользователя.
у юзеров нет домашних папок, не создаются, юзером не дана файловая система для личных фалов.

Цитировать
В общем, всё решение в 1 команду.

как я хотел бы...

Пользователь решил продолжить мысль 12 Ноября 2010, 19:47:42:
find /home/*/.profile -mtime +2  -printf %u | while read ; do deluser --quiet $REPLY ; done

это супер, но надо использовать что-то кроме Хома дир. они не создаются. При логине. Хотя кто мешает создавать что-то самому при логине. Попробую.
« Последнее редактирование: 12 Ноября 2010, 19:47:42 от Averus8 »

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Первый вход юзера?
« Ответ #17 : 12 Ноября 2010, 19:48:33 »
Цитировать
Это очень просто:
touch /var/local/$USER
/var/local/ не содержит ничего в моей ubuntu10server
Так команда touch создаст файл.

Если юзерам не дана файловая система, можно эту команду вписать в /etc/profile
Лучше даже c проверкой
[ ! -f /var/local/$USER ] && touch /var/local/$USER
Для удаления юзеров надо создать одно задание в кроне, с той командой find.
И она будет удалять всех юзеров, которые логинились три дня назад и раньше.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Первый вход юзера?
« Ответ #18 : 12 Ноября 2010, 19:52:50 »
Ах, да...
/etc/profile - это для bash.
Если юзер не будет запускать терминал, этот файл может и не выполниться.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Averus8

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
Re: Первый вход юзера?
« Ответ #19 : 12 Ноября 2010, 20:00:48 »
Если нужно чтоб что-то выполнилось один раз, можно воспользоваться at, что-то вроде:
at now+3дня
точный синтаксис не помню.

в мане не увидил даже близко такого синтаксиса или не понял, если найдете - отменя спасибо, это то что надо мне.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Первый вход юзера?
« Ответ #20 : 12 Ноября 2010, 20:08:06 »
у юзеров нет домашних папок, не создаются, юзером не дана файловая система для личных фалов.
ok, тогда можно по расписанию грепать auth.log, выковыривать дату логина и скармливать её команде touch ниже:

[ ! -f /var/local/$USER ] && touch /var/local/$USER

Оффлайн Averus8

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
Re: Первый вход юзера?
« Ответ #21 : 12 Ноября 2010, 20:11:15 »
Цитировать
Так команда touch создаст файл.
я пробывал еще тогда, до того как Вам писать, ничего не создала.

Цитировать
Если юзерам не дана файловая система, можно эту команду вписать в /etc/profile
всеже этот файл срабатывает, е в него и планирую скрипт бросать.

[/quote]
Лучше даже c проверкой
[ ! -f /var/local/$USER ] && touch /var/local/$USER
Цитировать
Для удаления юзеров надо создать одно задание в кроне, с той командой find.
И она будет удалять всех юзеров, которые логинились три дня назад и раньше.
тут есть одна проблемка, например откуда крону знать какого юзера через сколько удалить.(не руками же мне срок каждого юзера считать и прописывать)
тоесть грубо говоря нужен таймер который бы начинал срабатывать для $USER при входе в систему, потому что у каждого юзера свой срок.
чтоб таймер тикал, даже если юзер выйдет, через дня три удалял юзера.

Пользователь решил продолжить мысль 12 Ноября 2010, 20:15:17:
у юзеров нет домашних папок, не создаются, юзером не дана файловая система для личных фалов.
ok, тогда можно по расписанию грепать auth.log, выковыривать дату логина и скармливать её команде touch ниже:

[ ! -f /var/local/$USER ] && touch /var/local/$USER

прочтите пожалуйста мой ответ выше про $USER , а грепать крон, при каждом логине, мне кажется это ресурсоемко.

Пользователь решил продолжить мысль 12 Ноября 2010, 20:22:23:
как же мне вообще обозначить какому юзеру когда удалятся, удобно бы это при useradd сразу и отределять, но таймер должен срабатывать при первом логине. Ну или вообще при логине и написать - если уже существует, то exit, думаю это аналог первого логина.

Пользователь решил продолжить мысль 12 Ноября 2010, 20:25:02:
Цитировать
Так команда touch создаст файл.
я пробывал еще тогда, до того как Вам писать, ничего не создала.

Цитировать
Если юзерам не дана файловая система, можно эту команду вписать в /etc/profile
всеже этот файл срабатывает, е в него и планирую скрипт бросать.

Лучше даже c проверкой
[ ! -f /var/local/$USER ] && touch /var/local/$USER
Цитировать
Для удаления юзеров надо создать одно задание в кроне, с той командой find.
И она будет удалять всех юзеров, которые логинились три дня назад и раньше.
тут есть одна проблемка, например откуда крону знать какого юзера через сколько удалить.(не руками же мне срок каждого юзера считать и прописывать)
тоесть грубо говоря нужен таймер который бы начинал срабатывать для $USER при входе в систему, потому что у каждого юзера свой срок.
чтоб таймер тикал, даже если юзер выйдет, через дня три удалял юзера.

Пользователь решил продолжить мысль 12 Ноября 2010, 20:15:17:
у юзеров нет домашних папок, не создаются, юзером не дана файловая система для личных фалов.
ok, тогда можно по расписанию грепать auth.log, выковыривать дату логина и скармливать её команде touch ниже:

[ ! -f /var/local/$USER ] && touch /var/local/$USER

прочтите пожалуйста мой ответ выше про $USER , а грепать auth, при каждом логине, мне кажется это ресурсоемко.

Пользователь решил продолжить мысль 12 Ноября 2010, 20:22:23:
как же мне вообще обозначить какому юзеру когда удалятся, удобно бы это при useradd сразу и отределять, но таймер должен срабатывать при первом логине. Ну или вообще при логине и написать - если уже существует, то exit, думаю это аналог первого логина.
[/quote]

Пользователь решил продолжить мысль 12 Ноября 2010, 20:31:07:
Если нужно чтоб что-то выполнилось один раз, можно воспользоваться at, что-то вроде:
at now+3дня
точный синтаксис не помню.

в мане не увидил даже близко такого синтаксиса или не понял, если найдете - отменя спасибо, это то что надо мне.

нашел, пробую.

Пользователь решил продолжить мысль 12 Ноября 2010, 21:57:22:
Если добавить скрипт 123.sh в автозагрузку, то все хорошо, но...
at -f 123.sh now + 30 minutes

я планировал при логине юзера проверять сеществует ли для него задание, если нет добавлять. А не могу этого сделать т.к. at присваивает имя для задания с произвольными цифрами в имени задания.

как быть? мне же не надо при каждом логине добавлять по заданию...

Пользователь решил продолжить мысль 13 Ноября 2010, 01:15:13:
подскажите если кто знает как или скриптик может у кого есть,
как можно кикнуть залогиненого юзера? автоматом!

tty грепить не предлагать, развечто скриптиком поделитесь, или демон какой-нить есть.

Пользователь решил продолжить мысль 13 Ноября 2010, 01:41:29:
и второе не понимаю, я добавил скрипт в /etc/profile и естественно он запускается от имени юзера, я правельно понимаю?
а там такие действия что просят права рута, как быть?

Пользователь решил продолжить мысль 13 Ноября 2010, 01:49:52:
для кик юзера вот до такого дошел ps aux | grep ${USER} | awk '{print $2 " " $11}' | sort -gr | grep например pager
получаю пиды, а как дальше? чтоб кикнуть их?

Пользователь решил продолжить мысль 13 Ноября 2010, 03:22:05:
все, с киком решил, а как остальное не представляю пока...
« Последнее редактирование: 13 Ноября 2010, 03:22:05 от Averus8 »

Гарри Кашпировский

  • Гость
Re: Первый вход юзера?
« Ответ #22 : 13 Ноября 2010, 04:14:56 »
удалено, бо бред.

PS уж больно сферический конь. Можно поинтересоваться, нахрена это всё?
« Последнее редактирование: 13 Ноября 2010, 04:19:51 от KT315 »

 

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