The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > UNIX for Advanced & Expert Gebruikers
.
google unix.com



UNIX for Advanced & Expert Gebruikers Expert-to-Expert. Hier geavanceerde UNIX-, UNIX-commando's, Linux, Operating Systems, System Administration, programmering, Shell, Shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Is Active Directory boven Linux authenticatie opties? - Zoeken Enterprise Linux iBot UNIX en Linux RSS Nieuws 0 11-01-2007 02:00
Is Active Directory boven Linux authenticatie opties? - Zoeken Enterprise Linux iBot UNIX en Linux RSS Nieuws 0 10-29-2007 06:20
noodzaak script voor vergrendeld en ongebruikte gebruikersaccounts in / export / home directory krishna176 SUN Solaris 1 03-25-2007 03:45 PM
lijst van werkzame en vergrendeld OS rekeningen Luft UNIX voor Dummies Questions & Answers 4 11-03-2005 12:33
Gesloten van Mandrake 9.1 gebruikersaccount alarmcall Linux 5 06-26-2004 02:38 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-26-2004
GAMO GAMO is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2004
Krabbels: 1
Question How to get gebruiker status (actief, vergrendeld, gepensioneerden, enz.) verslagen van Sun, HP, OSF en Linux?

We hebben behoefte aan rapporten over de status van de gebruikers op diverse Unix-smaken te creëren.
We zouden graag een overzicht krijgen van het aantal verstreken, geblokkeerd, gehandicapten, actief, gepensioneerde en / of actieve / ontgrendeld worden op elk systeem, samen met de totale boekhouding. We begrijpen dat elke methode verschillend zouden zijn afhankelijk van het OS, beveiligingsinstellingen, NOS vs Lokaal en boekhoudkundige methoden. Maar zal graag willen weten hoe anderen doen dit? Zou bijvoorbeeld met behulp van OSF / Digital Unix, een manier zijn om de TCB en edauth hulpprogramma gebruiken om een aantal van deze gegevens op een vertrouwde systeem extract. Zijn er vergelijkbare methodes voor HP, Sun, en / of Linux?
  #2 (permalink)  
Old 01-28-2004
tikual tikual is offline
Geregistreerde gebruiker
  
 

Join Date: november 2003
Locatie: HK
Posts: 53
Mijn eerste script is geschreven in een jaar geleden en dit script mij helpen om mijn account status te controleren in een groot aantal externe systemen eenvoudig. Dat was mijn eerste script. Niet goed en alleen voor uw referentie.

Vereiste:

1.
Krijg een krachtig script als volgt link. Het is een beroemde script in het HP forum - caljd.sh

In mijn Linux machine, moet ik tot wijziging van de eerste lijn van #! / Usr / bin / sh naar #! / Bin / ksh

http://forums1.itrc.hp.com/service/f...13969&ext\u003d.txt

2.
File Host List
In mijn env, ik heb twee bestanden. Heet hp.list en een ander is sun.list.

Lijst formaat:
host1
host2
host3
.
.

Een gastheer in een lijn

3.
Mijn stom script. Dit script wordt uitgevoerd in de Linux-machine, maar geen controle op. Omdat in mijn env, Sun-server en HP-server zijn het meest belangrijk.

Over het gebruik: zie mijn script introductie.

Code:
#!/bin/ksh

##### Introduction #####
##
## This script is used for checking user login expiry date
## Get the password control files from remote according a host list

##### Requirement #####
##
## Root user can run this script only
## The following files should be existing in same directory
##
## chkpass.sh   : Main Script      - FTP file from remote hosts
##                                   According different platform then has
##                                   different formula.
##
## caljd.sh     : Assistant Script - Source from public
##                                   For calculating and converting date format.
##
## sun.list     : host list of SUN platform that you wanted for checking,
##                one row contains one hostname only
##
## hp.list      : host list of HP platform that you wanted for checking,
##                one row contains one hostname only

##### Usage #####
##
## Step 1) chkpass.sh [username]      - Start to check the specified user
##
## Step 2) Login name & password      - For ftp file transferring.
##                                      (Root Privilege Account only)
## Result will be shown on screen and will be re-directed to a log also
##

trap 'print "Cancel the checking\n"  ; exit 1' 2 3 9 15

USERNAME=$1

##### Check option, if no option then the default is current user #####
if [[ $# != 1 ]];
then
print "Check who?"
print "Usage: chkpass.sh [username]\n"
exit 1
else
CHKWHO=$USERNAME
fi

WORKPATH="$PWD"
SUNLIST="$WORKPATH/sun.list"
HPLIST="$WORKPATH/hp.list"
CHKLOG="$WORKPATH/${USERNAME}.result.log"

GET_UID=`id | awk -F"(" '{print$1}'`
UID=${GET_UID#*=}

if [[ ! $UID -eq 0 ]];
then
print
print "Pls. note that you need to provide"
print "root login and password for the script"
print
fi

if [[ -a $CHKLOG ]];
then
mv $CHKLOG ${CHKLOG}.old
fi

function code {
        if grep -q -i "Not Connected" $FTPLOG;
        then
        print "\033[30;43m ${HOST}: \033[0m FTP connection failed\n" | tee -a $CHKLOG
        elif grep -q -i "Login incorrect" $FTPLOG;
        then
        print "\033[30;43m ${HOST}: \033[0m Connection Failed.  Incorrect login or password\n" | tee -a $CHKLOG
        elif grep -q -i "No such file" $FTPLOG;
        then
        print "\033[30;43m ${HOST}: \033[0m Checking failed and it caused by one of following situations." | tee -a $CHKLOG
        print "\033[30;43m ${HOST}: \033[0m 1. Make sure the existence of $CHKWHO in $HOST." | tee -a $CHKLOG
        print "\033[30;43m ${HOST}: \033[0m 2. It doesn't a trusted system.  No password setting for $CHKWHO.\n" | tee -a $CHKLOG
        fi
}

if [[ ! -a $SUNLIST || ! -a $HPLIST ]];
then
print
print 'File Missing: "sun.list" & "hp.list"'
printf '%s\n%s\n%s\n%s\n\n' '#Example Content' host1 host2 host3
exit 1
fi

cat $SUNLIST $HPLIST > $WORKPATH/all.list
ALL_LIST="$WORKPATH/all.list"

print "Start to collect records from remote hosts"
        read ftp_name?"Enter User Name: "
        stty -echo
        read ftp_pass?"Enter Password: "
        stty echo
        print
        print

for list in `grep -v '#' $ALL_LIST`
do

HOST=$list
USER=$ftp_name
PASS=$ftp_pass


########################
##### SUN PLATFORM #####
########################

  ##### if - 1 #####
  if grep -q $HOST $SUNLIST;
  then
  #This log is used for function "code"
  FTPLOG="$WORKPATH/sunftp.log"
ftp -ivn << EOF > $FTPLOG 2>&1
open $HOST
user $USER $PASS
asc
cd /etc
get shadow
bye
EOF

    ##### if - 2 #####
    if [[ -a $WORKPATH/shadow ]];
    then
    mv $WORKPATH/shadow $WORKPATH/${HOST}.shadow

        ##### if - 3 #####
        if grep -q -w $CHKWHO $WORKPATH/${HOST}.shadow ;
        then
        typeset -i SEC_FR_70S DAY_FR_70S LAST_CHANGE LAST_CHANGE_SEC REMAINS
        SEC_FR_70S=$(date +%s)
        DAY_FR_70S=$((SEC_FR_70S/60/60/24))
        LAST_CHANGE=$(awk -F: '/^'$CHKWHO':/ {print$3}' $WORKPATH/${HOST}.shadow)
        ACC_PERIOD=$(awk -F: '/^'$CHKWHO':/ {print$5}' $WORKPATH/${HOST}.shadow)
        ((EXPIRATION=LAST_CHANGE+ACC_PERIOD))
        ((REMAINS=EXPIRATION-DAY_FR_70S))

                ##### if - 4 #####
                if [[ $LAST_CHANGE = 0 || $ACC_PERIOD = 0 ]] || [[ -z $LAST_CHANGE || -z $ACC_PERIOD ]];
                then
                print "\033[37;42m ${HOST}: \033[0m No expiration date setting for $CHKWHO\n" | tee -a $CHKLOG
                elif [[ $EXPIRATION -lt $DAY_FR_70S ]];
                then
                print "\033[37;41m ${HOST}: \033[0m $CHKWHO already expired\n" | tee -a $CHKLOG
                else
                EXP_JUL=$($WORKPATH/caljd.sh -n $REMAINS)
                EXP_HUM=$($WORKPATH/caljd.sh $EXP_JUL)
                MONTH=${EXP_HUM%% *}
                DAY=$(echo $EXP_HUM | awk '{print$2}')
                YEAR=${EXP_HUM##* }
                print "\033[37;42m ${HOST}: \033[0m $CHKWHO will expire after $REMAINS days" | tee -a $CHKLOG
                printf "%s\t%s/%s/%s\t%s\n\n" "EXPIRATION DATE:" $DAY $MONTH $YEAR "(DD/MM/YYYY)" | tee -a $CHKLOG
                fi
                ##### if - 4 end #####

        else
        print "\033[30;43m ${HOST}: \033[0m $CHKWHO was not found\n" | tee -a $CHKLOG
        fi
        ##### if - 3 end #####

    rm $WORKPATH/${HOST}.shadow
    else
    code
    fi
    ##### if - 2 end #####

  rm $FTPLOG

  else

#######################
##### HP PLATFORM #####
#######################

    PREFIX=$(print $CHKWHO | cut -c 1)
#This log is used for function "code"
    FTPLOG="$WORKPATH/hpftp.log"
ftp -ivn << EOF > $FTPLOG 2>&1
open $HOST
user $USER $PASS
asc
cd /tcb/files/auth/$PREFIX
get $CHKWHO
bye
EOF

    ##### if - 5 #####
    if [[ -a $WORKPATH/$CHKWHO ]];
    then
    mv $WORKPATH/$CHKWHO $WORKPATH/${HOST}.${CHKWHO}
    typeset -i SEC_FR_70S DAY_FR_70S CHG_DATE ACC_DATE  EXPIRATION REMAINS
    SEC_FR_70S=$(date +%s)
    SUC_CHG=$(awk -F"u_succhg#" '/u_succhg/ {print$2}' $WORKPATH/${HOST}.${CHKWHO})
    CHG_DATE=${SUC_CHG%%:*}
    ACC_PERIOD=$(awk -F"u_exp#" '/u_exp/ {print$2}' $WORKPATH/${HOST}.${CHKWHO})
    ACC_DATE=${ACC_PERIOD%%:*\\}
    ((EXPIRATION=CHG_DATE+ACC_DATE))
    ((REMAINS=EXPIRATION-SEC_FR_70S))
    CHG_TO_DAY=$((REMAINS/60/60/24))
        ##### if - 6 #####
        if [[ $CHG_DATE = 0 || $ACC_DATE = 0 ]] || [[ -z $CHG_DATE || -z $ACC_DATE ]] ;
        then
        print "\033[37;42m ${HOST}: \033[0m No expiration date setting for $CHKWHO\n" | tee -a $CHKLOG
        elif [[ $EXPIRATION -lt $SEC_FR_70S ]];
        then
        print "\033[37;41m ${HOST}: \033[0m $CHKWHO already expired\n" | tee -a $CHKLOG
        else
        EXP_JUL=$($WORKPATH/caljd.sh -n $CHG_TO_DAY)
        EXP_HUM=$($WORKPATH/caljd.sh $EXP_JUL)
        MONTH=${EXP_HUM%% *}
        DAY=$(echo $EXP_HUM | awk '{print$2}')
        YEAR=${EXP_HUM##* }
        print "\033[37;42m ${HOST}: \033[0m $CHKWHO will expire after $CHG_TO_DAY" days | tee -a $CHKLOG
        printf "%s\t%s/%s/%s\t%s\n\n" "EXPIRATION DATE:" $DAY $MONTH $YEAR "(DD/MM/YYYY)" | tee -a $CHKLOG
        fi
        ##### if - 6 end #####

    rm $WORKPATH/${HOST}.${CHKWHO}

    else
    code
    fi
    ##### if - 5 end #####

  rm $FTPLOG
  fi
  ##### if - 1 end #####
done
rm $ALL_LIST
print "Checking completed" | tee -a $CHKLOG


Laatst bewerkt door Optimus_P; op 01.28.2004 10:58..
  #3 (permalink)  
Old 01-28-2004
tikual tikual is offline
Geregistreerde gebruiker
  
 

Join Date: november 2003
Locatie: HK
Posts: 53
Mijn eerste script is geschreven in een jaar geleden en dit script mij helpen om mijn account status te controleren in een groot aantal externe systemen eenvoudig. Dat was mijn eerste script. Niet goed en alleen voor uw referentie.

Vereiste:

1.
Krijg een krachtig script als volgt link. Het is een beroemde script in het HP forum - caljd.sh

In mijn Linux machine, moet ik tot wijziging van de eerste lijn van #! / Usr / bin / sh naar #! / Bin / ksh

http://forums1.itrc.hp.com/service/f...13969&ext\u003d.txt

2.
File Host List
In mijn env, ik heb twee bestanden. Heet hp.list en een ander is sun.list.

Lijst formaat:
host1
host2
host3
.
.

Een gastheer in een lijn

3.
Mijn stom script. Dit script wordt uitgevoerd in de Linux-machine, maar geen controle op. Omdat in mijn env, Sun-server en HP-server zijn het meest belangrijk.

Over het gebruik: zie mijn script introductie.

Code:
#!/bin/ksh

##### Introduction #####
##
## This script is used for checking user login expiry date
## Get the password control files from remote according a host list

##### Requirement #####
##
## Root user can run this script only
## The following files should be existing in same directory
##
## chkpass.sh   : Main Script      - FTP file from remote hosts
##                                   According different platform then has
##                                   different formula.
##
## caljd.sh     : Assistant Script - Source from public
##                                   For calculating and converting date format.
##
## sun.list     : host list of SUN platform that you wanted for checking,
##                one row contains one hostname only
##
## hp.list      : host list of HP platform that you wanted for checking,
##                one row contains one hostname only

##### Usage #####
##
## Step 1) chkpass.sh [username]      - Start to check the specified user
##
## Step 2) Login name & password      - For ftp file transferring.
##                                      (Root Privilege Account only)
## Result will be shown on screen and will be re-directed to a log also
##

trap 'print "Cancel the checking\n"  ; exit 1' 2 3 9 15

USERNAME=$1

##### Check option, if no option then the default is current user #####
if [[ $# != 1 ]];
then
print "Check who?"
print "Usage: chkpass.sh [username]\n"
exit 1
else
CHKWHO=$USERNAME
fi

WORKPATH="$PWD"
SUNLIST="$WORKPATH/sun.list"
HPLIST="$WORKPATH/hp.list"
CHKLOG="$WORKPATH/${USERNAME}.result.log"

GET_UID=`id | awk -F"(" '{print$1}'`
UID=${GET_UID#*=}

if [[ ! $UID -eq 0 ]];
then
print
print "Pls. note that you need to provide"
print "root login and password for the script"
print
fi

if [[ -a $CHKLOG ]];
then
mv $CHKLOG ${CHKLOG}.old
fi

function code {
        if grep -q -i "Not Connected" $FTPLOG;
        then
        print "\033[30;43m ${HOST}: \033[0m FTP connection failed\n" | tee -a $CHKLOG
        elif grep -q -i "Login incorrect" $FTPLOG;
        then
        print "\033[30;43m ${HOST}: \033[0m Connection Failed.  Incorrect login or password\n" | tee -a $CHKLOG
        elif grep -q -i "No such file" $FTPLOG;
        then
        print "\033[30;43m ${HOST}: \033[0m Checking failed and it caused by one of following situations." | tee -a $CHKLOG
        print "\033[30;43m ${HOST}: \033[0m 1. Make sure the existence of $CHKWHO in $HOST." | tee -a $CHKLOG
        print "\033[30;43m ${HOST}: \033[0m 2. It doesn't a trusted system.  No password setting for $CHKWHO.\n" | tee -a $CHKLOG
        fi
}

if [[ ! -a $SUNLIST || ! -a $HPLIST ]];
then
print
print 'File Missing: "sun.list" & "hp.list"'
printf '%s\n%s\n%s\n%s\n\n' '#Example Content' host1 host2 host3
exit 1
fi

cat $SUNLIST $HPLIST > $WORKPATH/all.list
ALL_LIST="$WORKPATH/all.list"

print "Start to collect records from remote hosts"
        read ftp_name?"Enter User Name: "
        stty -echo
        read ftp_pass?"Enter Password: "
        stty echo
        print
        print

for list in `grep -v '#' $ALL_LIST`
do

HOST=$list
USER=$ftp_name
PASS=$ftp_pass


########################
##### SUN PLATFORM #####
########################

  ##### if - 1 #####
  if grep -q $HOST $SUNLIST;
  then
  #This log is used for function "code"
  FTPLOG="$WORKPATH/sunftp.log"
ftp -ivn << EOF > $FTPLOG 2>&1
open $HOST
user $USER $PASS
asc
cd /etc
get shadow
bye
EOF

    ##### if - 2 #####
    if [[ -a $WORKPATH/shadow ]];
    then
    mv $WORKPATH/shadow $WORKPATH/${HOST}.shadow

        ##### if - 3 #####
        if grep -q -w $CHKWHO $WORKPATH/${HOST}.shadow ;
        then
        typeset -i SEC_FR_70S DAY_FR_70S LAST_CHANGE LAST_CHANGE_SEC REMAINS
        SEC_FR_70S=$(date +%s)
        DAY_FR_70S=$((SEC_FR_70S/60/60/24))
        LAST_CHANGE=$(awk -F: '/^'$CHKWHO':/ {print$3}' $WORKPATH/${HOST}.shadow)
        ACC_PERIOD=$(awk -F: '/^'$CHKWHO':/ {print$5}' $WORKPATH/${HOST}.shadow)
        ((EXPIRATION=LAST_CHANGE+ACC_PERIOD))
        ((REMAINS=EXPIRATION-DAY_FR_70S))

                ##### if - 4 #####
                if [[ $LAST_CHANGE = 0 || $ACC_PERIOD = 0 ]] || [[ -z $LAST_CHANGE || -z $ACC_PERIOD ]];
                then
                print "\033[37;42m ${HOST}: \033[0m No expiration date setting for $CHKWHO\n" | tee -a $CHKLOG
                elif [[ $EXPIRATION -lt $DAY_FR_70S ]];
                then
                print "\033[37;41m ${HOST}: \033[0m $CHKWHO already expired\n" | tee -a $CHKLOG
                else
                EXP_JUL=$($WORKPATH/caljd.sh -n $REMAINS)
                EXP_HUM=$($WORKPATH/caljd.sh $EXP_JUL)
                MONTH=${EXP_HUM%% *}
                DAY=$(echo $EXP_HUM | awk '{print$2}')
                YEAR=${EXP_HUM##* }
                print "\033[37;42m ${HOST}: \033[0m $CHKWHO will expire after $REMAINS days" | tee -a $CHKLOG
                printf "%s\t%s/%s/%s\t%s\n\n" "EXPIRATION DATE:" $DAY $MONTH $YEAR "(DD/MM/YYYY)" | tee -a $CHKLOG
                fi
                ##### if - 4 end #####

        else
        print "\033[30;43m ${HOST}: \033[0m $CHKWHO was not found\n" | tee -a $CHKLOG
        fi
        ##### if - 3 end #####

    rm $WORKPATH/${HOST}.shadow
    else
    code
    fi
    ##### if - 2 end #####

  rm $FTPLOG

  else

#######################
##### HP PLATFORM #####
#######################

    PREFIX=$(print $CHKWHO | cut -c 1)
#This log is used for function "code"
    FTPLOG="$WORKPATH/hpftp.log"
ftp -ivn << EOF > $FTPLOG 2>&1
open $HOST
user $USER $PASS
asc
cd /tcb/files/auth/$PREFIX
get $CHKWHO
bye
EOF

    ##### if - 5 #####
    if [[ -a $WORKPATH/$CHKWHO ]];
    then
    mv $WORKPATH/$CHKWHO $WORKPATH/${HOST}.${CHKWHO}
    typeset -i SEC_FR_70S DAY_FR_70S CHG_DATE ACC_DATE  EXPIRATION REMAINS
    SEC_FR_70S=$(date +%s)
    SUC_CHG=$(awk -F"u_succhg#" '/u_succhg/ {print$2}' $WORKPATH/${HOST}.${CHKWHO})
    CHG_DATE=${SUC_CHG%%:*}
    ACC_PERIOD=$(awk -F"u_exp#" '/u_exp/ {print$2}' $WORKPATH/${HOST}.${CHKWHO})
    ACC_DATE=${ACC_PERIOD%%:*\\}
    ((EXPIRATION=CHG_DATE+ACC_DATE))
    ((REMAINS=EXPIRATION-SEC_FR_70S))
    CHG_TO_DAY=$((REMAINS/60/60/24))
        ##### if - 6 #####
        if [[ $CHG_DATE = 0 || $ACC_DATE = 0 ]] || [[ -z $CHG_DATE || -z $ACC_DATE ]] ;
        then
        print "\033[37;42m ${HOST}: \033[0m No expiration date setting for $CHKWHO\n" | tee -a $CHKLOG
        elif [[ $EXPIRATION -lt $SEC_FR_70S ]];
        then
        print "\033[37;41m ${HOST}: \033[0m $CHKWHO already expired\n" | tee -a $CHKLOG
        else
        EXP_JUL=$($WORKPATH/caljd.sh -n $CHG_TO_DAY)
        EXP_HUM=$($WORKPATH/caljd.sh $EXP_JUL)
        MONTH=${EXP_HUM%% *}
        DAY=$(echo $EXP_HUM | awk '{print$2}')
        YEAR=${EXP_HUM##* }
        print "\033[37;42m ${HOST}: \033[0m $CHKWHO will expire after $CHG_TO_DAY" days | tee -a $CHKLOG
        printf "%s\t%s/%s/%s\t%s\n\n" "EXPIRATION DATE:" $DAY $MONTH $YEAR "(DD/MM/YYYY)" | tee -a $CHKLOG
        fi
        ##### if - 6 end #####

    rm $WORKPATH/${HOST}.${CHKWHO}

    else
    code
    fi
    ##### if - 5 end #####

  rm $FTPLOG
  fi
  ##### if - 1 end #####
done
rm $ALL_LIST
print "Checking completed" | tee -a $CHKLOG


Laatst bewerkt door Optimus_P; op 01.28.2004 10:58..
  #4 (permalink)  
Old 01-28-2004
Optimus_P Optimus_P is offline Forum Advisor  
Flim flam flamma jamma
  
 

Join Date: mei 2001
Locatie: Chicago IL, USA
Berichten: 1006
gebruik van code tags aub. \ [code \]
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 07:46 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0