Ok, I kind of thought I understood Linux permissions and then I encountered this one.

I am running Ubuntu 14.04 LTS in a virtualbox on my Windows 7 pro laptop. All udpates are applied to windows, virtualbox and ubuntu.

I have used the virtualmin 4.12 gpl install script to set up virtual hosting - again, all updates have been applied.

I want to edit the php5.fcgi file in /home/staging/fcgi-bin to extend the timeout values controlling the php5 script executions. when using ls -l the directory /home/staging/fcgi-bin is owned by staging:staging and permissions are drwxr-xr-x and the file php5.fcgi is owned by staging:staging with permissions -rwxr-xr-x. WHen looking at them via the files gui they both show up as owned by "Me" and grouped in staging with the same permissions that ls -l shows. Through files the directory does not show any lock but the php5.fcgi has a small lock icon overlaying the file icon.

Ok, I can open, read and find the file, I believe that I can execute it as that is how my php scripts are run. However, I cannot save any changes through gedit or nano even when I use sudo to run them. gedit always shows the save icon as greyed out/not available. nano reads the file in and allows me to modify it but when I try to save it I get a permission denied error.

I tried to rename and change the ownership and permissions but mv, sudo mv, chown, chmod, sudo chown and sudo chmod all fail with operation not allowed.

When I look to see if the file is opened with lsof | grep "php" I get nothing listed and I think this means the file is not opened.

So I am baffled and really could use some help. I do not understand how the file gets locked if it is not open and I do not understand why I cannot modify the file in any manner if I am the owner of the file and have rwx permission.


If Linux permissions were not complicated enough, I just learned about extended attributes. Turns out there is this thing called an immutable attribute. Using lsattr php5.fcgi shows the i(mmutable) attribute is set. Using chattr -i php5.fcgi allowed me to save modifications then chattr +i php5.fcgi to restore the immutable attribute.

Who knew!

| improve this answer | |
  • Also look up ACLs, just for fun. – muru Jan 7 '15 at 21:47
  • Oh you saved me a lot of time! Correct answer. But I'll never ever use chattr +i php5.fcgi to restore this problem again! – Mojtaba Rezaeian Jun 27 '18 at 1:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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