Time zone for chrooted internal-sftp?

Damien Miller djm at mindrot.org
Tue Apr 16 21:37:24 EST 2013


it worked?

On Tue, 16 Apr 2013, John Olsson M wrote:

> Sorry for not replying earlier. :(
> 
> Thank you!
> 
> /John
> 
> -----Original Message-----
> From: Damien Miller [mailto:djm at mindrot.org] 
> Sent: den 20 mars 2013 18:57
> To: John Olsson M
> Cc: openssh-unix-dev at mindrot.org
> Subject: Re: Time zone for chrooted internal-sftp?
> 
> On Wed, 13 Mar 2013, John Olsson M wrote:
> 
> > Hi,
> >
> > A question regarding chroot, internal-sftp, and time zones: Is it 
> > possible to get the time stamps presented by the chrooted 
> > internal-sftp to always be aligned with the system global time zone 
> > setting?
> >
> > What is the reason this not done by default, that is couldn't the 
> > chrooted internal-sftp inherit the time zone information from the SSH 
> > daemon?
> 
> I'd expect that it would, but maybe something gets reset after fork().
> You might want to try this patch to see if it makes any difference.
> 
> Index: session.c
> ===================================================================
> RCS file: /var/cvs/openssh/session.c,v
> retrieving revision 1.416
> diff -u -p -r1.416 session.c
> --- session.c	15 Mar 2013 00:22:37 -0000	1.416
> +++ session.c	20 Mar 2013 17:55:21 -0000
> @@ -58,6 +58,7 @@
>  #include <stdio.h>
>  #include <stdlib.h>
>  #include <string.h>
> +#include <time.h>
>  #include <unistd.h>
>  
>  #include "openbsd-compat/sys-queue.h"
> @@ -1461,6 +1462,7 @@ safely_chroot(const char *path, uid_t ui
>  
>  	}
>  
> +	tzset();
>  	if (chdir(path) == -1)
>  		fatal("Unable to chdir to chroot path \"%s\": "
>  		    "%s", path, strerror(errno));
> Index: sshd.c
> ===================================================================
> RCS file: /var/cvs/openssh/sshd.c,v
> retrieving revision 1.420
> diff -u -p -r1.420 sshd.c
> --- sshd.c	12 Feb 2013 00:04:48 -0000	1.420
> +++ sshd.c	20 Mar 2013 17:55:41 -0000
> @@ -607,6 +607,7 @@ privsep_preauth_child(void)
>  	arc4random_stir();
>  	arc4random_buf(rnd, sizeof(rnd));
>  	RAND_seed(rnd, sizeof(rnd));
> +	tzset();
>  
>  	/* Demote the private keys to public keys. */
>  	demote_sensitive_data();
> 


More information about the openssh-unix-dev mailing list