#1 Le 19/10/2012, à 00:32
- silver74
[RÉSOLU]Ligne de commande pour créer un compte accès libre ?
Bonsoir,
je suis en train de mettre en place des machines en accès libre, et je souhaite mettre en place un compte public limité. Donc je voulais faire un script, que je lance sur chaque machine après une install fraîche, avec un skel déjà en place.
Le script doit me permettre:
* création du compte public
* mot de passe: public
* restrictions: Impossible de modifier (Bureau,Arrière-plan,affichages,Thème...)
* Connexion automatique sur le compte public
Pour le moment je but déjà sur la création du compte à lui même...[boulet inside]
#!/bin/bash
if [[ "$USER" != "root" ]]
then
echo "Vous devez être root pour exécuter ce script."
exit 1
fi
COMPTE=public
useradd -d "/home/$COMPTE" -g 100 -k /etc/skel
exit 0
# FIN du script
Pouvez vous m'aider de réaliser se script?
Merci d'avance
Dernière modification par silver74 (Le 20/10/2012, à 20:41)
"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière"
Hors ligne
#2 Le 19/10/2012, à 11:53
- Bigcake
Re : [RÉSOLU]Ligne de commande pour créer un compte accès libre ?
Bonjour,
Pour l'uid de l'utilisateur je ne sait pas ce que tu a déjà donc j'ai mis 1001 mais a changer s'il est déjà utilisé
useradd -s /bin/bash -g 100 -u 1001 -k /etc/skel -md "/home/$COMPTE" "$COMPTE"
Pour plus d'info :
man useradd
Dernière modification par Bigcake (Le 19/10/2012, à 11:55)
"Les gens" ne sont pas cons, ils ont été habitués à la facilité et à la désinformation. Le meilleur moyen de ne pas les aider, c'est de se moquer. Le meilleur moyen de les aider, c'est de les informer, encore et encore. La réflexion viendra. N'oubliez pas que vous aussi, vous êtes le con d'un autre.
Smartphone+GNU/Linux=Librem5
Hors ligne
#3 Le 19/10/2012, à 14:08
- silver74
Re : [RÉSOLU]Ligne de commande pour créer un compte accès libre ?
Bon...ça commence à avoir forme mon truc
#!/bin/bash
if [[ "$USER" != "root" ]]
then
echo "Vous devez être root pour exécuter ce script."
exit 1
fi
COMPTE=public
useradd -s /bin/bash -g 100 -p IbR0piKXJBbSQ -u 1001 -k /etc/skel -md "/home/$COMPTE" "$COMPTE"
cat > /etc/init.d/nettoyage << Gogogo
#!/bin/bash
# Nom du compte a reinitialiser
COMPTE=public
case "$1" in
start)
rm -r /home/${COMPTE}/* >&2
cp -r /etc/skel/* /home/${COMPTE}/ >&2
chown -R ${COMPTE} /home/${COMPTE}/*
chgrp -R ${COMPTE} /home/${COMPTE}/*
;;
stop)
;;
restart)
;;
*)
echo "Usage: $0 start|stop|restart" >&2
exit 1
;;
esac
exit 0
# FIN du script
Gogogo
chmod +x /etc/init.d/nettoyage
update-rc.d nettoyage defaults 20
exit 0
# FIN du script
Voici donc le script qui va me permettre de creer un compte public qui se auto-reconstruit à chaque démarrage.
Il faut que je trouve "juste" maintenant quelle fichier il faut modifier pour la session boot automatiquement sur le compte selon la version ubuntu.
Quelqu’un à une idée ?
"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière"
Hors ligne
#4 Le 19/10/2012, à 15:44
- silver74
Re : [RÉSOLU]Ligne de commande pour créer un compte accès libre ?
Bon je trouvé pour le login automatique !!!
il faut juste dans le script il me crée un fichier custom.conf dans /etc/gdm
donc j'ajoute dans mon script
cat > /etc/gdm/custom.conf << autologin
[daemon]
TimedLoginEnable=true
AutomaticLoginEnable=false
TimedLogin=public
AutomaticLogin=public
TimedLoginDelay=10
DefaultSession=gnome
autologin
"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière"
Hors ligne
#5 Le 20/10/2012, à 20:44
- silver74
Re : [RÉSOLU]Ligne de commande pour créer un compte accès libre ?
Merci Bigcake pour ton coup de main.
voici donc mon script final:
#!/bin/bash
####################
#vérification du root
####################
if [[ "$USER" != "root" ]]
then
echo "Vous devez être root pour exécuter ce script."
exit 1
fi
#####################
#nom du compte à creer
#####################
COMPTE=public
######################
#Creation du compte public
######################
#mot de passe est: public
######################################
#le dossier /etc/skel doit etre configurer avant
######################################
useradd -s /bin/bash -g 100 -p IbR0piKXJBbSQ -u 1001 -k /etc/skel -md "/home/$COMPTE" "$COMPTE"
###########################
#activation/creation du auto-login
###########################
cat > /etc/gdm/custom.conf << autologin
[daemon]
TimedLoginEnable=true
AutomaticLoginEnable=false
TimedLogin=public
AutomaticLogin=public
TimedLoginDelay=10
DefaultSession=gnome
autologin
##################################
#Creation du fichier de nettoyage
##################################
cat > /etc/init.d/nettoyage << restauration
#!/bin/bash
### BEGIN INIT INFO
# Provides: nettoyage
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:
# Description:
# Version: 2.0
# Date: 19/10/2012
# Author: Dirk Meyer zur Heyde www.solidrnet.fr
# Object: permet de réinitialiser le répertoire d'un utilisateur
# au démarrage de l'ordinateur
### END INIT INFO
##########################
# Nom du compte a réinitialiser
##########################
COMPTE=public
# suppression du contenu du repertoire de l'utilisateur
rm -r /home/${COMPTE}/* >&2
# remplissage du repertoire de l'utilisateur avec /etc/skel
cp -r /etc/skel/* /home/${COMPTE}/ >&2
# on rend l'utilisateur proprietaire de ses fichiers
chown -R ${COMPTE} /home/${COMPTE}/*
# on associe les fichier au groupe principal de l'utilisateur
chgrp -R ${COMPTE} /home/${COMPTE}/*
exit 0
restauration
chmod +x /etc/init.d/nettoyage
update-rc.d nettoyage defaults 20
exit 0
# FIN du script
###################################
#désactiver le nettoyage
###################################
#sudo update-rc.d nettoyage remove
#sudo rm /etc/init.d/nettoyage
"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière"
Hors ligne