# Permissions

#### Quelques commandes:

- su - temporarily become the superuser
- sudo - temporarily become the superuser
- chmod - modify file access rights
- chown - change file ownership
- chgrp - change a file's group ownership



```
  -rwxrwxrwx

  [- (fichier) ou d (dossier)] [rwx (possesseur) - rwx (groupe) - rwx (autres)]


```



#### chmod: change les permissions pour un fichier ou un dossier

```
rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx —–- -–— = 111 000 000
```

et

```
rwx = 111 in binary = 7
rw- = 110 in binary = 6
r-x = 101 in binary = 5
r–- = 100 in binary = 4
```

**Les réglages les plus courants:**

*-applications:* 

```
777 (rwxrwxrwx)
755 (rwxr-xr-x)
700 (rwx——)
```

*-fichiers:* 

```
666 (rw-rw-rw-)
644 (rw-r–r–)
600 (rw——-)
```

**Permissions pour les dossiers:**

- r: permet de lister le contenu d'un répertoire si l'attribut x est mis

- w: les fichiers à l'intérieur du répertoire peuvent être crées, effacés ou renommer si l'attribut x est mis
- x: permet d'entrer dans le répertoire (cd dir)

```
777 (rwxrwxrwx)
755 (rwxr-xr-x)
700 (rwx——)
```



```bash
bruno@macbook-pro:~$ ls -la
-rw-r--r--@  1 bruno  staff   848  6 aoû 09:20 backup-syno.tar.gz
bruno@macbook-pro:~/test-dossier-2$ chmod 777 backup-syno.tar.gz
bruno@macbook-pro:~$ ls -la
-rwxrwxrwx@  1 bruno  staff   848  6 aoû 09:20 backup-syno.tar.gz
```



#### chown: change le possesseur d'un fichier ou dossier (superuser)

```bash
bruno@macbook-pro:~$ ls -la
-rwxrwxrwx@ 1 bruno staff 848 6 aoû 09:20 backup-syno.tar.gz
bruno@macbook-pro:~$ sudo chown root backup-syno.tar.gz
Password:
bruno@macbook-pro:~$ ls -la
-rwxrwxrwx@ 1 root staff 848 6 aoû 09:20 backup-syno.tar.gz
```



#### chgrp: change le groupe d'un fichier ou dossier (superuser)

```bash
bruno@macbook-pro:~$ ls -la
-rwxrwxrwx@ 1 root staff 848 6 aoû 09:20 backup-syno.tar.gz
bruno@macbook-pro:~$ sudo chgrp admin backup-syno.tar.gz
bruno@macbook-pro:~$ ls -la
-rwxrwxrwx@ 1 root admin 848 6 aoû 09:20 backup-syno.tar.gz
```



#### setuid:

```
# chown root:root monshell.sh
# chmod 4755 monshell.sh
# exit
$ ./monshell.sh
```



#### Voir les autorisations au format octal:

 **-Linux:**

```bash
stat -c '%n %a' *
```

 **-OSX**:

```bash
bruno@Parallels-VM ~ $ stat -c '%n %a' *
apt-off.sh 755
Bureau 755
Documents 755
Images 755
```
