====== Permissions ======
* 0 : **''- - -''** (aucun droit)
* 1 : **''- - x''** (exécution)
* 2 : **''- w -''** (écriture)
* 3 : **''- w x''** (écriture et exécution)
* 4 : **''r - -''** (lecture seule)
* 5 : **''r - x''** (lecture et exécution)
* 6 : **''r w -''** (lecture et écriture)
* 7 : **''r w x''** (lecture, écriture et exécution)
Calculateur Chmod : [[https://chmodcommand.com]]
===== Droits spéciaux =====
* **Setuid** : permet à un utilisateur d'exécuter le programme avec les droits du propriétaire, c'est ainsi que sudo nous permet d'exécuter des commandes en "root"
* **Setgid** : idem que le User-ID mais par rapport groupe
* **Sticky bit** : permet quant à lui de restreindre la suppression d'un fichier ou répertoire à son seul propriétaire
===== Niveau des permissions dans un serveur web =====
Au sein d'un serveur web, il est recommandé de mettre 644 pour les fichiers et 755 par défaut pour les dossiers (pour l’exécution : cd ).
* Passer de manière récursive tous les dossiers à 755 : find . -type d -exec chmod 755 {} \;
* Passer de manière récursive tous les ficihers à 644 : find . -type f -exec chmod 644 {} \;
Exemple de configuration des permissions dans le projet PrivateBin
#!/bin/sh
# directories of privatebin
pbpath='/var/www/privatebin/'
pbdata='/var/www/privatebin/data/'
# user, of PrivateBin and web server (may be the same, as explained above)
pbuser='php'
htgroup='www-data'
rootuser='root'
mkdir -p "$pbdata"
echo "chmod"
find "${pbpath}" -type f -print0 | xargs -0 chmod 0640
find "${pbpath}" -type d -print0 | xargs -0 chmod 0550
find "${pbdata}" -type f -print0 | xargs -0 chmod 0640
find "${pbdata}" -type d -print0 | xargs -0 chmod 0750
echo "chown"
chown -R ${rootuser}:${htgroup} "${pbpath}/"
chown -R ${pbuser}:${rootuser} "${pbdata}/"
Source : https://github.com/PrivateBin/PrivateBin/wiki/FAQ#what-are-the-recommended-file-and-folder-permissions-for-privatebin
===== Liens =====
* [[https://doc.ubuntu-fr.org/permissions]]
* [[https://tech.feub.net/2008/03/setuid-setgid-et-sticky-bit/]]