Skip to content

Instantly share code, notes, and snippets.

@rmulligan
Last active August 29, 2015 13:57
Show Gist options
  • Save rmulligan/9592372 to your computer and use it in GitHub Desktop.
Save rmulligan/9592372 to your computer and use it in GitHub Desktop.
Example for Sal
require "./student"
require "set"
counter = 0
students = Set.new # Sets only have unique values, so you don't have to worry about duplicate students
File.open("passwd", "r") do |infile| # Change this file to /etc/passwd or wherever your file is
while (line = infile.gets)
if line.match(/\/home\/students/) # Ignore lines that aren't students
student_attrs = line.split(":") # Create array of attributes split on the colon
student = Student.new
# Populate student object
student.user_name = student_attrs[0]
student.shell = student_attrs[6][0..-2] # Trim off the new line character
student.uid = counter
student.home_directory = student_attrs[5]
student.gid = "#{student_attrs[1]}#{student_attrs[2]} #{student_attrs[3]} #{student_attrs[4]}"
students << student # Add student to set
counter += 1 # Increment UID
end
end
students.each do |student|# Here are all of your students
# Do stuff with student
end
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
bind:x:101:105::/var/cache/bind:/bin/false
fetchmail:x:102:65534::/var/lib/fetchmail:/bin/false
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
klog:x:104:107::/home/klog:/bin/false
syslog:x:105:108::/home/syslog:/bin/false
smmta:x:106:109:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
smmsp:x:107:110:Mail Submission Program,,,:/var/lib/sendmail:/bin/false
mysql:x:108:112:MySQL Server,,,:/nonexistent:/bin/false
putnamd:x:1000:100:Doug Putnam:/home/putnamd:/bin/bash
msink:x:1001:27:Mike Sinkewitsch:/home/msink:/bin/sh
useradminaccount:x:1002:1000:useradminaccount:/home/useradminaccount:/bin/sh
isaacs:x:1003:27::/home/isaacs:/bin/bash
isaacssu:x:1004:27:Stan Isaacs:/home/isaacssu:/bin/bash
teststudent:x:1007:1005:Test Q. Student:/home/students/teststudent:/bin/bash
student1:x:1008:1005:Temporary account for new students:/home/students/student1:/bin/bash
aadhikar:x:1009:1005:Ashish Adhikari:/home/students/aadhikar:/bin/bash
salonzol:x:1010:1005:Steven D. Alonzo Lerma:/home/students/salonzol:/bin/bash
jande202:x:1011:1005:Jett J. Anderson:/home/students/jande202:/bin/bash
oramos3:x:1012:1005:Omar R. Barberini:/home/students/oramos3:/bin/bash
jacobbarker:x:1013:1005:Jacob P. Barker:/home/students/jacobbarker:/bin/bash
sbarre11:x:1014:1005:Steven J. Barretta:/home/students/sbarre11:/bin/bash
ebenson8:x:1015:1005:Eric P. Benson:/home/students/ebenson8:/bin/bash
mbhise:x:1016:1005:Mayuri Bhise:/home/students/mbhise:/bin/bash
romancendeja:x:1017:1005:Roman J. Cendejas:/home/students/romancendeja:/bin/bash
tracichatfie:x:1018:1005:Traci R. Chatfield:/home/students/tracichatfie:/bin/bash
dchin5:x:1019:1005:David M. Chin:/home/students/dchin5:/bin/bash
acochra5:x:1020:1005:Alan K. Cochran:/home/students/acochra5:/bin/bash
edossant:x:1021:1005:Eduardo K. Dos Santos:/home/students/edossant:/bin/bash
rahatdubey:x:1022:1005:Rahatdeep Dubey:/home/students/rahatdubey:/bin/bash
leichma1:x:1023:1005:Laura L. Eichman:/home/students/leichma1:/bin/bash
meldaouk:x:1024:1005:Mohamad W. El Daouk:/home/students/meldaouk:/bin/bash
rfelix5:x:1025:1005:Rosally M. Felix:/home/students/rfelix5:/bin/bash
rhahn7:x:1026:1005:Richard Hahn:/home/students/rhahn7:/bin/bash
shanha10:x:1027:1005:Salim Hanhan:/home/students/shanha10:/bin/bash
hhosgur:x:1028:1005:Hasan Hosgur:/home/students/hhosgur:/bin/bash
daryljackson:x:1029:1005:Daryl R. Jackson:/home/students/daryljackson:/bin/bash
sjewell1:x:1030:1005:Simeon F. Jewell:/home/students/sjewell1:/bin/bash
bjones91:x:1031:1005:Brandon L. Jones:/home/students/bjones91:/bin/bash
pkutula1:x:1032:1005:Panayiotis I. Kutulas:/home/students/pkutula1:/bin/bash
clang8:x:1033:1005:Candace M. Lang:/home/students/clang8:/bin/bash
bleaver1:x:1034:1005:Brett Leaver:/home/students/bleaver1:/bin/bash
yli118:x:1035:1005:Yi Li:/home/students/yli118:/bin/bash
jlopez4:x:1036:1005:Jaime A. Lopez:/home/students/jlopez4:/bin/bash
daniema:x:1037:1005:Daniel Ma:/home/students/daniema:/bin/bash
smart173:x:1038:1005:Sabrina E. Martinez:/home/students/smart173:/bin/bash
amenshov:x:1039:1005:Andrey Menshov:/home/students/amenshov:/bin/bash
mmiddlem:x:1040:1005:Melody A. Middlemist:/home/students/mmiddlem:/bin/bash
mnemkovi:x:1041:1005:Maxim Nemkovich:/home/students/mnemkovi:/bin/bash
nnguye80:x:1042:1005:Ngoc Thach M. Nguyen:/home/students/nnguye80:/bin/bash
yulianovak:x:1043:1005:Yulia V. Novak:/home/students/yulianovak:/bin/bash
hou1:x:1044:1005:Hang Wei Ou:/home/students/hou1:/bin/bash
krangelo:x:1045:1005:Kristina C. Rangelova:/home/students/krangelo:/bin/bash
mraya1:x:1046:1005:Miguel Raya:/home/students/mraya1:/bin/bash
thomasargent:x:1047:1005:Thomas Sargent:/home/students/thomasargent:/bin/bash
sscarpac:x:1048:1005:Stephen E. Scarpaci:/home/students/sscarpac:/bin/bash
rachesmith:x:1049:1005:Rachel A. Smith:/home/students/rachesmith:/bin/bash
astone17:x:1050:1005:Alexander L. Stone:/home/students/astone17:/bin/bash
jtosaky1:x:1051:1005:Joseph A. Tosaky:/home/students/jtosaky1:/bin/bash
ntran43:x:1052:1005:Ngoc Lan N. Tran:/home/students/ntran43:/bin/bash
bwood30:x:1053:1005:Brian Wood:/home/students/bwood30:/bin/bash
jyoo15:x:1054:1005:D. Yoo:/home/students/jyoo15:/bin/bash
okutulas:x:1055:1005:Olympia Kutulas:/home/students/okutulas:/bin/bash
gbell22:x:1056:1005:Garrett Bell:/home/students/gbell22:/bin/bash
bjone102:x:1057:1005:Bennie Jones:/home/students/bjone102:/bin/bash
cmanduca:x:1058:1005:Christopher Manduca:/home/students/cmanduca:/bin/bash
gmcdavit:x:1059:1005:Gina Mcdavitt:/home/students/gmcdavit:/bin/bash
bdarner:x:1060:1005:Bryon Darner:/home/students/bdarner:/bin/bash
kkarkov1:x:1061:1005:Kimberly Karkov:/home/students/kkarkov1:/bin/bash
marce6:x:1004:1005:Arce Michael:/home/students/marce6:/bin/bash
sbadami:x:1005:1005:Badami Srinivas S.:/home/students/sbadami:/bin/bash
kboyd15:x:1006:1005:Boyd Katherine M.:/home/students/kboyd15:/bin/bash
abrenn10:x:1062:1005:Brenner August R.:/home/students/abrenn10:/bin/bash
scasill4:x:1063:1005:Casillas Sandivel A.:/home/students/scasill4:/bin/bash
bclark26:x:1064:1005:Clark Benjamin P.:/home/students/bclark26:/bin/bash
afenech:x:1065:1005:Fenech Anthony S.:/home/students/afenech:/bin/bash
vgovindb:x:1066:1005:Govindbhai Vinesh L.:/home/students/vgovindb:/bin/bash
ngreene7:x:1067:1005:Greene Nevin R.:/home/students/ngreene7:/bin/bash
agrover4:x:1068:1005:Grover Aditya:/home/students/agrover4:/bin/bash
jhau5:x:1069:1005:Hau Jun Hin:/home/students/jhau5:/bin/bash
gilhan:x:1070:1005:Ilhan Goksun:/home/students/gilhan:/bin/bash
ykhaing:x:1071:1005:Khaing Yin M.:/home/students/ykhaing:/bin/bash
tlee185:x:1072:1005:Lee Thomas A.:/home/students/tlee185:/bin/bash
yichiliao:x:1073:1005:Liao Yi-Chia:/home/students/yichiliao:/bin/bash
wlove3:x:1074:1005:Love William R.:/home/students/wlove3:/bin/bash
gmadrona:x:1075:1005:Madrona Glen I.:/home/students/gmadrona:/bin/bash
jmaleki:x:1076:1005:Maleki Jessica P.:/home/students/jmaleki:/bin/bash
mmanwani:x:1077:1005:Manwani Meenakshi:/home/students/mmanwani:/bin/bash
marcomariano:x:1078:1005:Mariano Marcos B.:/home/students/marcomariano:/bin/bash
amayork1:x:1079:1005:Mayorkis Alexander:/home/students/amayork1:/bin/bash
smcmill5:x:1080:1005:Mcmills Sean M.:/home/students/smcmill5:/bin/bash
mnalam:x:1081:1005:Nalam Madhavi N.:/home/students/mnalam:/bin/bash
rrodr203:x:1082:1005:Rodriguez Ronaldo M.:/home/students/rrodr203:/bin/bash
hsanzeri:x:1083:1005:Sanzeri Hunter R.:/home/students/hsanzeri:/bin/bash
vshut:x:1084:1005:Shut Vladimir:/home/students/vshut:/bin/bash
ctaylo84:x:1085:1005:Taylor Christine E.:/home/students/ctaylo84:/bin/bash
mtrumbo2:x:1086:1005:Trumbo Mithu:/home/students/mtrumbo2:/bin/bash
jtseng3:x:1087:1005:Tseng Jeff C.:/home/students/jtseng3:/bin/bash
otsvirku:x:1088:1005:Tsvirkunova Olena:/home/students/otsvirku:/bin/bash
jwoodell:x:1089:1005:Woodell John T.:/home/students/jwoodell:/bin/bash
fyoung13:x:1090:1005:Young Francis L.:/home/students/fyoung13:/bin/bash
jswartz1:x:1091:1005:John Swartz:/home/students/jswartz1:/bin/bash
ktankeh:x:1092:1005:Keefe M. Tankeh:/home/students/ktankeh:/bin/bash
class Student
attr_accessor :user_name, :password, :uid, :gid, :gcos_field, :home_directory, :shell, :count
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment