On 2/22/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > In the message dated: Wed, 22 Feb 2006 17:17:21 EST, > The pithy ruminations from Dan Pritts on > <Re: [BackupPC-users] escaping command line options> were: > => You might look into SELinux capabilities if you're running Linux. > => > => Solaris 10 has some similar features: > => http://www.sun.com/bigadmin/xperts/sessions/16_prm/ > => > => more as an answer to your question, try implementing this thing > => in perl. It's better suited to the kind of string processing you're > => doing. > => > => Maybe this: > => > => #!/usr/bin/perl -w > => > => $cmd=$ENV{'SSH_ORIGINAL_COMMAND'} > => > => if ( $cmd =~ /[*|?{~\(\[\$\`]/ ) { > => die "error, unallowed character in command string\n" > > It may be better to specify the list of allowed characters, rather than the > reverse. Try: > if ( $cmd !~ /^[\w\d\.-]+$/ ) { > to allow just letters, numbers, underscore (part of \w), dash, and period. > > => } > => > => if ( $cmd =~ /^\/usr\/bin\/rsync --server/ ) { > => # for more security, split this into an array and exec > => # the array, that will prevent it from being run by a subshell > => exec "$cmd"; > => } > => > => die "error, command didn\'t start /usr/bin/rsync --server"; > > In thinking about this more, I'd like to get a clearer idea of the goal of the > script. If I understand it correctly, the intent is to allow untrusted users > to > initiate backups of subsets of a client machine on which they have an account. >
The goal is to have -on the backup server- an account who posesses an ssh key that only allows them access to perform the backup command on a remote machine. If the backup process needs access to files outside of the remote machine users context, then sudo must also be used in conjunction with the command= option in ssh. > If this is correct, then here's an alternative proposal.... > > Have the wrapper script simply be something like: > #! /bin/sh > /usr/bin/rsync --server --port 10873 $* > (Obviously, the corresponding backup process on the BackupPC server will need > to include the same port specification.) > You are not doing anything with the $SSH_ORIGINAL_COMMAND which is the only way you can access the information passed on the command-line to ssh, so I don't guess I'm following you. > However, the ssh connection, and the script, will be run as the untrusted > user, > not as root. In this case, the user will only be able to backup files that > they'd otherwise have permission to read from the shell. > > The question of allowing users to restore only their own files, without the > ability to access files that they couldn't read from the shell, is another > problem... > > Mark > > > => > => This probably has syntax errors and i've probably missed some > => metacharacter that you should exclude. > => > => danno > => > > ---- > Mark Bergman > [EMAIL PROTECTED] > Seeking a Unix/Linux sysadmin position local to Philadelphia or via > telecommuting > > http://wwwkeys.pgp.net:11371/pks/lookup?op=get&search=bergman%40merctech.com > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > BackupPC-users mailing list > BackupPC-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/backuppc-users > http://backuppc.sourceforge.net/ > ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642 _______________________________________________ BackupPC-users mailing list BackupPC-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/backuppc-users http://backuppc.sourceforge.net/