Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I try to chown the owner of a file to root, but I can't. I'm doing this as root. I get the following message:

chown: changing ownership of `ps': Operation not permitted
share|improve this question
    
An ls -lha and lsattr output would aid the solution :) –  AlberT Aug 31 '09 at 10:15

7 Answers 7

up vote 27 down vote accepted

The immutable attribute may be set on the file. Remove it with chattr -i

share|improve this answer
6  
It was -a. But thanks for the nod in the right direction. –  Peter Stuifzand Aug 31 '09 at 10:14
    
Thank you, How can I set immutable attribute on it again? –  Zim3r Dec 6 '12 at 17:24
    
chattr +i <file> –  Cian Dec 23 '12 at 21:09

Several solution exists, some among them:

  • you have a filesystem does not lets you eg. uid:gid, eg: FAT
  • the drive has been mounted read-only
  • SELinux or other security enforcers apply
  • filesystem is set to read-only mode (xfs_freeze, for example)
share|improve this answer
    
Filesystem is ext3, mounted read-write, No SELinux. –  Peter Stuifzand Aug 31 '09 at 10:05
    
It's also possible that the file is on an NFS file system, mounted root_squash, albeit unlikely given the file. –  Cian Aug 31 '09 at 10:06

Try this:

[root@ root]# chattr -ais /bin/ls

after changing the ownership and group back to root.

share|improve this answer

Funny. Did you check the system logs (/var/log/messages, /var/log/syslog, output of dmesg) for any clues?

Possible reasons:

  • You are running some security-enhanced Linux, such as SELinux. These place restrictions even on what root can do.
  • The file is on a file system that does not support file ownership, such as (V)FAT. Depending on mount options chmod/chown will give you errors.
share|improve this answer

I had same problem.

$ chattr -V -i dir
chattr 1.41.12 (17-May-2010)
Flags of dir set as s----a---------

Which was not enough. So i added the 'sa'

$ chattr -V -ais dir
chattr 1.41.12 (17-May-2010)
Flags of dir set as ---------------
$ chown root dir
$

Problem solved :)

share|improve this answer

on what kind of Filesystem is the "ps" file you are trying to chown ? Is the fs mounted as ro (readonly) ?

if you are talking about /bin/ps, on debian it's always like:

-rwxr-xr-x 1 root root 76132 2009-05-28 10:48 /bin/ps*
share|improve this answer
    
The problem is my system was hacked and some files were replaced. Now I want to replace them with the originals but I doesn't work. –  Peter Stuifzand Aug 31 '09 at 10:03
9  
If your system was hacked, then you don't want to put files back. You have no way of telling what's been broken, and nothing on the system is trustworthy. Wipe, and reinstall from backups. –  Cian Aug 31 '09 at 10:07
1  
As Cian said, if your system was hacked and they got root access, don't replace files. It may still contain a (nearly) invisible rootkit that hijacks system calls. It may still be sniffing passwords, it may still have opened backdoors in your services, and and and (infinite number of possible things a hacked machine may contain). The reasonable thing to do is to turn off the machine and study its contents offline, by putting the disk to another box. Don't trust this machine at all and don't replace any binaries, they may contain valuable information to discover what the rootkit does. –  kargig Aug 31 '09 at 11:38

Every "guess" made by other answers is possible. A debugging hint may be to do a strace of the command, and look into the output in order to see what is the real problem in the syscalls itself.

strace chown root /bin/ps 2>&1 | less
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.