Sponsored Content
Top Forums Shell Programming and Scripting clean passwd file based on db table (master) Post 302532824 by Banks187 on Wednesday 22nd of June 2011 07:16:42 AM
Old 06-22-2011
clean passwd file based on db table (master)

The purpose of this script is to scan the /etc/passwd file one line at a time comparing the usernames to the usernames found in a database table. I will later locked every account which is not in the database table.

I have export the userlist from the database in a file (/tmp/userlist). It should be faster than a sql check for every user.

The script works ok but my problem is that the script check also all system accounts!
how can disable it that the script didnīt check the system accounts like root,www-data and so on…

Code:
  #!/bin/bash
  #
  PASSWORD_FILE=/etc/passwd
  PASS_LOG=/tmp/cleanup.log
  #
  rm -f $PASS_LOG && touch $PASS_LOG
  #
  #
  #
  Isql –uHIDE –pwhatever –sprod –w 10 <<EOF >> /tmp/userlist
  Set nocount on
  Select name from db_workers where work is null
  Go
  Eof
  #
  for NAME in $(cut -d: -f1 "$PASSWORD_FILE" )
  do
   passwd -S $NAME | grep "PS" >/dev/null
   STATUS=$?
  if [ $STATUS -eq 0  ] ; then
  grep -i "$NAME" /tmp/userlist >/dev/null
  STATUS2=$?
  echo $STATUS2
  if [ $STATUS2 -eq 1 ] ; then
  echo $NAME >> $PASS_LOG
  fi
  fi
  done

 

9 More Discussions You Might Find Interesting

1. BSD

Migrating the master.passwd

I am migrating the passwd file to an new server. What commands do I need to run to make sure the file will work on the new server. (0 Replies)
Discussion started by: rbizzell
0 Replies

2. UNIX for Advanced & Expert Users

Clean File

BeginDate 07/01/06 End: 07/31/06 Cust: A02991 - Burnham 0002000 5,829,773 145.3 0009701 4,043,850 267.3 2005000 286,785.13 100.0 BeginDate 07/01/06 End: 07/31/06 Cust: A01239 - East Track PSE Index A 0009902 317,356.82 890.2 0020021 ... (5 Replies)
Discussion started by: kris01752
5 Replies

3. Shell Programming and Scripting

how to schedule no of jobs based on the value from the oracle table

Hi all, Please help me with the issue im facing. my client has a recquirement that unix script has to schedule the no.of jobs based on the value from the oracle table.for example if the table has a value of 20 the unix script has to schedule 20 jobs.im able to write the script to get the value... (1 Reply)
Discussion started by: srikanths2s
1 Replies

4. UNIX for Advanced & Expert Users

Converting freebsd (5.2.1) master.passwd to Debian shadow

I'm trying to make this work, and it half works. Accounts with password hashes matching the old crypt(3) algorithm work just fine: JUpfW/w6jo6aw But accounts with longer password hashes preceded by $1$, such as the following, do not work: $1$iIcbppdP$HDyjJeVMGgJ.ovLsnjtTR.... (0 Replies)
Discussion started by: davidstvz
0 Replies

5. Emergency UNIX and Linux Support

Global update on a file based on a table

Hi, I 'd like to update the below highlighted values in a sample file based on the following table: 8283879A25918000000000005400000000000065629TTF3 8683884F40273000000000003900000000000047399TTF3 8883884FG0063000000000002600000000000031599TTF3... (7 Replies)
Discussion started by: er_ashu
7 Replies

6. Web Development

MySQL Master-Slave Configuration: Don't Replicate a Row of a Table?

Anyone have a clue about this? I have checked the MySQL documentation and it does not seem possible to exclude a row of a table from replication between Master and Slave. It seems that replication in MySQL can only be managed at the table level, not at the row level. Does anyone know a work... (5 Replies)
Discussion started by: Neo
5 Replies

7. Shell Programming and Scripting

KSH - How to call different scripts from master scripts based on a column in an Oracle table

Dear Members, I have a table REQUESTS in Oracle which has an attribute REQUEST_ACTION. The entries in REQUEST_ACTION are like, ME, MD, ND, NE etc. I would like to create a script which will will call other scripts based on the request action. Can we directly read from the REQUEST_ACTION... (2 Replies)
Discussion started by: Yoodit
2 Replies

8. Shell Programming and Scripting

Create table based on matched patterns

hi, i need help to create a table from an input file like this:- DB|QZX3 140 165 RT_2 VgGIGvGVR DB|QZX3 155 182 UT_1 rlgslqqLaIvlGiFT DB|QZX3 345 362 RT_1 GRKpllligS DB|ZXK6 174 199 RT_2 IstvtvptYlgEiatvkaR DB|ZXK6 189 216 UT_1 algtiyqLfLviGiLF DB|AZ264 15 17... (7 Replies)
Discussion started by: redse171
7 Replies

9. UNIX Desktop Questions & Answers

How can I replicate master master and master master MySQL databse replication and HA?

I have an application desigend in PHP and MySQl running on apache web server that I is running on a Amazon EC2 server Centos. I want to implement the master-master and master slave replication and high availability disaster recovery on this application database. For this I have created two... (0 Replies)
Discussion started by: Palak Sharma
0 Replies
USERLIST(8)						      Finger-type Userlisting						       USERLIST(8)

NAME
userlist - Userlisting of who's on your system. SYNOPSIS
userlist DESCRIPTION
This program simply gives you a listing of who is connected to your system. It is used primarily in the sorted listing of cfingerd, which utilitizes the same method of display for a more uniform output between systems. (It also made more sense to do it this way instead of having jumbled up display listings in sorted finger displays. Besides, it made more sense to do this than use finger. :) This program functions with the same types of things in mind that cfingerd does. If the user has a .nofinger file, their username will not be displayed in the userlisting. Example output is shown as: Username Real Name Idletime TTY Remote console username I'm real ... 9d 23:59 0 (remote.site.com) where it would display the user's login name, the user's real name, their idle time given in the format "dd hh:mm", their TTY, and their remote location (or where they're telnetting from). If the username is over 8 characters, the program will not search for their information in the passwd file, since it may be too long. Besides, it checks getpwnam, anyway. :) OPTIONS
-c Give standard CFINGERD (custom) output. -n List only people idle less than one day. ADDITIONAL
Although userlist is not required to run as suid root, it is a good idea. The reason is it checks each users' directory for a .nofinger file. If indeed that user has a .nofinger file in his/her directory, that user will not be shown in the userlisting. If you change the program to run as nobody.nobody, you are free to do so. But you will also show the users if they are online, regardless of whether or not they have a ".nofinger" file (as long as their directory is NOT world-readable.) CONTACTING
If you like this program, have any suggestions on how it could be modified, or have bug reports, please write to: khollis@bitgate.com. Your continued Public Domain support is appreciated! Thanks. SEE ALSO
cfingerd.conf(5), cfingerd(8), finger(1). cfingerd 1.4.2 29 August 1999 USERLIST(8)
All times are GMT -4. The time now is 07:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy