Проблема дозволу в папці / media / user не дозволяє мені отримати доступ до зовнішнього носія


11

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

Файлові системи чудово монтуються. Коли я входжу як корінь 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/

І це, мабуть, так і є.

Тож тут я застряг. Файлова система має для мене дозволи до кінця через дерево каталогів, але я не можу отримати доступ до одного файлу. Це те ж саме для компакт-дисків та USB-накопичувачів.

Хто може допомогти мені отримати доступ до мого дорогоцінного?

Ой, і до речі. Вищезгаданий потік говорить про ACL на цих /media/userпапках, позначених +після регулярних дозволів, як drwxr-x---+ 3 root root. Моя система цього не показує. Чи ACL у цих папках є стандартним для Ubuntu, чи у користувача відбуваються спеціальні речі, і я повинен переживати, що звідси виникла моя проблема?

Дякуємо за прочитане


1
Я використовую подвійну установку завантаження (16.04 та Win7) і бачу + в кінці дозволів папки / медіа / користувача. Тому я думаю, що звідки походить ваша проблема. Я знайшов ці ( 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"

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.