El problema de permisos en / media / carpeta de usuario me impide acceder a medios externos

11

Cuando conecto mi disco duro externo, inserto un DVD o intento ver lo que tengo en mi unidad USB, el resultado habitual es un comportamiento peculiar.

Los sistemas de archivos se montan bien. Cuando inicio sesión como root sudo su, puedo ver el contenido de la /media/casper/externaldriveperfectamente bien. Sin embargo, mi usuario no casperpuede. Ubuntu responde a cada acción que involucra la ubicación Permission denied:

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

Decidí investigar un poco los permisos (problemas) de la /mediacarpeta. Como casper, veo lo siguiente:

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/

Lo que me llamó la atención fue que decía total 16, aunque solo hay a lo sumo 6 listados. Entonces ejecuté el comando nuevamente, pero como root. El resultado fue el mismo, raro. (¿Alguien puede iluminarme sobre esto?)

De todos modos, lo que me sorprendió aún más fue que el /media/casperdirectorio no es mío y que tampoco puedo acceder a mí. Tuve la tentación de chown -Rsacar solo las bazinkas, pero después de recuperarme, busqué en Google algo así como "Carpeta de usuario de medios, no la mía, ayúdame".

Me tomó un tiempo, pero finalmente me topé con este hilo, donde los usuarios explican el propósito de las 750 root:root /media/usercarpetas. Se asegura de que solo la raíz pueda montar, ver y administrar sistemas de archivos allí, de los cuales los permisos individuales se cambian al usuario real.

Entonces, si mi información era correcta, los /media/casper/externaldrivepermisos deberían ser favorables para mí. Lo comprobé,

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/

Y este parece ser el caso.

Entonces aquí es donde estoy atrapado. El sistema de archivos tiene permisos para mí a través del árbol de directorios, pero no puedo acceder a un solo archivo. Esto es lo mismo para los CD y las unidades USB.

¿Quién puede ayudarme a acceder a mi preciosa?

Ah, y por cierto. El hilo antes mencionado habla de ACL en estas /media/usercarpetas, indicado por un +después de los permisos regulares, como drwxr-x---+ 3 root root. Mi sistema no muestra esto. ¿ACL en estas carpetas es estándar para Ubuntu o el usuario tenía cosas especiales que hacer? ¿Debería preocuparme de dónde es de donde viene mi problema?

Gracias por leer.

MicroParsec
fuente
1
Uso una configuración de arranque dual (16.04 y Win7) y veo un + al final de los permisos de carpeta / media / usuario. Así que creo que de ahí viene tu problema. Encontré estos ( 1 , 2 ) a través de googleing, pero no he usado acl antes para saber si son suficientes para resolver su problema.
Karsus el
2
El lstotal de bloques de 1 KB utilizados por los archivos en el directorio, no de forma recursiva. Ver unix.stackexchange.com/a/4110/44281 .
amotzg
@Karsus Gracias, creo que has encontrado mi problema. Voy a probar la respuesta de Zanna a continuación y te mantendré informado. @ amotzg Aha, eso aclara las cosas. Gracias :)
MicroParsec
Solo por curiosidad, ¿qué significa "3" drwxr-x--- 3*?
thephoenix01

Respuestas:

15

Dado que los permisos y la propiedad de /media/casperson

drwxr-x---  root root 

Sin no +para las ACL ( Listas de control de acceso ) está claro que solo el root puede abrir, ingresar, leer o escribir en este directorio. Los usuarios humildes como nosotros obtienen los permisos al final de la cadena ---:(

Las personas sin privilegios obtienen permiso para acceder a esta ubicación con ACL. No estoy seguro de por qué aún no los tiene, pero puede configurarlos, lo que puede ser simple o requerir un pequeño retoque:

  • aclSe requiere el paquete (consultar apt-cache policy acl)
  • el sistema de archivos debe montarse con la aclopción

Para verificar esto último (reemplace sdxYapropiadamente para su partición raíz):

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

debería volver:

Default mount options:    user_xattr acl

Las opciones de montaje predeterminadas se establecen en /etc/mke2fs.conf

Pueden anularse, así que verifique:

cat /proc/mounts | grep sdxY

se parece a algo como:

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

Lo anterior está bien, ( aclno es necesario mencionarlo) pero si dice noaclque necesita cambiarlo.

Puede agregar la opción a las opciones de montaje predeterminadas como esta:

sudo tune2fs -o acl /dev/sdxY

O puede agregar acla las opciones para la línea de partición raíz, /etc/fstabpor ejemplo:

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

Con las ACL habilitadas, utilícelas setfaclpara agregar permisos usted mismo. Para otorgar usernamepermisos de lectura y ejecución en / media / casper (necesita permiso de ejecución para ingresar a un directorio o buscar su contenido):

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

Puede reemplazar usernamecon uid (probablemente lo esté 1000- verifique con el idcomando)

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

para ver los permisos de ACL que usa getfaclcomo hizo Oli en su respuesta

getfacl /media/casper

Para eliminar los permisos de ACL de un usuario

sudo setfacl -x u:username /media/casper

Para borrar todos los permisos de ACL

sudo setfacl -b /media/casper

Nota: hice trampa y me hice una pregunta sobre por qué hay tantas entradas /media. La respuesta esta aqui

Zanna
fuente
1
Gracias @Zanna: apt-cache policy acldevoluciones ACL está instalado y más reciente. Default mount optionsmenciones acl. cat /proc/mountno menciona noacl. Así que supongo que ahora necesito agregar los permisos de ACL manualmente, ya que por alguna razón no están hechos. Utilicé los comandos que describiste para darme permisos rx para el /media/casperdirectorio y me alegra decir que puedo acceder a mis medios externos nuevamente. Gracias Zanna!
MicroParsec
Yay, feliz de que lo hayas arreglado: D
Zanna
2

Cuando desee otorgar permiso de acceso a una unidad de Windows desde Ubuntu

El chmodcomando normal no funcionará si se trata de una unidad Windows NTFS.

Lo siguiente funciona para mí.

Abre el archivo /etc/mtab:

gedit /etc/mtab

Encuentre el nombre de la unidad en este archivo (simplemente pase el mouse sobre la unidad para la que está buscando una solución, en mi caso, la GUI muestra un nombre diferente y al mostrar el mouse sobre ella /media/user-name/drive-name)

Ahora en /etc/mtab:

Busque el nombre de la unidad en el archivo y verifique a qué unidad está asignada su unidad montada (en mi caso - /dev/sda4)

Ahora monte esta unidad con:

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

Ahora puedo ejecutar mis ejecutables, pero no podré ver el contenido del nombre de la unidad, así que desmonté la unidad y la volví a montar.

Hridaynath
fuente