Root Owns Home Directory, chown ne fonctionne pas

12

J'utilise Ubuntu 12.04 et j'ai divers problèmes. Je l'ai retracée au fait que le répertoire personnel de mon utilisateur (/ home / user) appartient à root.

Le répertoire / home est en fait monté sur un autre lecteur, mais je peux voir que dans fstab je monte uniquement / home et non / home / user:

UUID=DC56D19E56DX3233 /home ntfs user,exec 0 2

La commande chown ci-dessous ne semble pas fonctionner:

sudo chown -R user /home/user

Cela fonctionnera sans erreur, mais cela ne change pas réellement la propriété du répertoire. Voici la sortie de ls -ldaprès avoir exécuté la commande:

drwxrwxrwx 1 root root 20480 Sep 25 00:07 /home/user

C'est le même que précédemment.

DJElbow
la source
1
Pouvez-vous ajouter la ligne appropriée à partir de votre /etc/fstabet / ou de la sortie de la mountcommande pour votre partition domestique (par exemple mount | grep 'home'?
steeldriver
mount | grep home-> / dev / sdb1 on / home type fuseblk (rw, nosuid, nodev, allow_other, blksize = 4096)
DJElbow
cat /etc/fstab-> UUID = DC56D19E56DX3233 / home ntfs user, exec 0 2
DJElbow
1
Ainsi, le problème sous-jacent semble être que vous utilisez un système de fichiers non-linux (ntfs) pour votre partition domestique - qui ne prend pas vraiment en charge les autorisations de fichiers de style * nix. Il peut être possible de le faire fonctionner avec des options de masque de fichier appropriées sur le support, mais je n'ai aucune expérience de cela. Bonne chance.
Steeldriver
Oui, vous avez monté votre / home comme un système de fichiers Windows qui n'est pas une configuration prise en charge.
psusi

Réponses:

17

NTFS ne prend pas en charge les «propriétaires» de style Unix, donc le noyau Linux est obligé d'attribuer un propriétaire pour le volume entier - normalement, root. Au lieu de déplacer l'intégralité de votre répertoire personnel vers EXT4, vous pouvez également attribuer la propriété de la partition entière à un utilisateur ou à un groupe spécifique en utilisant les options 'uid' ou 'gid' pour mount(ou dans fstab). Il y a des implications de sécurité dans un environnement multi-utilisateurs, mais j'ai utilisé cette méthode sur mon ordinateur portable à double démarrage.

Un long chemin à l'intérieur de la page de manuel de mount( man mount), nous trouvons cela sous les options spécifiques au système de fichiers pour NTFS:
uid=value, gid=value and umask=value
Set the file permission on the filesystem. The umask value is given in octal. By default, the files are owned by root and not readable by somebody else.

Votre ligne fstabserait alors changée en UUID=DC56D19E56DX3233 /home ntfs user,exec,uid=username,gid=group 0 2, et vous seriez libre de modifier le umask si vous le vouliez.

Mactrent
la source
3

Le problème, comme mentionné dans les commentaires, était que mon répertoire personnel était monté sur un autre disque dur avec un système de fichiers NTFS.

J'ai sauvegardé mon répertoire personnel avec Deja Dup sur un disque externe. Puis utilisé gparted pour formater le lecteur NTFS interne et changer le système de fichiers en EXT4.

Ensuite, j'ai changé / etc / fstab pour correspondre au nouvel UUID du lecteur et changé "ntfs" en "ext4".

Après le redémarrage, j'ai dû appuyer sur Ctrl + Alt + F1 pour me connecter à un terminal. J'ai pu utiliser sudo chown -R user: user / home / user.

J'ai ensuite pu me connecter à l'interface graphique et restaurer mon répertoire personnel à l'aide de Deja Dup et de la sauvegarde sur mon disque externe.

Jusqu'à présent, tout fonctionne très bien.

DJElbow
la source
1
Malheureusement, j'ai le même problème mais je veux que le dossier soit également accessible à partir de Windows. Comme je suis le seul utilisateur, je changerai le propriétaire: groupe de la partition entière selon la réponse de Mactrent.
flurbius