Quiero dar acceso a un directorio para un amigo. Tiene acceso al sistema de archivos, donde se encuentra el directorio. No quiero establecer los permisos para todos los usuarios. ¿Cómo puedo permitir que solo una persona vea el directorio? Ninguno de nosotros es un superusuario.
[DESAFÍO BOUNTY] Ninguna de las respuestas funciona, usando Ubuntu:
1. El enfoque de jamuraa no funciona
$ setfacl -m user:friend:rwx classroom.xml
setfacl: classroom.xml: Operation not supported
2. El enfoque de nik no funciona: no se puede acceder a un archivo inexistente
3. El enfoque de ba no funciona: no puedo crear grupos, no una raíz.
4. El enfoque de ToK no funciona, los usuarios están en dos grupos: "usuarios" y "campo"
chown -R myFriend:users ~/TEST
chown: changing ownership of `/u/myFriend/TEST/you_see_it': Operation not permitted
chown: changing ownership of `/u/myFriend/TEST': Operation not permitted
Respuestas:
Con los permisos normales de UNIX (usuario, grupo, todos), no puede hacerlo fácilmente. Si ya no necesita acceder al directorio, puede cambiar el propietario del directorio a su amigo, que es válido en algunos Unices, pero la mayoría de ellos no lo es.
Sin embargo, si tiene ACL habilitadas en Linux, puede hacerlo si es el propietario del archivo. Simplemente ejecute el comando
setfacl -m user:friend:rwx filename
donde amigo es el nombre de la cuenta de su amigo y el nombre de archivo es el archivo. Puede verificar que entró en vigencia ejecutandogetfacl filename
, debería ver la tríadauser:friend:rwx
en la lista. Sin embargo, no he visto muchos sistemas Linux que tengan habilitadas las ACL.fuente
Esto es algo que habíamos discutido en la escuela.
Va más o menos así,
data
, para referencia aquí)chmod 711 data
"x
acceso para ingresar al directoriodifficult-name-here
(esto podría ser una cadena hash)chmod a+rx difficult-name-here
"cd path/to/data/difficult-name-here
"root
siempre se puede acceder a todo (lo cual no es un problema aquí)difficult-name-here
con las personas que desea dar estos datosBastante crudo, pero si esto se puede romper sin la rotura del control de acceso de Unix, me gustaría saberlo.
Actualización sobre el comentario de
dmckee
, ¡Esta es exactamente la conclusión a la que llegamos!
"seguridad por oscuridad" tiene seguridad limitada .
Dicho esto, al diseñar la protección de datos,
es importante identificar su valor.
Debes apuntar a,
En este caso, si
root
decide enumerar el árbol de directorios en algún lugar de acceso público, ¡su secreto está fuera! Pero, ¿estás protegiendo desde la raíz o su potencial irresponsabilidad?
Si ese es el caso, tiene mucho más de qué preocuparse que los archivos compartidos.
Actualización sobre la nota que no funciona en la pregunta .
He usado esto en los primeros días de Linux para saber que funciona.
Si obtiene '
cannot access non-existant file
' en lugar de'permissions denied
'' es muy probable que haya cometido un error en la secuencia. Lo que quieres debería verse así,CoverDir
acceder como'rwx--x--x
",group y otros solo pueden ingresar al directorio pero no pueden leer su contenido.
'
Obscure
', dentro de él y le da acceso de lectura completo con 'rwxr-xr-x
',cualquiera que conozca este nombre puede enumerar su contenido.
ls BasePath/CoverDir/Obscure
'porque la gente en su grupo y otros no serán capaces de '
ls BasePath/CoverDir
'.fuente
ssh
clave privada).Ryan estaba en realidad 100% correcto, solo al revés. Dado que su amigo (probablemente) tiene un grupo único asociado con su nombre de usuario, cambie la propiedad del grupo del directorio en cuestión a ese grupo, muy probablemente el nombre de usuario del amigo. Para poder compartir el contenido entre ustedes dos, debe conservar la propiedad como usuario:
Luego asigne los permisos apropiados al directorio, dependiendo del acceso que desee que tenga el otro usuario:
les otorgaría a ambos acceso completo de rwx al directorio y todo su contenido.
Tenga en cuenta que esto supone que no se ha agregado ningún otro usuario al grupo de su amigo. Es probable que el sistema no haya realizado esta asignación, sin embargo, como se mencionó anteriormente, el usuario root puede hacer lo que elija. Puede usar el comando grupos para ver cada grupo al que pertenece su amigo o usuario arbitrario. Además, a menos que los permisos hayan cambiado por algún motivo, debería poder ver el archivo / etc / group que contiene las asignaciones de grupo para cada grupo en el sistema.
fuente
Haría un nuevo grupo para usted y su amigo y establecería los permisos de la carpeta en su totalidad para el propietario y el grupo junto con el bit setgid para el directorio.
Pero dependiendo de sus necesidades, es posible que también tenga que buscar cambiar su máscara de usuario y la de sus amigos para que configure automáticamente el grupo para que pueda cambiar los archivos nuevos.
fuente
Las listas de control de acceso son la manera perfecta de hacer esto.
Sin embargo (si no recuerdo mal), el sistema de archivos debe inicializarse con ACL (por ejemplo, "/ dev / sda6 / home ext3 defaults, acl "), a través de / etc / fstab, y esto es algo que solo el superusuario puede hacer. ..
fuente
Se requiere RBACS como grsec / selinux.
fuente
Por defecto, cada usuario en un sistema Ubuntu también tiene un grupo asociado con el mismo nombre. Entonces, si puede agregar a su amigo a su grupo y luego marcar la carpeta en cuestión como
g+rwx
, estará listo. Recuerdo vagamente que este caso de uso se cita como la razón para crear un grupo para cada usuario.fuente
¿Qué tal Dropbox? Puede instalarlo sin privilegios de administrador y ambos enlazan a la misma cuenta.
Vea cómo instalar Dropbox en un entorno Linux completamente basado en texto
fuente
No lo he intentado, pero ¿qué tal un directorio público legible con un FS de espacio de usuario encriptado dentro (por ejemplo, encfs). Luego puede compartir esa contraseña con su amigo y nadie más puede hacer uso de esos datos (bueno, supongo que podrían obtener los datos y ejecutar un descifrador de contraseñas sin conexión).
fuente
Para dar a Linux el mismo Finesse que las ventanas en los privilegios de archivo, debe anidar grupos. Crea un grupo que tenga acceso a tu carpeta como te gustaría que tu amigo tuviera. Agréguelo a ese grupo o al grupo en el que reside en ese grupo. Por ejemplo
/ foo es la carpeta que quieres compartir. Cree un grupo FooGroup que tenga el acceso deseado a la carpeta. Agregue grupos y usuarios a este grupo al que desea tener dicho acceso a esta carpeta.
Es un gran problema tener un grupo para cada carpeta o archivo, pero es la mejor manera de restringir el acceso al mismo nivel que Windows.
fuente
Puede encriptar el directorio con
gpg
. Y luego trate de ofuscar la ubicación como sugirió Nik.fuente