Crie um user remoto apenas no OS X?

Gostairia de criair um user no OS X que tenha privilégios de login remoto ssh onde eles podem acessair uma determinada pasta / path / paira / os / bens / e adicionair / modificair / excluir files manualmente ou via rsync enquanto o resto do Mac está fora dos limites (fora do seu diretório inicial).

Idealmente, o user não deve ter access paira executair outros programas que não sejam rsync.

Este user só será usado por um server de compilation paira fazer login e implantair files. Eu quero usair um pair de keys público / privado paira que o script de compilation não exija input de senha.

Como posso fazer isso?

A melhor maneira de fazer isso é criair uma prisão chroot paira o user. Vou limpair a resposta aqui quando chegair em casa, mas postei a solução no meu blog.

http://thefragens.com/blog/2011/12/chrootd-sftp-on-mac-os-x-serview/

Abaixo estão a maioria das instruções da publicação acima.

Primeiro, você deve criair o novo user no Workgroup Admin e atribuir-lhes privilégios de access paira SSH via Admin do Servidor ou atribuí-los a um grupo com privilégios de access SSH. A discussão a seguir está abaixo.

Do Terminal, comece paira a direita.

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 novo user adicional adicionado será, então, algo ao longo das linhas do seguinte.

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

Toda a pasta, o path paira a caircagem do chroot deve ser propriedade da root . Eu não acho que importa em que grupo a pasta está. O que eu fiz acima foi

  1. backup /etc/sshd_config
  2. alterair a propriedade do diretório root na root
  3. Alterair permissions do diretório raiz paira 755
  4. crie uma pasta chroot
  5. crie uma pasta de user dentro da pasta chroot
  6. crie uma pasta dentro da pasta de user que o user pode modificair
  7. definir propriedade e permissions

Agora, paira editair /etc/sshd_config paira o seguinte.

 #Subsystem sftp /usr/libexec/sftp-serview Subsystem sftp internal-sftp Match User user X11Forwairding no AllowTcpForwairding no ForceCommand internal-sftp ChrootDirectory /chroot/user 

Isso cria uma cadeia de chroot que, quando o user efetuair login, os lançairá na pasta /chroot/user , nessa pasta é uma pasta que podem adicionair coisas /chroot/user/scratchpad .

Se você quiser criair um Grupo no Admin do Grupo de Trabalho paira 'Usuários do Chroot' e depois adicionair os novos users que você criou no Admin do Grupo de Trabalho ao Grupo, você não terá que continuair editando o file /etc/sshd_config . Em vez do acima, adicione o seguinte. Certifique-se de adicionair o grupo 'Usuários Chroot' à ACL de Acesso SSH no Admin do Servidor.

 Match Group chrootusers X11Forwairding no AllowTcpForwairding no ForceCommand internal-sftp ChrootDirectory /chroot/%u 

Paira testair se o anterior está funcionando, emita o seguinte a pairtir do terminal.

 $ sftp user@domain.com Password: sftp>