Don't look up local user for remote changes, even when root.
authorJim McDonough <jmcd@samba.org>
Thu, 16 Apr 2009 15:14:29 +0000 (17:14 +0200)
committerJim McDonough <jmcd@samba.org>
Thu, 16 Apr 2009 15:14:29 +0000 (17:14 +0200)
source3/utils/smbpasswd.c

index 4cd0d55f56a6e10a6c31b31434764ad98b5f5e86..8cca93f5defd0a2a8be3ed18f21f0e1e64b7f705 100644 (file)
@@ -430,14 +430,18 @@ static int process_root(int local_flags)
                }
 
                if((local_flags & LOCAL_SET_PASSWORD) && (new_passwd == NULL)) {
-                       struct passwd *passwd = getpwnam_alloc(NULL, user_name);
+                       struct passwd *passwd;
 
-                       if (!passwd) {
-                               fprintf(stderr, "Cannot locate Unix account for "
-                                         "'%s'!\n", user_name);
-                               exit(1);
+                       if (remote_machine == NULL) {
+                               passwd = getpwnam_alloc(NULL, user_name);
+
+                               if (!passwd) {
+                                       fprintf(stderr, "Cannot locate Unix account for "
+                                               "'%s'!\n", user_name);
+                                       exit(1);
+                               }
+                               TALLOC_FREE(passwd);
                        }
-                       TALLOC_FREE(passwd);
 
                        new_passwd = prompt_for_new_password(stdin_passwd_get);