touch xwing.conf
puis ls -l xwing.conf
pour analyser les proprietaires et permissions actuelles. Changer le proprietaire/groupe si necessaire avec chown padawan:padawan xwing.conf
. Reverifier les modifications avec ls -l xwing.conf
touch private
, puis chmod ugo-rwx private
par exemple (on peut aussi le faire en plusieurs étapes)chmod u+r private
, puis chmod ug+w private
, puis chmod +x private
chmod ugo-rwx private
(ou chmod 000 private
)chmod 731 private
(car rwx-wx--x
s’écrit 731 en octal)chmod go-rx /home/padawan
chmod -R o-rwx ~/documents
par exemplemkdir /home/r2d2
, puis en tant que root : chown r2d2 /home/r2d2
puis chmod go-rx /home/r2d2
devrait suffir (eventuellement enlever le w
aussi)touch /home/r2d2/droid.conf
puis par exemple cd /home/r2d2
et chown r2d2:droid ./droid.conf
/home/r2d2/
) touch beep.wav boop.wav blop.wav
puis chown r2d2 *.wav
et, par exemple, chmod go-x *.wav
et chmod u+x *.wav
mkdir secrets
puis touch secrets/nsa.pdf
(eventuellement mettre du texte dans secrets/nsa.pdf
). Ensuite : chmod -r secrets/
desactive le listage des fichiers dans secrets/
… pourtant, il est possible de faire cat secrets/nsa.pdf
!chown
en tant que padawan
, le système refusera ! (On ne peut pas donner ses fichiers à quelqu’un d’autre)setfacl g:droid:r-x /home/padawan
puis faire ls -l
sur le dossier et constater le +
à la fin des permissions. On peut regarder le détails des ACL avec getfacl /home/padawan
setfacl u:padawan:r-x /home/r2d2
sleep 30
puis Ctrl+Z et bg
pour mettre la commande en arrière plan. Constater que vous pouvez de nouveau taper des commandes. Faire jobs
dans les secondes qui suivent et constater que la commande est toujours ‘Running’. Appuyer sur ‘Entrée’ régulièrement pendant les secondes qui suivent jusqu’à ce que ‘Done’ s’affiche.sleep 30
puis Ctrl+Z et bg
pour mettre la commande en arrière plan. Constatez que vous pouvez de nouveau taper des commandes. Avant que la commande ne se termine (au bout des 30 secondes), faire fg
pour récupérer la main sur le sleep
puis faites Ctrl+C.sleep 30 &
et constater que vous pouvez taper des commandes. Noter aussi que la console a affiché le PID du programme correspondant au sleep
. Utiliser ce PID pour tuer le programme avec kill <PID>
.sleep 700000
(par exemple) puis faire ps -ef
dans un autre terminal et constater que le processus est bien listé (vous pouvez aussi utiliser ‘top’ et les fleches)ps -ef
utiliser précédemment, vous pouvez trouver le PPID (parent PID) à côté du PID. Vous pouvez regarder dans le reste de la liste pour checher le programme correspondant à ce PPID (apriori il s’apelle ‘bash’).kill <PID>
ou kill -9 <PID>
pour tuer le shell. Vous devriez constater que la session est détruite.screen
et dedans, sleep 30
. Faites Ctrl+A
puis D
pour détacher la session. Eventuellement screen -list
pour lister les sessions screen. Depuis un autre terminal, faites screen -r
et constatez que vous récupérez bien le shell ou vous aviez lancé sleep 30
.ps -ef
ou ps -ef --forest
, vous devriez voir le processus sleep 30
(ou relancez le si il a déjà terminé). Son parent devrait être un bash
. Après avoir trouvé le PID de ce parent, faites kill -9 <PID>
pour tuer cette session. Vous deviez constater que la session est détruite.top
: celui tout en haut consomme actuellement le plus de CPU. Si vous appuyez sur Shift+M
, les programmes seront maintenant trié par utilisation de la RAM.openssl speed -multi 4
, puis relancer top
: vous devriez voir que 4 processus consomment maintenant beaucoup de CPUnice -n 19 ls /bin
: vous devriez voir que cette commande est trèèèès longue.renice +10 <PID>
pour changer leur niceness. En utilisant top
, la colonnee ‘NI’ devrait maintenant indiquer une niceness différente de 0. Après avoir réduit la niceness de ces processus, relancer nice -n 19 ls /bin
devrait être un peu plus rapide.pkill openssl
PS1="[\033[01;32m\u on \h\033[0m:\033[01;34m\w\033[0m] \n> "
~/.bashrc
à l’aide de nano puis recharger avec source ~/.bashrc
echo "May the source be with you
/root/.bashrc
avec nano (et possiblement sudo) puis rajouter une ligne pour modifier le PS1, comme :PS1="[\033[01;31m\u on \h\033[0m:\033[01;34m\w\033[0m] \n> "
(noter la couleur ‘31’ = rouge)
ll
pour tester si la commande existe. Si elle n’existe pas, rajouter alias ll='ls -l'
dans le bashrc puis le recharger avec source
. Pour s’assurer que ls
utiliser --color=auto
par défaut, taper alias ls
.alias suls='sudo ls -la'
(par exemple) et alias sucat='sudo cat'
. Tester en tant que padawan de taper suls /root
et sucat /etc/shadow
(ou d’autres dossiers / fichiers accessibles uniquement par root).alias r2d2="sudo su r2d2"
puis tester de taper r2d2
.alias ls="echo 'G pas envie'"
echo "hello, howdy ?!" > hello.txt
ls /usr/bin/ > files.tmplist
puis less files.tmplist
mkdir ./dev; mkdir ./dev/bash; echo "Je fais du bash !" > ./dev/bash/intro
6*7
ligne par ligne dans un fichier comme calc.txt
puis lancer bc < calc.txt
. On peut aussi faire bc <<< "6*7"
curl -L fr.wikipedia.org > wikipedia.html >/dev/null 2>&1 || echo "ça n'a pas marché !"
touch /tmp/chat
chmod +w /tmp/chat
tail -f /tmp/chat &
puis faire echo "beep boop" >> /tmp/chat
depuis d’autres terminaux (attention, il y a deux chevrons !).
Il est possible de créer l’alias say
qui parle dans le chat avec :
alias say="echo [$USER] >> /tmp/chat"
alias grep
pour verifier que l’alias existe, sinon ajouter alias grep="grep --color=auto"
au .bashrc
et le recharger.cat /etc/passwd | grep "/bin/bash"
cat /etc/passwd | grep "/bin/bash" | tr ':' ' ' | awk '{print $1}'
(on peut aussi utiliser awk -F:
, ou la commande cut
)cat /etc/passwd | grep "nologin$" | tr ':' ' ' | awk '{print $1}'
:x:
sur la ligne (ou eventuellement un :!:
) dans /etc/shadow
. On utilise alors un grep ‘inversé’ (-v
) pour obtenir les lignes des utilisateurs qui ont vraiment un mot de passe. On utilise aussi un “ou” dans grep (avec \|
) pour ignorer à la fois les lignes contenant :!:
et :x:
.sudo cat /etc/shadow | grep -v ":\!:\|:x:" | awk -F: '{print $1}'
alias esquecestleweekend='date | grep "^Sat \|^Sun " >/dev/null && echo "Cest le weekend" && echo "Cest le weekend" || echo "Il faut encore taffer!"
^$
(début de ligne suivi de fin de ligne) donc : cat /etc/login.defs | grep -v "^$"
Pour enlever également les commentaires, on utilise un “ou” dans grep (\|
), ce qui donne : cat /etc/login.defs | grep -v "^$\|^#"
dpkg-query --status vim | grep -q 'Status: install ok installed' && echo Oui || echo Non
grep -nr "daemon" /etc/
who | grep -q r2d2 && echo "R2d2 est là !" || echo "Mais que fais r2d2 ?!"
ps -ef | grep -v "UID" | awk '{print $1}' | sort | uniq -c
cat loginattempts.log | awk '{print $9}' | sort | uniq -c | sort -n
img.list
:curl yoloswag.team \
| grep "img src" \
| sed 's/img src/\n[img]/g' \
| grep "\[img\]" \
| tr '<>"' ' ' \
| awk '{print $2}' \
> img.list