filesystems – Taking File Ownership When File and Directory Are Readable/Writable

chownfilesystemspermissions

I got some files in directory:

drwxrws-wt 2 me      mygroup  4,0K 10.1. 12:34 .
-rw-r----- 1 someone mygroup  10G  10.1. 11:22 someonesfile

me and someone are regular users without supplementary groups.

How to take ownership of that file using me account?

If me do:

$ chown me someonesfile
chown: doing bla bla bla: permission denied

However me can "change" ownership by replacing file with new one:

cp someonesfile myfile && mv -f myfile someonesfile`

So my main question is if there is any easier (cheaper) way to change file ownership in described environment without using root account or other privilege elevations. Basically I wanted to know if me can somehow take advantage of directory permissions to somehow reset ownership/permissions without making copy of whole file.

I've also noticed that editing file with vim and forcing overwrite with :w! will change owner of file, is that same as doing cp && mv? At least touch someonesfile will fail with permission denied.

Best Answer

Yes, vim will remove the original file and create a new one to put the new content in.

Your cp && mv -f is the way to go.

Note that when the t bit is set on the directory as it is in your case, it's not enough to have write permission to the directory you also need to be the owner of the file or the directory (as you are).

Related Question