Estoy permitiendo a un amigo una cuenta local en mi máquina, exclusivamente para SCP. ¿Puedo especificar el shell de su cuenta como /bin/true
, o de alguna otra manera limitar la cuenta, mientras sigo permitiendo SCP?
Estoy permitiendo a un amigo una cuenta local en mi máquina, exclusivamente para SCP. ¿Puedo especificar el shell de su cuenta como /bin/true
, o de alguna otra manera limitar la cuenta, mientras sigo permitiendo SCP?
Respuestas:
Puede establecer el shell de ese usuario en rssh
o scponly
, que están diseñados precisamente para ese propósito:
rssh es un shell restringido para usar con OpenSSH, que solo permite scp y / o sftp. Ahora también incluye soporte para rdist, rsync y cvs.
scponly es un 'shell' alternativo (de algún tipo) para los administradores de sistemas que deseen proporcionar acceso a usuarios remotos para leer y escribir archivos locales sin proporcionar ningún privilegio de ejecución remota.
Cuando ejecuta scp, el demonio OpenSSH dispara un scp
proceso con la -f
opción. Cuando ejecuta sftp, el demonio OpenSSH dispara un sftp-server
proceso. En cualquier caso, el subproceso se ejecuta a través del shell del usuario, por lo que el shell debe admitir al menos estos comandos, con una sintaxis similar a Bourne. Cualquier shell de estilo Bourne servirá, al igual que csh (creo que sus reglas de comillas son lo suficientemente compatibles para qué sshd
usos). Rssh y scponly permiten estos comandos y nada más. /bin/true
Ni siquiera ejecutaría estos comandos.
/bin/false
u otro programa que no hace nada, ni scp ni sftp funcionarán. Para ambos comandos, el daemon SSH dispara un comando de shell que ejecuta un proceso de servidor dedicado ( scp -f
o sftp-server
). Necesita un shell de estilo Bourne, o al menos una aproximación lo suficientemente cercana (como la rssh
que permite solo estos pocos comandos).
No, tu no. Como señaló Gilles, rssh funciona muy bien para este fin, al igual que scponly . Vea también la discusión en esta pregunta relacionada .
/bin/false
, no funcionará, ni chmod 644 ksh .