¿Crear un usuario solo remoto en OS X?

14

Me gustaría crear un usuario en OS X que tenga privilegios de inicio de sesión ssh remotos donde puedan acceder a una determinada carpeta / ruta / a / los / productos / y agregar / modificar / eliminar archivos manualmente o mediante rsync mientras que el resto La Mac está fuera de los límites (fuera de su directorio de inicio).

Idealmente, el usuario no debería tener acceso para ejecutar ningún otro programa que no sea rsync.

Este usuario solo será utilizado por un servidor de compilación para iniciar sesión y desplegar archivos. Quiero usar un par de claves públicas / privadas para que la secuencia de comandos de compilación no requiera ingresar una contraseña.

¿Cómo puedo lograr esto?

    
pregunta chrisan 24.02.2012 - 22:49

1 respuesta

8

La mejor manera de hacerlo es crear una jaula chroot para el usuario. Limpiaré la respuesta aquí cuando llegue a casa, pero publiqué la solución en mi blog.

enlace

A continuación encontrará la mayoría de las instrucciones de la publicación anterior.

Primero, debe crear el nuevo usuario en Workgroup Admin y asignarles privilegios de acceso para SSH a través de Server Admin o asignarlos a un grupo que tenga privilegios de acceso SSH. Más discusión a continuación.

Desde la Terminal, comience a la derecha.

sudo cp /etc/sshd_config /etc/sshd_config.bkup

sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot

Cada nuevo usuario adicional que se agregue será algo similar a lo siguiente.

sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2

Cada carpeta, la ruta a la jaula chroot, debe ser propiedad de root . No creo que importe en qué grupo está la carpeta. Lo que hice anteriormente fue para

  1. copia de seguridad /etc/sshd_config
  2. cambiar la propiedad del directorio raíz a root
  3. cambie los permisos del directorio raíz a 755
  4. crear una carpeta chroot
  5. crear una carpeta de usuario dentro de la carpeta chroot
  6. cree una carpeta dentro de la carpeta de usuario que el usuario pueda modificar
  7. establecer la propiedad y los permisos

Ahora, para editar /etc/sshd_config a lo siguiente.

#Subsystem  sftp    /usr/libexec/sftp-server
Subsystem   sftp    internal-sftp

Match User user
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/user

Esto crea una jaula chroot que cuando el usuario inicia sesión los colocará en la carpeta /chroot/user , en esa carpeta hay una carpeta a la que se pueden agregar elementos en /chroot/user/scratchpad .

Si desea crear un Grupo en el Administrador de grupo de trabajo para "Usuarios de Chroot", agregue los nuevos usuarios que creó en el Administrador de grupo de trabajo al Grupo, no tendrá que seguir editando el archivo /etc/sshd_config . En lugar de lo anterior, agregue lo siguiente. Asegúrese de agregar el grupo 'Usuarios de Chroot' a la ACL de acceso SSH en el Administrador del servidor.

Match Group chrootusers
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/%u

Para probar si lo anterior está funcionando, emita lo siguiente desde el terminal.

$ sftp [email protected]
Password:
sftp>
    
respondido por el afragen 25.02.2012 - 01:25

Lea otras preguntas en las etiquetas