LINUX.ORG.RU
ФорумAdmin

Исключение «двойного логина» юзера в pppd


0

0

Господа!
Необходимо не допускать одновременную работу нескольких пользователей по одному и тому же логину в системе.

Реализовать сие наверное правильнее используя /etc/ppp/auth-up, в котором допустим такой скрипт:


$con = `/usr/bin/w | /usr/bin/grep $user`;
@row_con = split(' ', $con);
$control = $row_con[0];
chomp($control);

if ($user eq $control) {
$kill = `/bin/kill -9 $pid`;
exit 1;
}


В переменную $user ранее закладывается логин юзера, который заходит в
систему и после сравнивается с результатом выполнения "w | grep $user" и если оба значения равны, то есть юзер с таким логином уже работает в системе на данный момент, то второго уже не пускает.

Но проблема в том, что если даже такого юзера нет в системе, то есть это первый логин пользователя с этим именем, его все равно не пускет из-за того, что в систему на "w" уже успевает попасть логин входящего пользователя, то есть получается что ЛОВИШЬ_КАК_БЫ_САМ_СЕБЯ.. :(

Как можно добиться желаемого, кто поделится примером?

FreeBSD 4.x, pppd 2.3.5


Можешь grep указать ключи wc (grep -wc $user), тогда получишь кол-во, если 1 то все "хорошо", а если больше то killl

RSI
()

Спасибо, действительно все довольно просто, я сделал таким образом:


$con = `/usr/bin/w | /usr/bin/awk '{print $1;}' | /usr/bin/grep -w $user | /usr/bin/wc -l`;

if ($con > "1") {

$kill = `/bin/kill -9 $pid`;

exit 1;

}

mrrc
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.