Masalah izin pada / media / folder pengguna mencegah saya mengakses media eksternal

11

Ketika saya mencolokkan hard drive eksternal saya, memasukkan DVD, atau mencoba melihat apa yang saya dapatkan di USB drive saya, perilaku aneh adalah hasil yang biasa.

Sistem file terpasang dengan baik. Ketika saya login sebagai root through sudo su, saya bisa melihat isi dari /media/casper/externaldrivefine fine. Namun pengguna saya casper, tidak bisa. Ubuntu membalas setiap tindakan yang melibatkan lokasi Permission denied:

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

Saya memutuskan untuk melakukan penggalian ke dalam izin (masalah) /mediafolder. Seperti casper, saya melihat yang berikut:

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/

Apa yang mengejutkan saya adalah bahwa katanya total 16, sementara hanya ada paling banyak 6 daftar. Jadi saya menjalankan perintah lagi, tetapi sebagai root. Hasilnya sama, aneh. (Adakah yang bisa memberi tahu saya tentang ini?)

Bagaimanapun, yang lebih mengejutkan saya adalah bahwa /media/casperdirektori tersebut bukan milik saya dan juga tidak dapat diakses oleh saya. Saya tergoda untuk hanya chown -Rbazinkas keluar dari itu, tetapi setelah saya menguasai diri saya googled sesuatu seperti "folder pengguna Media bukan milikku membantu saya".

Butuh beberapa saat tetapi akhirnya saya menemukan utas ini , di mana pengguna menjelaskan tujuan 750 root:root /media/userfolder. Itu memastikan hanya root yang bisa me-mount, melihat dan mengelola sistem file di sana, di mana izin individu diubah ke pengguna yang sebenarnya.

Jadi, jika informasi saya benar, /media/casper/externaldriveizin harus menguntungkan bagi saya. Saya memeriksa,

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/

Dan sepertinya inilah masalahnya.

Jadi di sinilah aku terjebak. Filesystem memiliki izin untuk saya sepanjang jalan melalui pohon direktori, namun saya tidak dapat mengakses satu file. Ini sama untuk drive CD dan USB.

Siapa yang dapat membantu saya mengakses barang berharga saya?

Oh, dan omong-omong. Utas yang disebutkan di atas berbicara tentang ACL pada /media/userfolder ini , yang ditunjukkan oleh +setelah izin reguler, seperti drwxr-x---+ 3 root root. Sistem saya tidak menunjukkan ini. Apakah ACL pada folder-folder ini standar untuk Ubuntu atau apakah pengguna memiliki hal-hal khusus yang terjadi, dan haruskah saya khawatir bahwa dari sinilah masalah saya berasal?

Terima kasih sudah membaca.

MicroParsec
sumber
1
Saya menggunakan pengaturan dual boot (16,04 dan Win7) dan saya melihat tanda + di akhir izin folder / media / pengguna. Jadi saya pikir dari sanalah masalah Anda berasal. Saya menemukan ini ( 1 , 2 ) melalui googleing tetapi saya belum pernah menggunakan acl sebelumnya untuk mengetahui apakah mereka cukup untuk menyelesaikan masalah Anda.
Karsus
2
Jumlah lstotal blok 1kB digunakan oleh file dalam direktori, non-rekursif. Lihat unix.stackexchange.com/a/4110/44281 .
amotzg
@ Karus Terima kasih, saya pikir Anda telah menemukan masalah saya. Saya akan mencoba jawaban Zanna di bawah ini dan akan membuat Anda terus diperbarui. @ amotzg Aha, itu beres. Terima kasih :)
MicroParsec
Karena penasaran, apa arti "3" drwxr-x--- 3*?
thephoenix01

Jawaban:

15

Karena izin & kepemilikan /media/casperadalah

drwxr-x---  root root 

Tanpa +untuk ACL ( Access Control Lists ) jelas bahwa hanya root yang dapat membuka, memasukkan, membaca atau menulis ke direktori ini. Pengguna yang rendah hati seperti kami mendapatkan izin di akhir string ---:(

Kami orang-orang yang tidak beruntung mendapatkan izin untuk mengakses lokasi ini dengan ACL. Saya tidak yakin mengapa Anda belum memilikinya, tetapi Anda dapat mengaturnya, yang mungkin sederhana atau memerlukan sedikit mengutak-atik:

  • yang aclpaket diperlukan (cek apt-cache policy acl)
  • sistem file harus dipasang dengan aclopsi

Untuk memeriksa yang terakhir (ganti sdxYpartisi root Anda dengan tepat):

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

harus kembali:

Default mount options:    user_xattr acl

Opsi pemasangan standar ditetapkan /etc/mke2fs.conf

Mungkin ditimpa, jadi periksa:

cat /proc/mounts | grep sdxY

terlihat seperti:

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

Di atas baik-baik saja, ( acltidak perlu disebutkan) tetapi jika dikatakan noaclAnda perlu mengubahnya.

Anda dapat menambahkan opsi ke opsi pemasangan default seperti ini:

sudo tune2fs -o acl /dev/sdxY

Atau Anda dapat menambahkan aclopsi untuk baris partisi root /etc/fstabmisalnya:

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

Dengan ACL diaktifkan, gunakan setfacluntuk menambahkan izin untuk Anda sendiri. Untuk memberikan usernameizin baca dan eksekusi di / media / casper (Anda perlu menjalankan izin untuk masuk ke direktori atau mencari isinya):

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

Anda dapat mengganti usernamedengan uid (mungkin Anda 1000- periksa dengan idperintah)

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

untuk melihat izin ACL yang Anda gunakan getfaclseperti yang dilakukan Oli dalam jawabannya

getfacl /media/casper

Untuk menghapus izin ACL dari pengguna

sudo setfacl -x u:username /media/casper

Untuk menghapus semua izin ACL

sudo setfacl -b /media/casper

Catatan: Saya menipu dan mengajukan pertanyaan sendiri tentang mengapa ada begitu banyak entri di /media. Jawabannya ada di sini

Zanna
sumber
1
Terima kasih @Zanna: apt-cache policy aclpengembalian ACL diinstal dan terbaru. Default mount optionsmenyebutkan acl. cat /proc/mounttidak disebutkan noacl. Jadi saya kira saya perlu menambahkan izin ACL secara manual sekarang, karena beberapa alasan mereka belum dirapikan. Saya menggunakan perintah yang Anda jelaskan untuk memberi saya rx izin untuk /media/casperdirektori dan saya senang mengatakan saya dapat mengakses media eksternal saya lagi. Zanna terima kasih!
MicroParsec
Yay, senang Anda memperbaikinya: D
Zanna
2

Saat Anda ingin memberikan izin akses ke drive Windows dari Ubuntu

chmodPerintah normal tidak akan berfungsi jika itu adalah drive Windows NTFS.

Berikut ini berfungsi untuk saya.

Buka file /etc/mtab:

gedit /etc/mtab

Temukan nama drive di file ini (cukup arahkan mouse ke drive yang Anda cari solusinya, dalam kasus saya GUI menunjukkan nama yang berbeda dan mouse di atasnya menunjukkan /media/user-name/drive-name)

Sekarang di /etc/mtab:

Cari nama drive dalam file, dan periksa drive mana yang dipasang pada drive Anda (dalam kasus saya - /dev/sda4)

Sekarang pasang drive ini dengan:

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

Sekarang saya dapat menjalankan executable saya, tetapi saya tidak akan dapat melihat konten nama drive, jadi saya melepas drive dan memasangnya lagi.

Hridaynath
sumber