Dostęp do scp bez możliwości logowania
Jacek Osiecki
joshua w hybrid.pl
Czw, 6 Sty 2005, 09:57:39 CET
On Thu, 6 Jan 2005, Jacek Konieczny wrote:
> On Wed, Jan 05, 2005 at 11:13:04PM +0100, Paweł Gołaszewski wrote:
>>> Może jakiś ograniczony shell?
>> rssh albo scponly (ostatnio skłaniam się ku temu ostatniemu)
> Ja nie ufałbym jednak żadnemu z tych rozwiązań. SSH powstał do
> udostępniania shella i został skonstruowany przede wszystkim z myślą
> o tym. Próba ominięcia głównej funkcjonalności może być skomplikowanym
Ja od dawna stosuję dummy shell taki jak w załączniku.
> IMHO dużo lepsze jest FTP/TLS (chociaż protokół FTP ze swoimi dwoma
> połączeniami to syf),
To po pierwsze, po drugie - zabawy z certyfikatami...
Pozdrawiam,
--
Jacek Osiecki joshua w ceti.pl GG:3828944
"Poglądy polityczne mają takie znaczenie w sejmie jak upierzenie u krokodyla"
(c) Tomasz Olbratowski 2004
-------------- następna część ---------
//
// vegaa_dummy_shell.c by zim w vegaa.de 2002-03-14
//
// This program behaves as a shell for users,
// which you want to allow sftp access (e.g for OpenSSH)
// but don't want to allow normal shell access.
//
// Copyright: Feel free to use it as you like it.
// Warranty: None .o)
//
// Compilation:
//
// gcc vegaa_dummy_shell.c -o vegaa_dummy_shell
//
// Installation:
//
// 1.) Put this dummy_shell somewhere, say as /usr/bin/vegaa_dummy_shell.
// Make it's owner root:root and it's permissions 0755 (or 0555).
// 2.) Specify the dummy_shell as the user's shell in /etc/passwd
// 3.) You may want to enter it also in /etc/shells, if these users
// should also be allowed normal ftp-access, too.
//
// Should your sftp-server sit in another location,
// change the following line accordingly
#define SFTP_COMMAND "/usr/lib/openssh/sftp-server"
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/syslog.h>
#include <sys/sysmacros.h>
int
main(int argc, char **argv)
{
int i;
if (argc!=3) {
syslog(LOG_ERR,
"ACCESS DENIED %s: illegal number of arguments=%d",
argv[0],argc);
for (i=1;i<argc;i++) {
syslog(LOG_ERR,"%s argv[%d]: %s",argv[0],i,argv[i]);
}
goto Denied;
}
if (strcmp(argv[1],"-c") || strcmp(argv[2],SFTP_COMMAND)) {
syslog(LOG_ERR,
"ACCESS DENIED %s: illegal arguments: %s %s",
argv[0],argv[1],argv[2]);
goto Denied;
}
// Now call the sftp-server
return(execl(argv[2],argv[2],NULL));
Denied:
printf("##################################################\n");
printf("## You don't have shell access on this machine. ##\n");
printf("## Please contact your administrator, ##\n");
printf("## should you believe that to be an error. ##\n");
printf("##################################################\n");
return(2);
}
Więcej informacji o liście dyskusyjnej pld-users-pl