| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		rja
 
 
  Joined: 20 Apr 2006 Posts: 21 Location: Chicago, IL USA
  | 
		
			
				 Posted: Mon Aug 14, 2006 11:00 pm    Post subject: cups password does not allow special characters | 
				     | 
			 
			
				
  | 
			 
			
				This might be a problem with seamonkey, cups, dsl-n, or I'm doing something wrong...
 
 
dsl-n-01RC3
 
 
boot: dsl dma base norestore secure
 
 
Enter root password with a special character, for instance "#", like this:
 
 
Enter password for root: cat#dog Re-enter: cat#dog Accepted.
 
Enter password for dsl: dog#cat Re-enter: dog#cat Accepted.
 
 
Click on DSLpanel
 
Click on Printing/Cups
 
Click on Printer Setup
 
Click on Do Administration Tasks
 
 
User Name: root
 
Password: cat#dog
 
 
Click on OK
 
 
Then, the password prompt re-appears.
 
 
Click on Cancel
 
Close seamonkey
 
Open root shell and change root password to "catdog".  Now, it works.
 
 
EDIT:  The problem appears to be that cups is looking for the password in /etc/passwd
 
while the secure cheat code updates /etc/shadow.
  Last edited by rja on Wed Aug 16, 2006 5:02 am; edited 1 time in total | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		rja
 
 
  Joined: 20 Apr 2006 Posts: 21 Location: Chicago, IL USA
  | 
		
			
				 Posted: Tue Aug 15, 2006 12:12 am    Post subject: Re: cups password does not allow special characters | 
				     | 
			 
			
				
  | 
			 
			
				Oops!  I should have tested more variations.  Wrong subject line.  It should be:
 
 
cups doesn't recognize secure cheatcode password
 
 
If I use:
 
 
Enter password for root: catdog Re-enter: catdog Accepted.
 
Enter password for dsl: dogcat Re-enter: dogcat Accepted.
 
 
Then cups still does not accept the password.
 
After closing seamonkey and changing the root password to "cat#dog",
 
cups does accept the password.
 
 
It appears that the password has to be set from the command line
 
before cups will accept it.  If I:
 
 
Enter password for root: cat#dog Re-enter: cat#dog Accepted.
 
Enter password for dsl: dog#cat Re-enter: dog#cat Accepted.
 
 
And then when the desktop appears, open a shell and change the root password
 
to "cat#dog", then cups will accept the password. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		rja
 
 
  Joined: 20 Apr 2006 Posts: 21 Location: Chicago, IL USA
  | 
		
			
				 Posted: Tue Aug 15, 2006 12:40 am    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Here's a little more info.
 
 
The root password in /etc/shadow IS set by the secure cheatcode.
 
Before I ran Printer Setup, the entry in /etc/shadow was this:
 
 
root:nS3bnCSfQk3Go:13374:0:99999:7:::
 
 
Running Printer Setup, cups did not accept the root password.
 
 
Then, after closing seamonkey, running passwd from a root shell with the exact
 
same password that I used for the secure boot cheatcode, /etc/shadow now has:
 
 
root:nS3bnCSfQk3Go:13374:0:99999:7:::
 
 
And then, cups did accept it. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		rja
 
 
  Joined: 20 Apr 2006 Posts: 21 Location: Chicago, IL USA
  | 
		
			
				 Posted: Tue Aug 15, 2006 1:15 am    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				The first time Printer Setup is run, /var/log/cups/error_log has:
 
I [15/Aug/2006:01:54:03 +0200] Listening to 0:631
 
I [15/Aug/2006:01:54:03 +0200] Configured for up to 100 clients.
 
I [15/Aug/2006:01:54:05 +0200] LoadPPDs: Wrote "/etc/cups/ppds.dat", 185 PPDs...
 
E [15/Aug/2006:01:56:36 +0200] IsAuthorized: pam_authenticate() returned Authentication failure)!
 
 
Then after changing the root password, it has:
 
I [15/Aug/2006:01:58:54 +0200] Started "/usr/lib/cups/cgi-bin/admin.cgi" (pid=2067)
 
 
Before Printer setup, /var/log/cups/access_log has:
 
dslbox - - [15/Aug/2006:01:55:41 +0200] "GET / HTTP/1.1" 200 1604
 
dslbox - - [15/Aug/2006:01:55:42 +0200] "GET /cups.css HTTP/1.1" 200 87
 
dslbox - - [15/Aug/2006:01:55:42 +0200] "GET /images/navbar.gif HTTP/1.1" 200 2869
 
 
Running Printer setup added:
 
dslbox - - [15/Aug/2006:01:56:15 +0200] "GET /admin HTTP/1.1" 401 0
 
dslbox - root [15/Aug/2006:01:56:34 +0200] "GET /admin HTTP/1.1" 401 0
 
 
Running Printer Setup after running the "passwd" command:
 
dslbox - - [15/Aug/2006:01:58:42 +0200] "GET /admin HTTP/1.1" 401 0
 
dslbox - root [15/Aug/2006:01:58:54 +0200] "GET /admin HTTP/1.1" 200 0
 
dslbox - root [15/Aug/2006:01:58:54 +0200] "GET /admin HTTP/1.1" 200 2852
 
dslbox - root [15/Aug/2006:01:58:56 +0200] "GET /images/left.gif HTTP/1.1" 200 110
 
dslbox - root [15/Aug/2006:01:58:56 +0200] "GET /images/right.gif HTTP/1.1" 200 145
 
dslbox - root [15/Aug/2006:01:58:56 +0200] "GET /images/add-class.gif HTTP/1.1" 200 242
 
dslbox - root [15/Aug/2006:01:58:56 +0200] "GET /images/manage-classes.gif HTTP/1.1" 200 289
 
dslbox - root [15/Aug/2006:01:58:56 +0200] "GET /images/manage-jobs.gif HTTP/1.1" 200 266
 
dslbox - root [15/Aug/2006:01:58:56 +0200] "GET /images/add-printer.gif HTTP/1.1" 200 252
 
dslbox - root [15/Aug/2006:01:58:56 +0200] "GET /images/manage-printers.gif HTTP/1.1" 200 296 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		rja
 
 
  Joined: 20 Apr 2006 Posts: 21 Location: Chicago, IL USA
  | 
		
			
				 Posted: Tue Aug 15, 2006 2:37 am    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				There is something odd with the /etc/passwd* files.
 
 
After booting with "dsl dma syslog secure base norestore" and entering the password
 
"cat#dog", then /etc/passwd and /etc/shadow are:
 
 
root@dslbox:/etc# ls -l passwd* shadow*
 
-rw-r--r--    1 root     root         1817 Jan 30  2006 passwd
 
-rw-------    1 root     root         1792 Aug 14 21:07 passwd-
 
-rw-r-----    1 root     root         1095 Aug 14 21:08 shadow
 
-rw-------    1 root     root         1083 Aug 14 21:08 shadow-
 
root@dslbox:/etc# diff passwd passwd-
 
1c1
 
< root:$1$$I.X7vmLDEcVMmpJ9bU4Ar1:0:0:root:/root:/bin/bash
 
---
 
> root:x:0:0:root:/root:/bin/bash
 
root@dslbox:/etc# diff shadow shadow-
 
39c39
 
< dsl:ymunaU2gXsriI:13375:0:99999:7:::
 
---
 
> dsl:!:13178:0:99999:7:::
 
 
The older /etc/passwd file has the new password, while the newer /etc/passwd-
 
has the old null password.
 
 
Then, after running "passwd root":
 
 
root@dslbox:/etc# ls -l passwd* shadow*
 
-rw-r--r--    1 root     root         1817 Aug 14 21:12 passwd
 
-rw-------    1 root     root         1817 Jan 30  2006 passwd-
 
-rw-r-----    1 root     root         1095 Aug 14 21:08 shadow
 
-rw-------    1 root     root         1083 Aug 14 21:08 shadow-
 
root@dslbox:/etc# diff passwd passwd-
 
1c1
 
< root:$1$$SFEVfR/HImkFczmLRUVs.0:0:0:root:/root:/bin/bash
 
---
 
> root:$1$$I.X7vmLDEcVMmpJ9bU4Ar1:0:0:root:/root:/bin/bash
 
 
Changing the password with "passwd root" again produces:
 
 
root@dslbox:/etc# ls -l passwd* shadow*
 
-rw-r--r--    1 root     root         1817 Aug 14 21:23 passwd
 
-rw-------    1 root     root         1817 Aug 14 21:12 passwd-
 
-rw-r-----    1 root     root         1095 Aug 14 21:08 shadow
 
-rw-------    1 root     root         1083 Aug 14 21:08 shadow-
 
root@dslbox:/etc# diff passwd passwd-
 
1c1
 
< root:$1$$U1X9vWnfWS.odMsv3JpAA/:0:0:root:/root:/bin/bash
 
---
 
> root:$1$$SFEVfR/HImkFczmLRUVs.0:0:0:root:/root:/bin/bash | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		rja
 
 
  Joined: 20 Apr 2006 Posts: 21 Location: Chicago, IL USA
  | 
		
			
				 Posted: Wed Aug 16, 2006 5:00 am    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				I think that this post might actually be useful!
 
 
The "secure" boot cheatcode only updates the /etc/shadow and /etc/shadow-  files.
 
 
The "passwd" command only updates the /etc/passwd and /etc/passwd- files.
 
 
I know that this isn't dsl, but...
 
 
with dsl, both the secure cheatcode and the passwd command only update the shadow files.
 
 
Yet, cups (or is it pam) is using the password that is in the /etc/passwd file. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		roberts
 
 
  Joined: 17 Apr 2006 Posts: 320 Location: OC CA USA
  | 
		
			
				 Posted: Wed Aug 16, 2006 9:50 pm    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Good analysis.
 
I believe the issue is with the chpasswd program.
 
This works fine with DSL but apparently not DSL-N.
 
I suppose if you try changing the password using the non-interactive /usr/sbin/chpasswd you will have the same results. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		rja
 
 
  Joined: 20 Apr 2006 Posts: 21 Location: Chicago, IL USA
  | 
		
			
				 Posted: Thu Aug 17, 2006 6:11 pm    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Running /usr/sbin/chpasswd updates the /etc/shadow file, and doesn't
 
touch /etc/passwd.
 
 
So, /usr/sbin/chpasswd does the same thing as the "secure" boot cheatcode.
 
 
/usr/bin/passwd and cups (which is calling pam-authenticate()) are using /etc/passwd instead of /etc/shadow.
 
 
All of the above was run under dsl-n.
 
 
Another difference with dsl-3.0.1 is that the group id for /etc/shadow is "shadow" while the group id for dsl-n is "root".  Changing the group id for dsl-n didn't seem to help.  cups would still only use the /etc/passwd file and ignore the /etc/shadow file. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		roberts
 
 
  Joined: 17 Apr 2006 Posts: 320 Location: OC CA USA
  | 
		
			
				 Posted: Sun Aug 20, 2006 5:43 pm    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Found the problem. Fixed it. Will likely issue RC4 very soon now.
 
Thanks for the feedback. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |