Root Owns Home Directory, chown не работает

12

Я использую Ubuntu 12.04 и имею различные проблемы. Я проследил это до того факта, что домашний каталог моего пользователя (/ home / user) принадлежит root.

Каталог / home на самом деле смонтирован на другом диске, но я вижу, что в fstab я монтирую только / home, а не / home / user:

UUID=DC56D19E56DX3233 /home ntfs user,exec 0 2

Команда chown ниже не работает:

sudo chown -R user /home/user

Это будет работать без ошибок, однако фактически не меняет владельца директории. Вот вывод ls -ldпосле выполнения команды:

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

Это то же самое, что было ранее.

DJElbow
источник
1
Можете ли вы добавить соответствующую строку из вашего /etc/fstabи / или выходных данных mountкоманды для вашего домашнего раздела (например 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
Таким образом, основная проблема может заключаться в том, что вы используете файловую систему не-linux (ntfs) для домашнего раздела, которая на самом деле не поддерживает разрешения для файлов в стиле * nix. Может быть возможно заставить его работать с подходящими параметрами маски файла на монтировании, но у меня нет никакого опыта делать это. Удачи.
Steeldriver
Да, вы смонтировали / home как файловую систему Windows, которая не поддерживается.
psusi

Ответы:

17

NTFS не поддерживает «владельцев» в стиле Unix, поэтому ядро ​​Linux вынуждено назначать владельца для всего тома - обычно root. В качестве альтернативы переносу всего домашнего каталога на EXT4, вы также можете передать право владения всем разделом определенному пользователю или группе, используя опции «uid» или «gid» для mount(или в fstab). В многопользовательской среде существуют проблемы с безопасностью, но я использовал этот метод на своем ноутбуке с двойной загрузкой.

Длинный путь внутри страницы руководства для mount( man mount), мы находим это в специфичных для файловой системы параметрах 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.

Ваша строка fstabбудет изменена на UUID=DC56D19E56DX3233 /home ntfs user,exec,uid=username,gid=group 0 2, и вы сможете редактировать umask, если хотите.

Mactrent
источник
3

Проблема, как упоминалось в комментариях, заключалась в том, что мой домашний каталог был смонтирован на другом жестком диске с файловой системой NTFS.

Я скопировал свой домашний каталог с помощью Deja Dup на внешний диск. Затем использовал gparted для форматирования внутреннего диска NTFS и изменения файловой системы на EXT4.

Затем я изменил / etc / fstab, чтобы он соответствовал новому UUID накопителя, и изменил «ntfs» на «ext4».

После перезагрузки мне пришлось нажать Ctrl + Alt + F1, чтобы войти в терминал. Там я смог использовать sudo chown -R user: user / home / user.

Затем я смог войти в GUI и восстановить мой домашний каталог, используя Deja Dup и резервную копию на моем внешнем диске.

Пока все работает отлично.

DJElbow
источник
1
К сожалению, у меня та же проблема, но я хочу, чтобы папка была также доступна из Windows. Поскольку я единственный пользователь, я буду менять владельца: группу всего раздела в соответствии с ответом Mactrent.
Флорбиус