¿Cómo administrar el acceso de los usuarios a las carpetas compartidas desde la línea de comandos?

0

Al usar los comandos sharing o dscl no puedo averiguar cómo agregar usuarios asociados a los recursos compartidos. La cuenta actual de administrador local tiene acceso a todos los recursos compartidos, pero me gustaría agregar una cuenta de usuario diferente con la capacidad de acceder a algunos de los recursos compartidos de AFP.

Extrañamente, ni siquiera puedo averiguar cómo enumerar quién tiene acceso actualmente a cada uno de los puntos compartidos de AFP.

Entonces, busque la solución de línea de comandos para las siguientes dos preguntas:

1) ¿Cómo listar los usuarios actuales asociados a un determinado sharepoint? 2) ¿Cómo agregar un usuario a un sharepoint?

    
pregunta TryTryAgain 10.10.2013 - 21:01

1 respuesta

3

El acceso del usuario a los puntos compartidos dependerá de los permisos establecidos en ese punto compartido. Puede usar el comando 'ls' para obtener esa información usando Terminal ... Los productos Mac más nuevos (10.4+) usarán las ACL para controlar el acceso a esas carpetas. Puede obtener información tanto sobre POSIX como sobre las ACL aplicadas a las carpetas usando este comando:

ls -ale /Path/To/Folder

Ese comando mostrará el contenido del directorio en la vista de lista. Tenga en cuenta que verá los permisos POSIX (UNIX heredados) en el lado izquierdo de cada fila. Los permisos se pueden descifrar examinando la sección "Permisos definidos" de esta página . Es probable que vea una salida similar a la siguiente:

allyourbasearebelongtous:folder eddie$ ls -ale
total 0
drwxrwxrwx    4 eddie  staff   136 Oct 10 12:17 .
drwxr-xr-x@ 101 eddie  staff  3434 Oct 10 12:16 ..
-rw-rw-rw-    1 eddie  staff     0 Oct 10 12:16 testfile
-rw-rw-rw-+   1 eddie  staff     0 Oct 10 12:17 testfile_acl
 0: group:staff inherited allow read,write,execute,delete,append,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown
 1: group:everyone inherited allow read,write,execute,append,readattr,writeattr,readextattr,writeextattr,readsecurity

Puede ver que las ACL se enumeran con sus índices (orden de evaluación 0-n) en directorios / archivos que tienen ACL aplicadas. También puede ver que algunos archivos no muestran las ACL asociadas a ellos (los archivos que tienen aplicadas las ACL muestran un "+" al lado del nombre del archivo cuando se enumeran en la Terminal). Los permisos de ACL y POSIX se evalúan cuando los usuarios intentan conectarse a un punto compartido en el servidor. Si POSIX o las ACL entran en conflicto, es posible que vea un comportamiento un tanto impar / indefinido.

En su mayor parte, el control de acceso a los puntos compartidos debe hacerse por "grupo". Recomiendo configurar un grupo en la máquina, agregar usuarios que deberían tener acceso a ese punto compartido a ese grupo y aplicar una ACL (que heredará) a ese punto compartido para que los futuros archivos / carpetas creados en ese recurso compartido tengan el mismo conjunto de permisos . A continuación se muestra un ejemplo de cómo configurar esa herencia para un grupo llamado "Contabilidad" en una única carpeta llamada "Datos":

chmod -R +ai "Accounting allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,directory_inherit,file_inherit" Data

Tenga en cuenta que también puede ser conveniente coordinar los permisos de grupo de POSIX con las ACL establecidas para garantizar el acceso seguro a esas carpetas:

chmod -R admin:accounting Data

Puede ser una buena idea no permitir que otros usuarios participen en este recurso compartido (para una seguridad más estricta) con los permisos POSIX. El "0" en este modo de permisos octales no especifica permisos de lectura / escritura / ejecución para otros usuarios (es decir, no usuario administrativo o grupo de contabilidad):

chmod -R 770 Data

Después de haber configurado esa ACL en la carpeta, simplemente puede agregar futuros usuarios al grupo "Contabilidad", lo que les permitirá acceder al recurso compartido. Para agregar un usuario a un grupo desde la línea de comando, puede usar dseditgroup. Este es un ejemplo de confirmación de si el usuario es o no miembro del grupo:

dseditgroup -o checkmember -m newuser accounting

Si el usuario no forma parte del grupo, puedes agregarlo a él:

sudo dseditgroup -o edit -a newuser -t user accounting
    
respondido por el Eddie Kelley 10.10.2013 - 21:41

Lea otras preguntas en las etiquetas