Zentyal Forum, Linux Small Business Server

International => Magyar => Topic started by: levideo on November 20, 2012, 01:14:54 pm

Title: user törlése scriptből ??
Post by: levideo on November 20, 2012, 01:14:54 pm
Találtam olyan scriptet, amivel usereket lehet fájlból kiolvasva létrehozni.
Nekem viszont olyan kéne amivel törölni tudnék usert.
Hiába próbáltam így :

#!/usr/bin/perl


use strict;
use warnings;

use EBox;
use EBox::UsersAndGroups::User;
use EBox::Global;

EBox::init();
my @users;
open (my $USERS, 'users2.txt');

while (my $line = <$USERS>) {
    chomp ($line);
    my $user;
    my ($givenname, $surname, $p, $desc, $nev, $m, $username ) = split(';', $line);
    my $email=$username.'@matrametal.hu';
    $user->{'user'} = $username;
    $user->{'givenname'} = $givenname;
    $user->{'surname'} = $surname;
    $user->{'password'} = $p;
    $user->{'mail'} = $email;
    $user->{'comment'} = $desc;
#    print $username.", ".$surname." ; ";
    push (@users, $user);
....
}
close ($USERS);

foreach my $user (@users) {
    my $h=$user->{'user'};
    EBox::UsersAndGroups::User->deleteObject('uid=$h,ou=Users,dc=matrametal,dc=hu');
}

1;


Nem megy...
Valakinek ötlete van ???

Title: Re: user törlése scriptből ??
Post by: levideo on November 20, 2012, 01:24:23 pm
ez a hiba üzenet :
Can't use string ("EBox::UsersAndGroups::User") as a HASH ref while "strict refs" in use at /usr/share/perl5/EBox/UsersAndGroups/User.pm line 81.
Title: Re: user törlése scriptből ??
Post by: Tibor Balázs on November 23, 2012, 09:56:34 pm
ez a hiba üzenet :
Can't use string ("EBox::UsersAndGroups::User") as a HASH ref while "strict refs" in use at /usr/share/perl5/EBox/UsersAndGroups/User.pm line 81.

A group létrehozó topikban is azt javasolták, hogy ne referenciát adjak át. Itt is ez lehet a gond.
De bennem felmerült még más is: vannak bizonyos helyek ahol azt mondjuk, hogy felhasználót sose törlünk.
Mi ennek az oka? Az, hogy az user által elkövetett tevékenységek nyomozására akár még évek múlva is szükség lehet.
Bár ha nincs Informatikai Biztonsági Szabályzat az adott helyen akkor ezt nem kell annyira erőltetni.
Ha mégis kell nyomozni akkor majd lesz rá szabály is, gondolom!  :)
Title: Re: user törlése scriptből ??
Post by: levideo on November 24, 2012, 08:30:38 am
Gondolom ebben a sorban van a gond:
EBox::UsersAndGroups::User->deleteObject('uid=$h,ou=Users,dc=matrametal,dc=hu');

Helyette mit kéne ide írnom ??

A group létrehozó topikban is azt javasolták

Erről a topikról küldenél egy linket !!
Title: Re: user törlése scriptből ??
Post by: Tibor Balázs on November 24, 2012, 08:36:52 am
Itt (http://forum.zentyal.org/index.php/topic,13139.0.html (http://forum.zentyal.org/index.php/topic,13139.0.html)) a fórumon van erre példa
Title: Re: user törlése scriptből ??
Post by: levideo on November 24, 2012, 08:48:15 am
Akkor valami ilyesmi kéne ?

#!/usr/bin/perl

use strict;
use warnings;

use EBox;
use EBox::UsersAndGroups::User;

EBox::init();

open (my $U, 'users.txt');

while (my $line = <$U>) {
  chomp ($line);
  my ($uname, $system) = split(',', $line);
  EBox::UsersAndGroups::User->deleteObject($uname);
  print "A user totolve: $uname\n";
}
close ($U);

1;


A users.txt tartalma meg :
user1,0
user2,0
user3,0


Kipróbálom a hétvégén...
Title: Re: user törlése scriptből ??
Post by: levideo on November 24, 2012, 09:02:19 am
ez a hiba üzenet :
Can't use string ("EBox::UsersAndGroups::User") as a HASH ref while "strict refs" in use at /usr/share/perl5/EBox/UsersAndGroups/User.pm line 81.

A group létrehozó topikban is azt javasolták, hogy ne referenciát adjak át. Itt is ez lehet a gond.
De bennem felmerült még más is: vannak bizonyos helyek ahol azt mondjuk, hogy felhasználót sose törlünk.
Mi ennek az oka? Az, hogy az user által elkövetett tevékenységek nyomozására akár még évek múlva is szükség lehet.
Bár ha nincs Informatikai Biztonsági Szabályzat az adott helyen akkor ezt nem kell annyira erőltetni.
Ha mégis kell nyomozni akkor majd lesz rá szabály is, gondolom!  :)

Igazából csak tesztelés céljából kell a törlő script.
Scripttel létrehoztam egy csomó teszt usert, de körülményesnek tartom egyesével törölgetni őket a webUI-n.
Egyébként meg éles helyzetben is jól jöhet, ha nincs webes elérhetőség csak SSH.

Viszont tapasztaltam még egy érdekes hibát a egy user törlésekor : Nem törli a home könyvtárát.
Ez gáz.
Mert ha a cégtől elmegy egy dolgozó, a főnököm közli, hogy töröljem a rendszerből.
Én törlöm, de a home könyvtára, és benne az összes fájlja, levele ugye megmarad.
Ha a munkatárs fél év múlva visszajön a céghez, újra létre kéne hoznom a Zentyalban.
Viszont nem engedi a WEBUI-n , mert van home könyvtára. Patt helyzet !!
Szerintetek miért van ez így, és mi lehet a korrekt megoldás ??
Title: Re: user törlése scriptből ??
Post by: levideo on November 26, 2012, 08:07:27 am
ez a hiba üzenet :
Can't use string ("EBox::UsersAndGroups::User") as a HASH ref while "strict refs" in use at /usr/share/perl5/EBox/UsersAndGroups/User.pm line 81.

A group létrehozó topikban is azt javasolták, hogy ne referenciát adjak át. Itt is ez lehet a gond.

Nos így sem jó.
A hibaüzenet ugyanaz ....

Title: Re: user törlése scriptből ??
Post by: levideo on December 23, 2012, 12:35:35 pm
nincs valakinek egy működő scriptje ?
Title: Re: user törlése scriptből ??
Post by: papp lászló on December 26, 2012, 09:36:34 am
Szia!
Nos scripem nincs.
Viszont én hasonló helyzetben nem törlöm a felhasználót.  logikus következtetésnek tartom a felhasználó megtartását.
Én 1. csak a jelszavát írnám át a usernek. Így ha visszajön újra aktívvá tehető a fiókja.
2. ha visszajön más névvel venném fel újra.
Persze ez csak az én megoldásom lenne

további szép ünnepeket

Title: Re: user törlése scriptből ??
Post by: Tibor Balázs on December 26, 2012, 03:54:29 pm
Ha tesztelésről van szó akkor jól jönne egy script az userek törlésére.

Éles környezetben én sose törölnék usereket! Miért?
Mi van ha visszamenőleg 5 évre nyomozni kell egy user tevékenysége után!?

c
Title: Re: user törlése scriptből ??
Post by: levideo on December 27, 2012, 09:46:36 am
Papp László 1. megoldása logikusnak tűnik. Én is ezt alkalmazom éles szerveren.
Csak teszt, gyakorlás miatt lett volna jó.  Egyébként, miért nem lehet megoldani, hiszen a WEBGUI-n működik  egy felhasználóval.
Akkor miért nem lehet ezt megcsinálni PERL scripttel,  konzolról ??
Igazán közzé tehetnék a megoldást a ZENTYAL -készítői ...
Tudom, benne van a scriptekben, csak én (meg más sem) jön rá, hogy hogyan kell ...

Title: Re: user törlése scriptből ??
Post by: levideo on January 30, 2013, 10:12:26 am
Továbbra sincs megoldás rá ??
Title: Re: user törlése scriptből ??
Post by: levideo on February 26, 2014, 10:25:23 am
A kérdés még mindig adott : Hogyan lehet törölni usert perl scriptből ???
Title: Re: user törlése scriptből ??
Post by: toby0501 on March 18, 2014, 01:01:48 pm
Nem tudom, sikerült-e megoldani, de ha nem, akkor próbáld meg ezt:

Code: [Select]
#!/usr/bin/perl

use strict;
use warnings;

use EBox;
use EBox::Global;

EBox::init();
my $usersModule = EBox::Global->modInstance('users');

my @users = ();
open(my $USERS,"users") or die "Error opening 'users' file: $!";
while(my $line = <$USERS>) {
   chomp ($line);
   my ($username,$givenname,$surname,$password) = split(',',$line);
   push(@users,$username);
}
close($USERS);

foreach my $username (@users) {
   $usersModule->delUser($username);
}

1;
Title: Re: user törlése scriptből ??
Post by: levideo on July 09, 2014, 06:22:51 am
A scriptet futtatva ezt kapom :
Can't locate object method "delUser" via package "EBox::Users" at ./user_del2.pl line 22.