L'authorization sshfs è negata anche per l'utente root

Utilizzo sshfs per montare una cartella remota da un altro server al server locale. Il assembly della cartella remota funziona senza problemi utilizzando il seguente command:

sshfs -o allow_other someServerFromSSHConfig:/home/data/somefolder/ /some/local/folder 

Il problema è che non posso modificare il proprietario dei file utilizzando chown (indipendentemente dalle autorizzazioni root) che ho sempre:

 chown: changing ownership of '/somefolder/file.img': Permission denied 

L'utente che accede alla cartella è membro del gruppo di fusibili. Anche se aggiungo altre opzioni di assembly in sshfs per impostare il proprietario come userx:groupx non posso modificare le autorizzazioni usando userx e usando chown -R userx:groupx [...]

Mi aspetto di essere in grado di impostare le autorizzazioni utente per i file nelle cartelle montate ma questo non è il caso.

  • sshfs multi utenti
  • sshfs problema quando si perde la connessione
  • Migliorare le performance SSHFS quando riflette le modifiche nella directory host
  • Perché SSHFS non mi ha permesso di esaminare una directory montata?
  • ssh chiede la password nonostante il ssh-copy-id
  • Tutti i trucchi per fare sshfs autenticare solo per scrivere?
  • Come faccio a sudo over sshfs?
  • Mixing NFSv4 all_squash e sshfs accesso
  • 2 Solutions collect form web for “L'authorization sshfs è negata anche per l'utente root”

    Come ha detto nei commenti, si connette come data @ remote_server. Questo significa che non è ansible chown a tutti. Gli sshfs sono solo una astrazione abrasiva, è consentito solo alle azioni che si potrebbero eseguire all'interno di sftp data@remote_server Tutte le astrazioni sono perdute, anche questo.

    Solo root @ remote_server può chown su remote_server. Non import quale utente sei in server locale.

    Si noti che per sftp root@remote_server è necessario PermitRoot yes o PermitRoot without-password nel /etc/ssh/sshd_config del remote. È rischioso.

    PS. Per impostazione predefinita, sshd non consente di PermitRoot no root, a causa di PermitRoot no opzione PermitRoot no . Quindi normalmente non è ansible sshfs root @ remote_host. Se desideri testare il comportmento di chown tramite root, ti consiglio di impostare PermitRoot without-password . Ciò significa che la root può accedere quando una chiave pubblica viene aggiunta a /root/.ssh/authorized_keys . Con questa impostazione, root non è in grado di eseguire l'accesso solo fornendo una password di root, quindi è piuttosto sicuro.

    PS2. Se hai bisogno di una certa sicurezza, puoi impostare un'altra istanza di sshd solo per questa condivisione di file; con ForceCommand internal-sftp e con chroot sarebbe stata notevolmente aumentata la sicurezza di root, ma avrebbe bisogno di utilizzare una nuova port TCP e una nuova exception di firewall.

    Se si desidera impostare la properties; di file particolare per la cartella montata con sshfs, è necessario eseguire questa operazione usando uid=USER_ID_N,gid=USER_GID_N e idmap=user opzioni idmap=user .

    • uid, gid – set ha riportto la properties; dei file ai valori indicati; uid è l'ID utente numbersco dell'utente, gid è l'ID gruppo numbersco dell'utente.
    • idmap – utilizzare l'opzione idmap con il valore utente per tradurre UID dell'utente di connessione. # sshfs -o idmap=user sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876 sua mappa mappara UID dell'utente remoto "sessy" all'utente locale che esegue questo process ("root" sopra l'esempio) e GID rimane invariato.

    Una cosa da rendersi conto è che il tuo UID (User ID, il numero univoco del tuo utente in un sistema) non è necessariamente lo stesso sui due host. Quando si è ls -l, il nome utente associato a ciascun file viene printingto nella terza colonna. Tuttavia, nel file system, solo gli UID vengono memorizzati e cerca semplicemente l'UID e trova il nome utente associato ad esso. In Unix, gli UID sono ciò che conta, non i nomi degli utenti. Quindi, se sei 1000 sull'host locale e 1003 sull'host remoto, la directory montata con sshfs mostrerebbe un diverso nome utente per i file. Questo non è un problema, però, perché il server ssh del computer remoto è quello che effettua la lettura e la scrittura di file. Così anche se si presenta in ls -l come un UID diverso, le modifiche verranno eseguite tramite il server ssh sull'host remoto, che utilizzerà l'UID corretto per la macchina remota. Possono verificarsi problemi se si tenta di utilizzare un programma che guarda UID di file (ad esempio ls printing il nome utente errato).

    L'opzione idmap = user assicura che i file di properties; dell'utente remoto siano di properties; dell'utente locale. Se non si utilizza idmap = utente, i file nella directory montata potrebbero apparire di properties; di qualcun altro perché il computer e il computer remoto hanno idee diverse sull'ID utente numbersco associato a ciascun nome utente. idmap = l'utente non tradurrà gli UID per altri utenti.

    Citato da: https://help.ubuntu.com/community/SSHFS

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.