Mehrere User via deluser löschen?

fragger1991

New Member
Hallo,

kann man via Console bzw. Bash Script mehrere User nach einen bestimmten Schema löschen?

Ich habe mehrere GameServer je Maschine, jeder GameServer hat eine Gruppe z.B. server_1, server_1 sind nun die Nutzer user1@server_1, user2@server_1 etc. zugewiesen, bei einem 2ten Server dann natürlich server_2 etc. pp. nun wollte ich via Bash Script, beim entfernen des Hauptnutzers auch alle Nutzer die dazugehören löschen.

Like server_[0-9]* oder server_% halt irgendwie so das er dann auch sämtliche User entfernt. Das Problem ist, das ich natürlich nicht weiß welche User alle Existieren.

Danke!
 
man lid

(Debian Paket od-utils)

Alternativ:
Code:
#!/usr/bin/php5
<?php
if(posix_getuid() != 0) trigger_error("You must be root",E_USER_ERROR);

//Check group
if(!isset($argv[1]) || empty($argv[1])) trigger_error("Usage: ".$argv[0]." (GROUPNAME)",E_USER_ERROR);
$group = @posix_getgrnam($argv[1]);
if(!$group) trigger_error("Group not found: ".$argv[1],E_USER_ERROR);
//$gid = $group['gid'];
 
$users = @file_get_contents('/etc/passwd');
if(!$users) trigger_error("/etc/passwd unreadable",E_USER_ERROR);
$users = explode("\n",$users);

//Scan group list
$userlist = array();
foreach($users as $userline) {
   $linedata = explode(":",$userline);
   if($group['gid'] == $linedata[3]) $userlist[$linedata[2]] = trim($linedata[0]);
}

//Debug
var_dump($userlist);
Script ist ungetestet und fast ausschliesslich aus dem Kopf geschrieben. Bitte melden ob es funktioniert oder nicht ;)
 
Last edited by a moderator:
Code:
#!/bin/bash
GROUP='deine_gruppe'
USERS=$(getent group $GROUP|cut -f4 -d:)

OLD_IFS=$IFS
IFS=' ,'

for i in $USERS
do
  userdel $i
done

groupdel $GROUP

IFS=$OLD_IFS
 
Hatte ganz vergessen zu erwähnen das ich den FTP Server meinte.

Ein "Physikalischer User" auf der Maschine, welcher mir als FTP User für die Virtuellen User dient. Habe es aber nun etwas anderster gemacht, lasse nun die Daten doch wieder via API Löschen und nicht direkt im Backend, das ganze sieht dann so aus:

PHP:
$ergebnis = mysql_query("SELECT * FROM `ftpuser` WHERE `uID` = '$uID");
				while($ds = mysql_fetch_assoc($ergebnis)) {

					ssh2('127.0.0.1','12345','server','123','delete.sh server server_1 gs','3','25');
					mysql_query("DELETE FROM `ftpuser` WHERE `sID` = '".$ds[sID]."'");

				}

Trotzdem, vielen Dank euch beiden =)
 
Back
Top