chmod fails though it pretends to succeed

From: Christoph Pleger
Date: Mon May 25 2009 - 10:53:26 EST


I have a strange problem here with a C program that calls chmod.

The C program is a PAM module called pam-devperm. The purpose of this
module is to set appropriate device ownerships and permissions when a
user logs in. But the module does not work as expected on my Ubuntu
9.04 system. When a user logs in the first time after system boot, only
the device ownerships are changed, the permissions are not. When the
user logs out and in again, permissions are changed, too.

I added some lines of code to the the source of of pam-devperm so that
it produces more debug output when changing the properties of /dev/dsp.
The debug output showed me that chmod has been called to set the
permissions of /dev/dsp to 0600 and that chmod returned 0, which means
success. In spite of that, device permissions remain at 660.

Now I have two questions:

1. What can be the reason for chmod to return a value of 0 though
device permissions have not been changed?

2. What can be the reason why this chmod fails on the first login of a
user, but succeeds on further logins?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at