Si tu donnes un poisson à un homme, il mangera un jour... Si tu lui apprends à pêcher, il mangera toujours !
jeudi 5 mars 2009
Montage SMBMOUNT
# smbmount //mon_serveur/mon_partage /mon_point_de_montage -o username=mon_user,password=mon_mdp,iocharset=utf8,codepage=cp852
jeudi 12 février 2009
Chrooté un user SSH, terminal...
Lien d'un How-to pour chrooté un user utilisant un terminal via ssh :
http://www.lea-linux.org/documentations/index.php/Trucs:Chrooter_un_utilisateur_(ssh,_terminal,_console,_etc...)
A faire :
- Création script d'automatisation.
I/ Création d'un user et de son home
On crée l'utilisateur :
# adduser *login*
Puis on crée ensuite les dossiers qui définira son environnement de base :
# cd /home/
# mkdir bin dev lib
# cp -rp /dev/* ./dev/.
Pour lui permettre de se loguer via un terminal bash, il va falloir copier l'executable de bash dans son environnement :
# cp /bin/bash /home//bin
Si besoin pour chercher un exécutable :
# whereis *exe*
Il faut ensuite copier toutes les dépendances de l'exécutable copier, pour connaitre ces dépendances pour bash par exemple :
# ldd /bin/bash
libncurses.so.5 => /lib/libncurses.so.5 (0x40026000)
libdl.so.2 => /lib/libdl.so.2 (0x40064000)
libc.so.6 => /lib/libc.so.6 (0x40068000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Nous constatons que /bin/bash est dépendant de /lib/libncurses.so.5, /lib/libdl.so.2, /lib/libc.so.6 et de /lib/ld-linux.so.2.
Nous allons les copier tout simplement dans l'arborescence chrootée :
# cd /home/
# cp /lib/libncurses.so.5 ./lib/
# cp /lib/libdl.so.2 ./lib/
# cp /lib/libc.so.6 ./lib/
# cp /lib/ld-linux.so.2 ./lib/
II/ Chroot du user
Copiez le programme /usr/sbin/chroot en le nommant par exemple /usr/sbin/chroot_suid, et attribuez lui des droits SUID :
# cp /usr/sbin/chroot /usr/sbin/chroot_suid
# chmod 4755 /usr/sbin/chroot_suid
Créer un fichier nommer chrootuser dans le repertoire /bin qui contiendra ceci :#!/bin/bash
exec -c /usr/sbin/chroot_suid /home/$USER /bin/bash
Mettre les droits d'éxéction sur ce fichier :
# chmod 755 /bin/chrootuser
Modifier le fichier /etc/shells pour rajouter la ligne /bin/chrootuser.
Enfin attribuer au user le shell chrootuser afin qu'il soit chrooté :
# usermod -d /bin/chrootuser *login*
Vous pouvez maintenant vous connectez.
Si vous remarquez bien, aucune commande n'est disponible (hormis commande interne bash). Si vous souhaitez rajouter ces programmes, vous faites comme pour "bash", en copiant les programmes et les librairies dépendantes.
http://www.lea-linux.org/documentations/index.php/Trucs:Chrooter_un_utilisateur_(ssh,_terminal,_console,_etc...)
A faire :
- Création script d'automatisation.
I/ Création d'un user et de son home
On crée l'utilisateur :
# adduser *login*
Puis on crée ensuite les dossiers qui définira son environnement de base :
# cd /home/
# mkdir bin dev lib
# cp -rp /dev/* ./dev/.
Pour lui permettre de se loguer via un terminal bash, il va falloir copier l'executable de bash dans son environnement :
# cp /bin/bash /home/
Si besoin pour chercher un exécutable :
# whereis *exe*
Il faut ensuite copier toutes les dépendances de l'exécutable copier, pour connaitre ces dépendances pour bash par exemple :
# ldd /bin/bash
libncurses.so.5 => /lib/libncurses.so.5 (0x40026000)
libdl.so.2 => /lib/libdl.so.2 (0x40064000)
libc.so.6 => /lib/libc.so.6 (0x40068000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Nous constatons que /bin/bash est dépendant de /lib/libncurses.so.5, /lib/libdl.so.2, /lib/libc.so.6 et de /lib/ld-linux.so.2.
Nous allons les copier tout simplement dans l'arborescence chrootée :
# cd /home/
# cp /lib/libncurses.so.5 ./lib/
# cp /lib/libdl.so.2 ./lib/
# cp /lib/libc.so.6 ./lib/
# cp /lib/ld-linux.so.2 ./lib/
II/ Chroot du user
Copiez le programme /usr/sbin/chroot en le nommant par exemple /usr/sbin/chroot_suid, et attribuez lui des droits SUID :
# cp /usr/sbin/chroot /usr/sbin/chroot_suid
# chmod 4755 /usr/sbin/chroot_suid
Créer un fichier nommer chrootuser dans le repertoire /bin qui contiendra ceci :#!/bin/bash
exec -c /usr/sbin/chroot_suid /home/$USER /bin/bash
Mettre les droits d'éxéction sur ce fichier :
# chmod 755 /bin/chrootuser
Modifier le fichier /etc/shells pour rajouter la ligne /bin/chrootuser.
Enfin attribuer au user le shell chrootuser afin qu'il soit chrooté :
# usermod -d /bin/chrootuser *login*
Vous pouvez maintenant vous connectez.
Si vous remarquez bien, aucune commande n'est disponible (hormis commande interne bash). Si vous souhaitez rajouter ces programmes, vous faites comme pour "bash", en copiant les programmes et les librairies dépendantes.
mercredi 11 février 2009
SFTP chrooté avec rssh
Tester sur une Red Hat Enterprise Linux Server release 5.
Paquet necessaires :
- rssh 2.1.1
- Openssh 4.3p2
- chroot
. Installer le paquet rssh sur la machine
------------------------------------------------------------------
$ tar -xzvf /où_est/rssh-xxx.tar.gz $ cd rssh-xxx/
$ ./configure --prefix=/usr
$ make
$ su
$ make install
------------------------------------------------------------------
. Editer le fichier de configuration /usr/local/etc/rssh.conf :
------------------------------------------------------------------
logfacility = LOG_USER
allowsftp
umask = 022
chrootpath="/home/test"
-------------------------------------------------------------------
Le chrootpath sera le repertoire ou sera ridirigé les utilisateurs.
. Chrooter le répertoire, ici pour le repertoire /home/test :
-------------------------------------------------------------------
$ cd /home/test
$ mkdir -p usr
$ cp -rp /usr/liblibexec usr/.
$ mkdir -p usr/lib
$ cp -rp /usr/lib/*so* usr/lib/.
$ cp -rp /lib .
$ cp -rp /dev .
-------------------------------------------------------------------
.Editer le ficher /etc/shells et y ajouter le shell rssh :
---------------------------------------------------------
/usr/local/bin/rssh
---------------------------------------------------------
.Ajouter un utilisateur avec comme shell rssh ou alors le modifier :
----------------------------------------------------------
# Ajout d'un utulisateur
$ adduser -s /usr/local/bin/rssh test
# Ne pas oublier le mot de passe
$ passwd test
#Modifier le shell d'un utilisateur
$ usermod -s /usr/local/bin/rssh test
----------------------------------------------------------
Le SFTP est maintenant disponible pour l'utilisateur test qui sera chrooté dans le repertoire /home/test.
Paquet necessaires :
- rssh 2.1.1
- Openssh 4.3p2
- chroot
. Installer le paquet rssh sur la machine
------------------------------------------------------------------
$ tar -xzvf /où_est/rssh-xxx.tar.gz $ cd rssh-xxx/
$ ./configure --prefix=/usr
$ make
$ su
$ make install
------------------------------------------------------------------
. Editer le fichier de configuration /usr/local/etc/rssh.conf :
------------------------------------------------------------------
logfacility = LOG_USER
allowsftp
umask = 022
chrootpath="/home/test"
-------------------------------------------------------------------
Le chrootpath sera le repertoire ou sera ridirigé les utilisateurs.
. Chrooter le répertoire, ici pour le repertoire /home/test :
-------------------------------------------------------------------
$ cd /home/test
$ mkdir -p usr
$ cp -rp /usr/liblibexec usr/.
$ mkdir -p usr/lib
$ cp -rp /usr/lib/*so* usr/lib/.
$ cp -rp /lib .
$ cp -rp /dev .
-------------------------------------------------------------------
.Editer le ficher /etc/shells et y ajouter le shell rssh :
---------------------------------------------------------
/usr/local/bin/rssh
---------------------------------------------------------
.Ajouter un utilisateur avec comme shell rssh ou alors le modifier :
----------------------------------------------------------
# Ajout d'un utulisateur
$ adduser -s /usr/local/bin/rssh test
# Ne pas oublier le mot de passe
$ passwd test
#Modifier le shell d'un utilisateur
$ usermod -s /usr/local/bin/rssh test
----------------------------------------------------------
Le SFTP est maintenant disponible pour l'utilisateur test qui sera chrooté dans le repertoire /home/test.
mardi 23 décembre 2008
lundi 22 décembre 2008
DRAC depuis le net
Sur la machine cliente :
ssh -L 443:LOCAL_DRAC_IP:443 -L 5900:LOCAL_DRAC_IP:5900 -L 5901:LOCAL_DRAC_IP:5901 -l user -N WAN_IP
Puis :
FF --> https://localhost
Et voila :)
ssh -L 443:LOCAL_DRAC_IP:443 -L 5900:LOCAL_DRAC_IP:5900 -L 5901:LOCAL_DRAC_IP:5901 -l user -N WAN_IP
Puis :
FF --> https://localhost
Et voila :)
lundi 27 octobre 2008
Find usage
Dans répertoire courant,
Lister les fichiers modifiés il y a MOINS de 20 jours :
$ find . -type f -mtime -20 -exec ls {} \;
Lister les fichiers modifiés il y a PLUS de 20 jours :
$ find . -type f -mtime +20 -exec ls {} \;
Effacer les fichiers modifiés il y a PLUS de 20 jours :
$ find . -type f -mtime +20 -exec rm -rf {} \;
Déplacer les fichiers modifiés il y a PLUS de 20 jours dans /home/tmp :
$ find . -type f -mtime +20 -exec mv {} /home/tmp/. \;
Plus généralement avec une commande :
$ find . -type f -mtime +20 -exec my_command {} /home/tmp/. \;
Trouver les fichiers de plus de 100M :
$ find . -type f -size +100M -exec ls {} \;
Trouver les fichiers avec une permission de 644 :
$ find . -perm 644
Trouver les fichiers dans le répertoire courant avec un filtre par fichier xargs :
$ find . -type f | xargs grep "toto@titi.com"
Trouver des fichiers et rediriger dans un TAR :
$ find . -type f -print0 | tar -czvf backup.tar.gz --null -T -
Exclure des répertoires courants :
$ find . -type f -print0 -not -path "." -not -path ".." | xargs -0 ...votre_commande...
Copier les fichiers (ex: csv) en préservant la structure des répertoires :
$ find . -name '*.csv' -exec cp --parents \{\} /target \;
Lister les fichiers modifiés il y a MOINS de 20 jours :
$ find . -type f -mtime -20 -exec ls {} \;
Lister les fichiers modifiés il y a PLUS de 20 jours :
$ find . -type f -mtime +20 -exec ls {} \;
Effacer les fichiers modifiés il y a PLUS de 20 jours :
$ find . -type f -mtime +20 -exec rm -rf {} \;
Déplacer les fichiers modifiés il y a PLUS de 20 jours dans /home/tmp :
$ find . -type f -mtime +20 -exec mv {} /home/tmp/. \;
Plus généralement avec une commande :
$ find . -type f -mtime +20 -exec my_command {} /home/tmp/. \;
Trouver les fichiers de plus de 100M :
$ find . -type f -size +100M -exec ls {} \;
Trouver les fichiers avec une permission de 644 :
$ find . -perm 644
Trouver les fichiers dans le répertoire courant avec un filtre par fichier xargs :
$ find . -type f | xargs grep "toto@titi.com"
Trouver des fichiers et rediriger dans un TAR :
$ find . -type f -print0 | tar -czvf backup.tar.gz --null -T -
Exclure des répertoires courants :
$ find . -type f -print0 -not -path "." -not -path ".." | xargs -0 ...votre_commande...
Copier les fichiers (ex: csv) en préservant la structure des répertoires :
$ find . -name '*.csv' -exec cp --parents \{\} /target \;
vendredi 17 octobre 2008
Figer un paquet (debian-like)
Demander à figer un paquet :
# echo "nom_du_paquet hold" | dpkg --set-selections
Marquer un paquet pour installation :
# echo "nom_du_paquet install" | dpkg --set-selections
Voir le statut des paquets :
# dpkg --get-selections
# echo "nom_du_paquet hold" | dpkg --set-selections
Marquer un paquet pour installation :
# echo "nom_du_paquet install" | dpkg --set-selections
Voir le statut des paquets :
# dpkg --get-selections
Inscription à :
Commentaires (Atom)