Time zone for chrooted internal-sftp?

Damien Miller djm at mindrot.org
Thu Mar 21 04:57:12 EST 2013


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