improving sshd -> passwd transation
This commit is contained in:
parent
e306854c4d
commit
c7ffe02211
@ -1,21 +1,31 @@
|
|||||||
diff -up openssh-5.8p1/session.c.pwchange openssh-5.8p1/session.c
|
diff -up openssh-5.8p1/session.c.pwchange openssh-5.8p1/session.c
|
||||||
--- openssh-5.8p1/session.c.pwchange 2011-03-31 17:54:18.637695183 +0200
|
--- openssh-5.8p1/session.c.pwchange 2011-04-20 10:46:50.144658782 +0200
|
||||||
+++ openssh-5.8p1/session.c 2011-03-31 17:56:12.281684766 +0200
|
+++ openssh-5.8p1/session.c 2011-04-20 11:36:09.055648048 +0200
|
||||||
@@ -1552,12 +1552,17 @@ do_pwchange(Session *s)
|
@@ -1542,11 +1542,27 @@ do_setusercontext(struct passwd *pw)
|
||||||
|
static void
|
||||||
|
do_pwchange(Session *s)
|
||||||
|
{
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ pid_t pid;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
fflush(NULL);
|
||||||
|
fprintf(stderr, "WARNING: Your password has expired.\n");
|
||||||
if (s->ttyfd != -1) {
|
if (s->ttyfd != -1) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"You must change your password now and login again!\n");
|
"You must change your password now and login again!\n");
|
||||||
+#ifdef __linux__
|
+#ifdef WITH_SELINUX
|
||||||
+ execl("/bin/sh", "sh", "-c", _PATH_PASSWD_PROG, s->pw->pw_name,
|
+ switch (pid = fork()) {
|
||||||
+ (char *)NULL);
|
+ case -1:
|
||||||
+#else
|
+ fatal("cannot fork");
|
||||||
|
+ case 0:
|
||||||
|
+ setexeccon(NULL);
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ waitpid(pid, NULL, 0);
|
||||||
|
+ exit(0);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
#ifdef PASSWD_NEEDS_USERNAME
|
#ifdef PASSWD_NEEDS_USERNAME
|
||||||
execl(_PATH_PASSWD_PROG, "passwd", s->pw->pw_name,
|
execl(_PATH_PASSWD_PROG, "passwd", s->pw->pw_name,
|
||||||
(char *)NULL);
|
(char *)NULL);
|
||||||
#else
|
|
||||||
execl(_PATH_PASSWD_PROG, "passwd", (char *)NULL);
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
perror("passwd");
|
|
||||||
} else {
|
|
||||||
fprintf(stderr,
|
|
||||||
|
@ -71,7 +71,7 @@
|
|||||||
|
|
||||||
# Do not forget to bump pam_ssh_agent_auth release if you rewind the main package release to 1
|
# Do not forget to bump pam_ssh_agent_auth release if you rewind the main package release to 1
|
||||||
%define openssh_ver 5.8p1
|
%define openssh_ver 5.8p1
|
||||||
%define openssh_rel 25
|
%define openssh_rel 26
|
||||||
%define pam_ssh_agent_ver 0.9.2
|
%define pam_ssh_agent_ver 0.9.2
|
||||||
%define pam_ssh_agent_rel 30
|
%define pam_ssh_agent_rel 30
|
||||||
|
|
||||||
@ -661,6 +661,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Apr 20 2011 Jan F. Chadima <jchadima@redhat.com> - 5.8p1-26 + 0.9.2-30
|
||||||
|
- improving sshd -> passwd transation
|
||||||
|
|
||||||
* Tue Apr 5 2011 Jan F. Chadima <jchadima@redhat.com> - 5.8p1-25 + 0.9.2-30
|
* Tue Apr 5 2011 Jan F. Chadima <jchadima@redhat.com> - 5.8p1-25 + 0.9.2-30
|
||||||
- the intermediate context is set to sshd_sftpd_t
|
- the intermediate context is set to sshd_sftpd_t
|
||||||
- do not crash in packet.c if no connection
|
- do not crash in packet.c if no connection
|
||||||
|
Loading…
Reference in New Issue
Block a user