Limitar diferentes usuarios en una sola máquina a una conectividad diferente

3

Tengo un iMac con 10.6 en el que me han asignado la tarea de crear dos usuarios diferentes que pueden usar diferentes perfiles de red (ubicaciones).

El usuario 1 se conectará a través de Ethernet a través de una red filtrada, todas las demás conexiones están desactivadas, lo que funciona bien.

El usuario 2 necesita conectarse al Wi-Fi sin filtro, pero no tiene acceso a ninguna otra conexión.

He implementado la mayor parte de esto en las ubicaciones de red, el problema es que ambas ubicaciones están disponibles para ambos usuarios.

Lo que me gustaría poder hacer es asignar la ubicación personalizada como predeterminada para cada usuario.

Desde el punto de vista de seguridad, no es perfecto, pero si puedo hacer funcionar este tipo de cosas, me gustaría asignar la conexión Wi-Fi al usuario invitado, para que puedan navegar sin los filtros. Luego, el usuario normal tendrá Ethernet y no podrá cambiar de ubicación o habilitar Wi-Fi.

El truco con esto es que el Usuario será un solo usuario. Conocerán las contraseñas de ambos usuarios, solo necesitarán cambiar de usuario para realizar diferentes tareas.

¿Es posible con OSX simple o necesitaré software / scripts externos?

    
pregunta Nick 04.09.2013 - 14:19

1 respuesta

2

Bueno, lo resolví, no era el loginHooks lo que necesitaba, sino launchctl.

Básicamente, cree dos scripts (ejecutables, por supuesto, también puede hacer que em root):

User1.sh

  

! / bin / bash ifconfig en0 up; ifconfig en1   abajo;

Usuario2.sh

  

! / bin / bash ifconfig en1 up; ifconfig en0   abajo;

Por supuesto, estos suponen que estás usando un imac, en0 es la enthernet, en1 es el WiFi.

Luego crea un archivo plist (con propiedad raíz, 644), el mío fue este:

User1's entró en /Users/user1/Library/LaunchAgents/org.user1.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.user1.plist</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/user1/bin/User1.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

User2's en /Users/user2/Library/LaunchAgents/org.user2.plist

 <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>org.user2.plist</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/user2/bin/User2.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>

Después de esa ejecución

  

sudo launchctl load -w   /Users/user1/Library/LaunchAgents/org.user1.plist

y

  

sudo launchctl load -w   /Users/user2/Library/LaunchAgents/org.user2.plist

como cada usuario.

Eso es, es rápido, simple, y si configura al propietario de los scripts como otra persona (y en otro camino), es bastante seguro (no a prueba de balas, pero no está en mi alcance en este momento).

    
respondido por el Nick 06.09.2013 - 16:39

Lea otras preguntas en las etiquetas