-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcheckUsers.sh
116 lines (115 loc) · 6.58 KB
/
checkUsers.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash
# _ _
# | | | |
# ___| |__ ___ ___| | __
# / __| '_ \ / _ \/ __| |/ /
# | (__| | | | __/ (__| <
# \___|_| |_|\___|\___|_|\_\
# ██╗ ██╗███████╗███████╗██████╗ ███████╗
# ██║ ██║██╔════╝██╔════╝██╔══██╗██╔════╝
# ██║ ██║███████╗█████╗ ██████╔╝███████╗
# ██║ ██║╚════██║██╔══╝ ██╔══██╗╚════██║
# ╚██████╔╝███████║███████╗██║ ██║███████║
# ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝╚══════╝
#=======================================================================================
#=== DESCIPTION ========================================================================
## check what users exist, logs them, then prints any non-standard users
#=======================================================================================
#=======================================================================================
#
#*************** NEED TO DO/ADD ***********************
# check /etc/profile (see what its doing when making a new profile)
# check sudoer file (/etc/sudoer || visudo)
# fix the things
# check /etc/shadow and make sure the proper accounts are locked still
# stop using tmp files. STOP IT!! use mktmp or sed variables
# check /etc/skel (responsible for creating stuff for new users)
# lslogins / last / lastb / lastlog
# delete iffy users and all files owned by them ( find / -user USER -delete)
##### FILES
# Group account information. /etc/group
# Secure group account information. /etc/gshadow
# Default values for account creation. /etc/default/useradd
# Directory containing default files. /etc/skel/
# Per user subordinate group IDs. /etc/subgid
# Per user subordinate user IDs. /etc/subuid
# Shadow password suite configuration. /etc/login.defs
#
#******************************************************
#
#///////////////////////////////////////////////////////////////////////////////////////
#|||||||||||||||||||||||| Script Stuff Starts |||||||||||||||||||||||||||||||||||||||||
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#### RUN function #####
#######################
function main(){ ###
buildEmUp ###
whoDat ###
breakEmDown ###
} ###
#######################
#------ error handling ----------
### If error, give up #
#set -e #
#- - - - - - - - - - - - - - - -#
### if error, do THING #
# makes trap global #
# (works in functions) #
#set -o errtrace #
# 'exit' can be a func or cmd #
#trap 'exit' ERR #
#--------------------------------
#### global backup var ####
backupDir="$HOME""/ccdc_backups/$(basename "$0" | sed 's/\.sh$//')"
###########################################################################################
###### ┌┐ ┬ ┬┬┬ ┌┬┐╔═╗┌┬┐╦ ╦┌─┐ ########################################################
###### ├┴┐│ │││ ││║╣ │││║ ║├─┘ ########################################################
###### └─┘└─┘┴┴─┘─┴┘╚═╝┴ ┴╚═╝┴ ########################################################
# builds the 2 files for diff to check and copies them to a backup archive ################
###########################################################################################
function buildEmUp(){
defList="root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-network systemd-resolve syslog messagebus _apt lxd uuidd dnsmasq landscape pollinate sshd"
defListPath="$backupDir""/defList.bak"
testList="$(compgen -u)"
testListPath="$backupDir""/testList"
# creating the dir if it doesn't exist
if [ ! -d $backupDir ]; then
printf "\n\n dir name ["$backupDir"]\n\n"
command mkdir -p "$backupDir"
echo "creating ccdc backup dir"
fi
# creating backups
command cp -a /etc/passwd "$backupDir"/origPasswd.bak
# building files
echo $defList > "$defListPath"
echo $testList > "$testListPath"
echo ""
command sed -i 's/ /\n/g' "$defListPath"
command sed -i 's/ /\n/g' "$testListPath"
}
###########################################################################################
###### ┬ ┬┬ ┬┌─┐╔╦╗┌─┐┌┬┐ ###############################################################
###### │││├─┤│ │ ║║├─┤ │ ###############################################################
###### └┴┘┴ ┴└─┘═╩╝┴ ┴ ┴ ###############################################################
# comparing defined list and generated list ###############################################
###########################################################################################
function whoDat(){
#### comparing lists ############################
printf "\n----- Non-Standard Users on this Box -----\n"
command diff "$defListPath" "$testListPath" | grep ">"
printf "\n====== original files backed up to "$backupDir"--$(date +"%Y-%m-%d_%H%M") ======\n"
}
###########################################################################################
###### ┌┐ ┬─┐┌─┐┌─┐┬┌─╔═╗┌┬┐╔╦╗┌─┐┬ ┬┌┐┌ ################################################
###### ├┴┐├┬┘├┤ ├─┤├┴┐║╣ │││ ║║│ │││││││ ################################################
###### └─┘┴└─└─┘┴ ┴┴ ┴╚═╝┴ ┴═╩╝└─┘└┴┘┘└┘ ################################################
# zipping and removing old files ##########################################################
###########################################################################################
function breakEmDown(){
command tar -zcf "$HOME"/ccdc_backups/$(basename "$0" | sed 's/\.sh//')--$(date +"%Y-%m-%d_%H%M").tar.gz -C "$HOME"/ccdc_backups $(basename "$0" | sed 's/\.sh//')
command rm -rf "$backupDir"
}
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++ FIGHT!! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
main