Проблема с правами доступа к папке / media / user не позволяет мне получить доступ к внешнему носителю

11

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

Файловые системы монтируются нормально. Когда я вхожу в систему как пользователь root sudo su, я вижу содержимое /media/casper/externaldriveсовершенно нормально. Мой пользователь, однако, casperне может. Ubuntu отвечает на все действия, связанные с локацией Permission denied:

casper@casper-desktop:/media$ ll /media/casper/externaldrive
ls: cannot access '/media/casper/externaldrive': Permission denied

Я решил покопаться в разрешении (проблемах) /mediaпапки. Как casper, я вижу следующее:

casper@casper-desktop:/media$ ls -alF
total 16
drwxr-xr-x  4 root root 4096 apr 21 17:47 ./
drwxr-xr-x 25 root root 4096 jul 29 15:43 ../
drwxr-x---  3 root root 4096 aug  3 21:02 casper/
lrwxrwxrwx  1 root root   45 apr 21 17:47 .directory -> /etc/kubuntu-default-settings/directory-media
lrwxrwxrwx  1 root root   42 apr 21 17:47 .hidden -> /etc/kubuntu-default-settings/hidden-media
drwxr-xr-x  2 root root 4096 feb 29 23:56 home/

Что меня поразило, так это total 16то, что там написано , в то время как есть только 6 списков. Так что я снова запустил команду, но как root. Результат был такой же, странный. (Может ли кто-нибудь просветить меня об этом?)

В любом случае, меня поразило еще больше то, что /media/casperкаталог не мой и к нему я не могу получить доступ. Я chown -Rиспытал искушение только базинками из этого, но после того, как я взял себя в руки, я гуглил что-то вроде «Папка пользователя мультимедиа, не моя, помогите мне».

Это заняло некоторое время, но в конце концов я наткнулся на эту ветку, где пользователи объясняют назначение 750 root:root /media/userпапок. Он гарантирует, что только root может монтировать, просматривать и управлять там файловыми системами, индивидуальные права доступа для которых изменены.

Так что, если моя информация была правильной, /media/casper/externaldriveразрешения должны быть благоприятными для меня. Я проверил,

root@casper-desktop:/media/casper# ll
total 12
drwxr-x--- 3 root   root   4096 aug  3 21:02 ./
drwxr-xr-x 4 root   root   4096 apr 21 17:47 ../
drwxrwxrwx 1 casper casper 4096 aug  3 20:20 externaldrive/

И это похоже на случай.

Так вот где я застрял. Файловая система имеет разрешения для меня на всем протяжении дерева каталогов, но я не могу получить доступ к одному файлу. Это то же самое для CD и USB-накопителей.

Кто может помочь мне получить доступ к моей драгоценности?

Да, и кстати. Вышеупомянутый поток говорит об ACL для этих /media/userпапок, обозначенных +после обычных разрешений, вроде drwxr-x---+ 3 root root. Моя система не показывает это. Является ли ACL для этих папок стандартным для Ubuntu, или у пользователя происходят особые события, и я должен волноваться, что именно отсюда моя проблема?

Спасибо за прочтение.

MicroParsec
источник
1
Я использую настройку двойной загрузки (16.04 и Win7) и вижу + в конце разрешений папки / media / user. Так что я думаю, что отсюда твоя проблема. Я нашел их ( 1 , 2 ) через Google, но раньше я не использовал acl, чтобы узнать, достаточно ли их для решения вашей проблемы.
Карсус
2
В lsобщие блоки подсчета 1Kb используемые файлы в каталоге, нерекурсивно. См. Unix.stackexchange.com/a/4110/44281 .
amotzg
@Karsus Спасибо, я думаю, ты нашел мою проблему. Я собираюсь попробовать ответ Занны ниже и буду держать вас в курсе. @ amotzg Ага, это проясняет ситуацию. Спасибо :)
MicroParsec
Просто из любопытства, что означает «3» drwxr-x--- 3*?
thephoenix01

Ответы:

15

Так как разрешения и владение /media/casperявляются

drwxr-x---  root root 

Без +ACL (списков контроля доступа ) ясно, что только root может открывать, вводить, читать или записывать в этот каталог. Скромные пользователи, такие как мы, получают разрешения в конце строки ---:(

Мы, непривилегированные люди, получаем разрешение на доступ к этому месту с помощью ACL. Я не уверен, почему у вас их уже нет, но вы можете их настроить, что может быть просто или потребовать немного повозиться:

  • aclпакет требуется (проверка apt-cache policy acl)
  • файловая система должна быть смонтирована с aclопцией

Чтобы проверить последнее (замените sdxYсоответствующим образом для вашего корневого раздела):

sudo tune2fs -l /dev/sdxY | grep "Default mount options:"

должен вернуть:

Default mount options:    user_xattr acl

Параметры монтирования по умолчанию установлены в /etc/mke2fs.conf

Они могут быть переопределены, поэтому проверьте:

cat /proc/mounts | grep sdxY

выглядит примерно так:

/dev/sdxY / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

Вышеприведенное хорошо ( aclне нужно упоминать), но если оно говорит, что noaclвы должны изменить его.

Вы можете добавить опцию к опциям монтирования по умолчанию, например так:

sudo tune2fs -o acl /dev/sdxY

Или вы можете добавить aclк параметрам строки корневого раздела, /etc/fstabнапример:

UUID=whatever /     ext4    errors=remount-ro,acl    0       1

С включенными списками ACL используйте setfaclдля добавления разрешений для себя. Чтобы предоставить usernameразрешения на чтение и выполнение для / media / casper (вам нужно разрешение на выполнение, чтобы войти в каталог или выполнить поиск по его содержимому):

sudo setfacl -m u:username:rx /media/casper

Вы можете заменить usernameна uid (вероятно, вы 1000- проверьте с помощью idкоманды)

sudo setfacl -m u:1000:rx /media/casper

чтобы увидеть разрешения ACL, которые вы используете, getfaclкак Оли сделал в своем ответе

getfacl /media/casper

Чтобы удалить разрешения ACL от пользователя

sudo setfacl -x u:username /media/casper

Чтобы очистить все разрешения ACL

sudo setfacl -b /media/casper

Примечание: я обманул и сам задал вопрос о том, почему в нем так много записей /media. Ответ здесь

Занна
источник
1
Спасибо @Zanna: apt-cache policy aclвозвращает ACL установлен и последний. Default mount optionsупоминает acl. cat /proc/mountне упоминает noacl. Поэтому я думаю, что мне нужно добавить разрешения ACL вручную, так как по какой-то причине они не созданы. Я использовал команды, которые вы описали, чтобы дать себе разрешения rx для /media/casperкаталога, и я рад сообщить, что снова могу получить доступ к своему внешнему носителю. Спасибо, Занна!
MicroParsec
Да, рад, что вы это исправили: D
Zanna
2

Когда вы хотите дать разрешение на доступ к диску Windows из Ubuntu

Обычная chmodкоманда не будет работать, если это диск Windows NTFS.

Следующее работает для меня.

Откройте файл /etc/mtab:

gedit /etc/mtab

Найдите имя диска в этом файле (просто наведите курсор мыши на диск, для которого вы ищете решение, в моем случае графический интерфейс пользователя показывает другое имя, а при наведении курсора мыши на него /media/user-name/drive-name)

Сейчас в /etc/mtab:

Найдите имя диска в файле и проверьте, к какому диску относится ваш подключенный диск (в моем случае - /dev/sda4)

Теперь смонтируйте этот диск с помощью:

sudo ntfs-3g /dev/sda4 /media/"$USER"

Теперь я могу выполнить свои исполняемые файлы, но не смогу увидеть содержимое имени диска, поэтому я размонтировал диск и снова подключил его.

Hridaynath
источник