# L'utilisateur Nextcloud’s command-line

> La commande occ de Nextcloud (origine de "ownCloud Console") est l'interface de ligne de commande de Nextcloud. Vous pouvez effectuer de nombreuses opérations courantes sur le serveur avec occ, comme l'installation et la mise à niveau de Nextcloud, la gestion des utilisateurs, le scan de fichiers, du cryptage, des mots de passe, des paramètres LDAP, etc...

### Trouver le bon utilisateur 

<p class="callout info">Pour utiliser l'interface ''occ'' il faut être préalablement connecté avec l'utilisateur disposant des droits. Pour connaître l'utilisateur qui possède les droits il faut se connecter dans le conteneur. </p>

#### Se connecter dans le conteneur

```shell
sudo docker exec -it nextcloud bash
```

#### Trouver l'interface occ

Une fois dans le conteneur, rechercher l'emplacement du fichier ''occ''. Il est généralement à l'emplacement suivant : `/var/www/nextcloud/occ` dans notre cas il est dans `/var/www/html/occ` .

Pour exécuter le script ''occ'' il faut utiliser `php` par conséquent il faudra effectuer la commande suivante :

```shell
root@980bf10821234:/var/www/html# php occ
Console has to be executed with the user that owns the file config/config.php
Current user id: 0
Owner id of config.php: 33
Try adding 'sudo -u #33' to the beginning of the command (without the single quotes)
If running with 'docker exec' try adding the option '-u 33' to the docker command (without the single quotes)
```

La commande nous retourne une erreur pour nous informer que nous essayons d'exécuter le script avec le mauvais utilisateur. Elle nous informe aussi que le bon utilisateur est l'utilisateur <span style="color: #3598db;">33</span>.

Pour lister les utilisateurs existants dans le conteneur on peux utiliser la même commande que pour un Linux.

`cat /etc/passwd` Ce qui nous retourne les lignes suivantes :

```shell
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
..
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
...
```

Dans notre cas l'utilisateur <span style="color: #3598db;">33</span> est `www-data`. Maintenant que nous connaissons le bon utilisateur, nous devons sortir de conteneur et se reconnecter en tant que l'utilisateur `www-data`.

### Se connecter en tant que

Pour se connecter ***en tant que*** dans un conteneur, il suffit de rajouter l'option `-u user_id` se qui donne la commande suivante :

```shell
sudo docker exec -it -u 33 nextcloud bash
```

#### Utiliser occ

Maintenant que nous sommes connecté avec le bon utilisateur nous pouvons exécuter l'invite de commande Nextcloud.

```shell
www-data@980bf1081234:~/html$ php occ
Nextcloud 23.0.0

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
      --no-warnings     Skip global warnings, show command output only
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
...
```