Скрипт shell список юзеров .

Модератор: Модераторы разделов

Drozvd
Сообщения: 11

Скрипт shell список юзеров .

Сообщение Drozvd »

Нужен скрипт который выводит список активных пользователей (которые делали что то в своем каталоге ) пользователей в текстовый файл . Не из под рута команды w и who выводили инфу только об моем пользователе =\

#!/bin/sh

while sleep 1;do w>>file;done
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: Скрипт shell список юзеров .

Сообщение nesk »

Drozvd писал(а):
24.04.2009 13:30
Нужен скрипт который выводит список активных пользователей (которые делали что то в своем каталоге )


Не понятно.
Хотите получить список пользователей, которые создавали, меняли или просматривали файлы в свой домашней директории за какой интервал времени?
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Drozvd
Сообщения: 11

Re: Скрипт shell список юзеров .

Сообщение Drozvd »

Мне нужен первый скрипт просто список пользователей которые существует и второй активные пользователи которые входили в систему и создавали, меняли или просматривали файлы . И нужна куча матчасти по этому делу для РГР , где читал факи информации очень мало , хотя бы комменты к коду . Инфу про шелл , группу пользователей и т.д .
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: Скрипт shell список юзеров .

Сообщение nesk »

Drozvd писал(а):
24.04.2009 14:02
Мне нужен первый скрипт просто список пользователей которые существует и второй активные пользователи которые входили в систему и создавали, меняли или просматривали файлы .


список все пользователей которые есть в системе
cat /etc/passwd | cut -f1 -d:
или
getent passwd | cut -f1 -d:

кто входил в систему за последнее время
last
в момент входа, совершенно точно идет просмотр некоторых файлов в домашнем каталоге.

если надо искать пользователей которые создавали или меняли файлы, то тут надо использовать команду find и иметь права просматривать содержимое домашних каталогов пользователей. Или включить аудит.

Drozvd писал(а):
24.04.2009 14:02
И нужна куча матчасти по этому делу для РГР , где читал факи информации очень мало , хотя бы комменты к коду . Инфу про шелл , группу пользователей и т.д .

что такое РГР?
"Инфу про шелл" можно почитать тут http://www.opennet.ru/docs/RUS/bash_scripting_guide/
а для общего развития вот http://www.intuit.ru/catalog/os/unix/
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Drozvd
Сообщения: 11

Re: Скрипт shell список юзеров .

Сообщение Drozvd »

РГР- расчетно графическая работа .

echo `date` >> log.txt
cut -d: -f1 /etc/passwd >> log.txt

Как мне выбрать активных пользователей ? а тех кто не входили удалить из лога ?
Спасибо сказали:
pcodr
Сообщения: 283
ОС: Debian

Re: Скрипт shell список юзеров .

Сообщение pcodr »

Ну как то так:

Код: Выделить всё

for i in `cut -d: -f1 /etc/passwd`
do
    [ "`last -1 $i | head -n 1`" ] && echo "$i" >> log.txt
done


З.Ы. У нас РГЗ называется а не РГР :)
remote system type is unix
Спасибо сказали:
Drozvd
Сообщения: 11

Re: Скрипт shell список юзеров .

Сообщение Drozvd »

Как написать то же самое на Си ?
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: Скрипт shell список юзеров .

Сообщение nesk »

команда who берет информацию из файла /var/run/utmp
а команда last из /var/log/wtmp
(а lastb из /var/log/btmp)
К сожалению эти файлы бинарные. К счастью есть библиотека (и библиотечные функции) для работы с этим файлом. К сожалению я не помню их названий. К счастью Вы можете глянуть исходные коды команд who last и lastb.

Удачи.
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Drozvd
Сообщения: 11

Re: Скрипт shell список юзеров .

Сообщение Drozvd »

cut -d: -f1 /etc/passwd как это через функцию fopen открыть ?
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: Скрипт shell список юзеров .

Сообщение nesk »

Drozvd писал(а):
05.05.2009 18:58
cut -d: -f1 /etc/passwd как это через функцию fopen открыть ?


file1=fopen ("/etc/passwd", "r");
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

Re: Скрипт shell список юзеров .

Сообщение nesk »

Drozvd писал(а):
05.05.2009 18:58
cut -d: -f1 /etc/passwd как это через функцию fopen открыть ?


Но еще веселее сделать не fopen, а popen.
Вот так: file1=popen ("cut -d: -f1 /etc/passwd", "r");
Конечно не очень эффективно с точки зрения использования системных ресурсов, зато не надо самостоятельно парсить /etc/passwd.

Могу так же посоветовать глянуть на функции : endpwent, getpwent, getpwnam, getpwnam_r, getpwuid, getpwuid_r
Потому, что работать с файлом /etc/passwd на прямую, в наше время может быть уже не актуальным.
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Drozvd
Сообщения: 11

Re: Скрипт shell список юзеров .

Сообщение Drozvd »

Камрады хэлп это не то , нужен список активных юзеров что-то делающих в своём домашнем каталоге ( /home/ ) , есть команда ls -al от куда она инфу берет , то есть где находиться лог ? Нужно на Си прогу написать , скрипт не катит .
Спасибо сказали: