blob: eabd239dfb6c8aa44fc9720123333820105791d0 [file] [log] [blame]
robbiew3f9a8802001-10-12 20:39:17 +00001#!/bin/sh
2
robbiew599ddd72001-11-28 21:31:41 +00003# Copyright (c) International Business Machines Corp., 2001
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13# the GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
19# FILE : IDcheck.sh
20# DESCRIPTION : checks for req'd users/groups and will create them if requested.
21# HISTORY :
22# 11/28/2001 Robbie Williamson (robbiew@austin.ibm.com)
23# written
robbiew631a9f52002-03-05 22:42:55 +000024# 03/05/2002 Jay Huie (wjh@us.ibm.com)
25# Changed script to only ask regarding creation of IDs if
26# necessary. Cleaner automation of the script and
27# most distos now have IDs already added
robbiew599ddd72001-11-28 21:31:41 +000028
29
30
robbiewd23f7242001-11-21 17:33:40 +000031# Prompt user if ids/groups should be created
robbiewc0f37e62001-11-27 19:14:19 +000032clear
33echo "Checking for required user/group ids"
34echo ""
robbiewd23f7242001-11-21 17:33:40 +000035
36# Check ids and create if needed.
37NOBODY_ID=0
38BIN_ID=0
39DAEMON_ID=0
40NOBODY_GRP=0
41BIN_GRP=0
42DAEMON_GRP=0
robbiewcefffa72003-03-03 17:06:24 +000043I_AM_ROOT=0
robbiewd23f7242001-11-21 17:33:40 +000044
45id nobody > /dev/null
46if [ $? != "0" ]; then
47 NOBODY_ID=1
48fi
49
50id bin > /dev/null
51if [ $? != "0" ]; then
52 BIN_ID=1
53fi
54
55id daemon > /dev/null
56if [ $? != "0" ]; then
57 DAEMON_ID=1
58fi
59
robbiew90fc94c2002-04-08 14:55:37 +000060id -g nobody > /dev/null
robbiewd23f7242001-11-21 17:33:40 +000061if [ $? != "0" ]; then
62 NOBODY_GRP=1
63fi
64
65id -g bin > /dev/null
66if [ $? != "0" ]; then
67 BIN_GRP=1
68fi
69
70id -g daemon > /dev/null
71if [ $? != "0" ]; then
72 DAEMON_GRP=1
73fi
74
robbiewcefffa72003-03-03 17:06:24 +000075whoami | grep root > /dev/null
76if [ $? == "0" ]; then
77 I_AM_ROOT=1
78fi
79
80if [ $NOBODY_ID != "0" ] || [ $BIN_ID != "0" ] || [ $DAEMON_ID != "0" ] || [ $NOBODY_GRP != "0" ] || [ $BIN_GRP != "0" ] || [ $DAEMON_GRP != "0" ] && [ $I_AM_ROOT != "0" ];
robbiew631a9f52002-03-05 22:42:55 +000081then
82 echo -n "If any required user ids and/or groups are missing, would you like these created? Y/N "
83 read ans
84 case $ans in
85 Y*|y*)
86 CREATE=1
87 ;;
88 *)
89 CREATE=0
90 ;;
91 esac
92fi
93
robbiewd23f7242001-11-21 17:33:40 +000094if [ $NOBODY_ID != "1" ] && [ $NOBODY_GRP != "1" ]; then
95 echo "Nobody user id and group exist."
96else
97 if [ $NOBODY_ID -eq "1" ] && [ $CREATE -eq "1" ]; then
98 echo nobody:x:99:99:Nobody:: >> /etc/passwd
99 fi
100 if [ $NOBODY_GRP -eq "1" ] && [ $CREATE -eq "1" ]; then
101 echo nobody:x:`id -u nobody`: >> /etc/group
102 fi
103fi
104
105if [ $BIN_ID != "1" ] && [ $BIN_GRP != "1" ]; then
106 echo "Bin user id and group exist."
107else
nstrazf9598e42001-12-19 15:45:24 +0000108 if [ $BIN_ID -eq "1" ] && [ $CREATE -eq "1" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000109 echo bin:x:1:1:bin:: >> /etc/passwd
110 fi
nstrazf9598e42001-12-19 15:45:24 +0000111 if [ $BIN_GRP -eq "1" ] && [ $CREATE -eq "1" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000112 echo bin:x:`id -u bin`:bin >> /etc/group
113 fi
114fi
115
nstrazf9598e42001-12-19 15:45:24 +0000116if [ $DAEMON_ID -ne "1" ] && [ $DAEMON_GRP -ne "1" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000117 echo "Daemon user id and group exist."
118else
nstrazf9598e42001-12-19 15:45:24 +0000119 if [ $DAEMON_ID -eq "1" ] && [ $CREATE -eq "1" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000120 echo daemon:x:2:2:daemon:: >> /etc/passwd
121 fi
nstrazf9598e42001-12-19 15:45:24 +0000122 if [ $DAEMON_GRP -eq "1" ] && [ $CREATE -eq "1" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000123 echo daemon:x:`id -u daemon`:daemon >> /etc/group
124 fi
125fi
126
127id nobody > /dev/null
robbiew3f9a8802001-10-12 20:39:17 +0000128if [ $? -eq "0" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000129 id bin > /dev/null
robbiew3f9a8802001-10-12 20:39:17 +0000130 if [ $? -eq "0" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000131 id daemon > /dev/null
robbiew3f9a8802001-10-12 20:39:17 +0000132 if [ $? -eq "0" ]; then
robbiew90fc94c2002-04-08 14:55:37 +0000133 id -g nobody > /dev/null
robbiew3f9a8802001-10-12 20:39:17 +0000134 if [ $? -eq "0" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000135 id -g bin > /dev/null
robbiew3f9a8802001-10-12 20:39:17 +0000136 if [ $? -eq "0" ]; then
robbiewd23f7242001-11-21 17:33:40 +0000137 id -g daemon > /dev/null
robbiew3f9a8802001-10-12 20:39:17 +0000138 if [ $? -eq "0" ]; then
139 echo "Required users/groups exist."
140 exit 0
141 fi
142 fi
143 fi
144 fi
145 fi
146fi
robbiewd23f7242001-11-21 17:33:40 +0000147echo "*****************************************"
148echo "* Required users/groups do NOT exist!!! *"
149echo "* *"
150echo "* Some kernel/syscall tests will FAIL! *"
151echo "*****************************************"
152exit 1