Eu encontrei um comportamento muito estranho que não sei como resolver: as permissões de ação dependem de onde o comando é executado.
Minha situação: configurei um servidor Nextcloud em um Raspberry Pi 4. O sistema funciona a partir de um cartão SD e a instância Nextcloud está em um SSD, executado via Docker (usando IOTstack). No que diz respeito ao Nextcloud, tudo funciona como esperado.
Quando quero listar o conteúdo da instância Nextcloud, posso usar a conta root como tal:
sudo ls -lh /media/pi/storage/IOTstack/volumes/nextcloud/html/data/solenoid/files
total 4.0K
drwxr-xr-x 3 www-data www-data 4K Nov 3 11:09 Documents
Claro, isso funciona por causa do root
. Quando tento a conta normal pi
, recebo o seguinte:
ls -lh /media/pi/storage/IOTstack/volumes/nextcloud/html/data/solenoid/files
ls: cannot access '/media/pi/storage/IOTstack/volumes/nextcloud/html/data/solenoid/files': Permission denied
Isso porque tudo pertence a www-data
, então eu tento como www-data
e recebo:
sudo -u www-data ls -lh /media/pi/storage/IOTstack/volumes/nextcloud/html/data/solenoid/files
ls: cannot access '/media/pi/storage/IOTstack/volumes/nextcloud/html/data/solenoid/files': Permission denied
Isso não é normal... Eu deveria conseguir ver os arquivos do usuário ao qual eles pertencem.
Tentei cd
no SSD montado ( storage
) e executei o comando novamente:
cd /media/pi/storage/
sudo -u www-data ls -lh ./IOTstack/volumes/nextcloud/html/data/solenoid/files
total 4.0K
drwxr-xr-x 3 www-data www-data 4K Nov 3 11:09 Documents
Por quê? Como as permissões dependem de onde o ls
comando é executado? Por que posso listar os arquivos de /media/pi/storage
e não de /home/pi
, como www-data
usuário? Deveria www-data
estar no pi
grupo?
Anteriormente eu tinha os dados armazenados no cartão SD, em /home/pi/IOTstack...
, mas queria armazenar meus arquivos em um local mais seguro, mantendo a opção de trocar o hardware. Eu não encontrei este problema.
A razão para acessar arquivos dessa maneira "bruta" é fazer backup deles pela rede para outra mídia de armazenamento.
Editar
Respondendo @kamil-maciorowski
namei -nom /media/pi/storage/IOTstack/volumes/nextcloud/html/data/solenoid/files
f: /media/pi/storage/IOTstack/volumes/nextcloud/html/data/solenoid/files
drwxr-xr-x root root /
drwxr-xr-x root root media
drwxr-x--- pi pi pi
drwxr-xr-x pi pi storage
drwxr-xr-x pi pi IOTstack
drwxr-xr-x pi pi volumes
drwxr-xr-x pi pi nextcloud
drwxrwx--- www-data root html
data - Permission denied