Création utilisateur restreint

Article publié le 12 Mai 2013

 

Lors d’une de mes missions on m’a demandé de créer un compte invité spécial avec la possibilité de lui autorisé ou non l’utilisation de tel ou tel commande. C’est une problématique qui se pose souvent en entreprise. Comment donner accès à un utilisateur sans que celui ci le pourrisse avec des commandes grep ou autre qui peuvent consommer toute la mémoire???

Le script ci dessous répond à cette problématique:

 

 

#!/bin/bash
v
# Ce script permet de restreindre les commandes sur le compte invite
#il est valide uniquement pour les distributions DEBIAN 4, DEBIAN 5 et DEBIAN 6 et REDHAT 5
#Ce script doit être executer depuis le répertoire /etc
cd /etc
##########################RECHERCHE DU COMPTE INVITE#######################
grep ‘invite’ passwd
retval=$?
if [ « $retval » -ne 0 ]; then
useradd  -m -d /home/invite invite
echo « invite:invite » | chpasswdfi
#############################################################################if [ -f « issue » ]; then###############################PARTIE DEBIAN 5 et 6################################version=$(cat issue)
if [ « $version » = « Debian GNU/Linux 6.0 \n \l » ] || [ « $version » = « Debian GNU/Linux 5.0 \n \l » ];
then
cp /bin/bash /bin/guestbash
usermod -s /bin/guestbash invite
groupmod -g 9999 invite;usermod -u 9999 -g 9999 invite
usermod -G invite -a invitecd /home/invite
echo « export PATH=/usr/local/guestbash » >> .profile
mkdir /usr/local/guestbash
chown -R root:root /home/invite && chmod 511 /home/invite
chmod 444 /home/invite/.profile
cd /usr/local/guestbash
chown invite  /home/invite###########################Lien Symbolique Commande autorise#####################
ln -s /usr/bin/alias alias
ln -s /usr/bin/basename basename
ln -s /bin/cat cat
ln -s /usr/bin/clear clear

ln -s /bin/date date
ln -s /usr/bin/diff diff
ln -s /usr/bin/env env
ln -s /bin/echo echo
ln -s /usr/bin/head head
ln -s /usr/bin/host host
ln -s /bin/less less
ln -s /bin/ls ls
ln -s /usr/bin/man man
ln -s /bin/more more
ln -s /bin/nano nano
ln -s /bin/netstat netstat
ln -s /usr/bin/nslookup nslookup
ln -s /bin/ping ping
ln -s /bin/pwd pwd
ln -s /bin/sed sed
ln -s /usr/bin/size size
ln -s /usr/bin/tail tail
ln -s /usr/bin/telnet telnet
ln -s /usr/bin/top top
ln -s /usr/bin/traceroute traceroute
ln -s /usr/bin/vi vi
ln -s /usr/bin/tty tty
ln -s /usr/bin/vim vim
ln -s /usr/bin/whoam whoami
#################################################################################
echo « La procedure DEBIAN 5 / DEBIAN 6 Terminée »
fi#############################FIN PARTIE DEBIAN 5 et 6#############################################################PARTIE DEBIAN 4 OU RED HAT######################################if [ « $version » = « Debian GNU/Linux 4.0 \n \l » ] || [ -f « redhat-release » ];
thencp /bin/bash /bin/guestbash
usermod -s /bin/guestbash invite
groupmod -g 9999 invite;usermod -u 9999 -g 9999 invite
usermod -G invite -a invite
echo « invite:invite » | chpasswdcd /home/invite
echo « export PATH=/usr/local/guestbash » >> .bash_profile
mkdir /usr/local/guestbash
chown -R root:root /home/invite && chmod 511 /home/invite
chmod 444 /home/invite/.bash_profile
cd /usr/local/guestbash
chown invite  /home/invite

###########################Lien Symbolique Commande autorise#####################ln -s /usr/bin/alias alias
ln -s /usr/bin/basename basename;
ln -s /bin/cat cat
ln -s /usr/bin/clear clear
ln -s /bin/date date
ln -s /usr/bin/diff diff
ln -s /usr/bin/env env
ln -s /bin/echo echo
ln -s /usr/bin/head head
ln -s /usr/bin/host host
ln -s /bin/ls ls
ln -s /bin/less less
ln -s /usr/bin/man man
ln -s /bin/more more
ln -s /bin/nano nano
ln -s /bin/netstat netstat
ln -s /usr/bin/nslookup nslookup
ln -s /bin/ping ping
ln -s /bin/pwd pwd
ln -s /bin/sed sed
ln -s /usr/bin/size size
ln -s /usr/bin/tail tail
ln -s /usr/bin/telnet telnet
ln -s /usr/bin/top top
ln -s /usr/bin/traceroute traceroute
ln -s /usr/bin/vi vi
ln -s /usr/bin/tty tty
ln -s /usr/bin/vim vim
ln -s /usr/bin/whoam whoami
#################################################################################echo « La procedure REDHAT / DEBIAN 4 Terminée »
echo « Enjoy 😉 »#############################FIN PARTI DEBIAN 4 et RED HAT 5 ######################################################################################################################
elseecho « BYE 🙂 »
fi
##############################FIN DU SCRIPT##########################################
fi