Решение проблем с разрешениями при использовании внешнего жесткого диска EXT4 с несколькими установками Linux


18

У меня есть внешний жесткий диск, и так как я использую только Ubuntu и Fedora, я решил отформатировать жесткий диск в ext4, все в порядке.

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

Какое разрешение я должен использовать? адм мое имя пользователя?

Ответы:


5

Хм, хотя это может быть от меня, мне придется ответить на вопрос другим вопросом. Если все, о чем мы говорим, это для одной ОС, то это будет либо

sudo chown -R (user name) /dev/(device name)

( убунту )

или просто

chown -R (user name) /dev/(device name)

fedora - нетsudo, просто запустите команду от root.

Часть, касающаяся лапши, и часть, на которую у меня нет хороших ответов, состоит в том, как сделать это так, чтобы вам не приходилось вручную перепечатывать, когда вы перемещаетесь между дистрибутивами. Я бы почти соблазнился добавить строку в мою ~/.bashrc, но, вероятно, есть лучший способ, о котором я не знаю или еще не думал.


Это то, что мне нужно, чтобы изменить разрешение каждый раз, когда я меняю дистрибутив
Хавьер Гонсалес

1
Просто чтобы удостовериться и удовлетворить свой собственный интеллектуальный интерес, я вернулся и перепроверил с USB-накопителем EXT4, который у меня есть. Я не знал, является ли владение устройством тем же, что и владение файловой системой, и это так. sudo chown -R (имя пользователя) / dev / (имя устройства) позволяет вам владеть всеми файлами на диске, даже если вы их не создавали.
user2367

Да, если не считать добавления строки в ~ / .bashrc, чтобы она запускалась автоматически при каждом запуске терминала, у меня нет ответа на этот вопрос. Может быть, можно добавить его в cron? Но, похоже, должен быть способ организовать его запуск при загрузке дистрибутива.
user2367

Я действительно люблю ext4, но это дерьмо, постоянно меняй разрешение, ха-ха
Хавьер Гонсалес,

10

Самое простое решение - убедиться, что ваши учетные записи пользователей Ubuntu и Fedora имеют одинаковый идентификатор пользователя (UID).

Я думаю, что Fedora запускает учетные записи пользователей по умолчанию с 500, в то время как Debian и Ubuntu запускают их с 1000, поэтому весьма вероятно, что в одной ОС вы используете номер 500, а в другой - номер 1000. Файловая система использует этот номер UID. отслеживать разрешения, поэтому, если вы убедитесь, что они имеют одинаковый UID, они будут считаться одним и тем же пользователем, и проблем с разрешениями не возникнет.

Я думаю, что лучшее, что вы можете сделать, это сделать их UID = 1000, поэтому измените UID в системе Fedora, а затем убедитесь, что все файлы на внешнем диске и в $ HOME пользователя в установке Fedora принадлежат UID 1000. После что у вас больше не должно быть проблем с разрешением.


Да, я сделаю это, спасибо за ваше время :)
Хавьер Гонсалес

1
Пожалуйста, прочитайте мое дополнение, иначе пользователь Fedora не сможет войти!
Янв

Все ясно, я собираюсь проверить это прямо сейчас, также спасибо за редактирование названия вопроса, теперь очень ясно.
Хавьер Гонсалес

3

В / etc / fstab вы можете указать uid = 1000 (в Ubuntu - это 500 в Fedora), чтобы диск принадлежал вашему пользователю (при условии, что вы первый пользователь, yada yada yada ... если нет, ваш пользователь uid from id) и umask = 000, если вы хотите, чтобы у всех пользователей был доступ (или 077 только для того, который указан uid = - это маска, поэтому вы ставите противоположность тому, что вы бы использовали в chmod)

Для получения дополнительной информации об использовании / etc / fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html


1
Если я установил разрешение на 077, мне не нужно повторно менять разрешение при переходе с Ubuntu на Fedora?
Хавьер Гонсалес

@Dracirate: я думаю, что вам может понадобиться 000, а не 077. Если вы добавите запись fstab для диска в каждую систему (как Ubuntu, так и Fedora), они автоматически смонтируют ее, чтобы ее можно было использовать.
Мак

3

К сожалению, ядро ​​Linux обеспечивает разрешение POSIX на ext2 / ext3 / ext4 FS.

Вы можете обойти разрешение POSIX с разделяемой группой. Я задаю соответствующий вопрос: /unix/273144/predefined-group-ids-across-linux-distros/ но все-таки я провел собственное исследование.

Я обнаружил, что группа sys разделяет id 3 в Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.

При таком открытии одно решение может выглядеть так:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

и вид этого (всякий раз, когда вы используете Linux / FreeBSD / MacOSX / Solaris):

$ sudo adduser user sys

Смотрите также:


С помощью этого метода, выполнение cd /mnt/data/dir; touch example.txt; ls example.txt ... показывает ... -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt. Выполнение позже mv example.txt ~; ll ~/example.txt... показывает ... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txt, с этим +в конце разрешений. Таким образом, многие из +них в конечном итоге появятся во многих местах, что заставит людей задуматься, почему эти файлы особенные (просто потому, что они были скопированы / перемещены из определенной папки). Есть ли способ прекратить производить их +автоматически?
Гантон

2

Вы можете просто попробовать использовать exfat или ntfs. Для меня это работает так. Но я не знаю, работает ли он с каждым разрешением файла. Думаю, нет.


2

Это небольшое изменение в подходе @ gavenkoa к использованию общих групп, и оно не требует модификации подключенного диска.

Проверьте, какой идентификатор группы (GID) используется в смонтированном диске.

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

Допустим, вы видите нечто похожее на следующее:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

Это означает, 12000что это текущий GID данных на диске, и данные могут быть прочитаны и выполнены (но не могут быть записаны) любым другим пользователем группы. Создайте новую группу (например, driveusers) и добавьте текущего пользователя в новую группу:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive

1

Я нашел это другие решения:

/unix/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

/unix//a/273705

С этим:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

и вкус этого:

sudo adduser user sys  

Ваш пользователь сможет читать / записывать любые файлы /dir.

@jadelord @ gavenkoa Как вы думаете, есть ли какие-либо улучшения, которые могут быть сделаны в настоящее время в ваших предлагаемых решениях для пользователей Ubuntu (или Fedora)? Благодарность

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.