Your user is probably not a member of the users
group, so you don't have the right to give a file to that group. To illustrate:
$ groups
terdon sudo netdev fuse vboxsf vboxusers
$ ls -l file
-rw-r--r-- 1 terdon terdon 604 Feb 6 03:04 file
$ chgrp users file
chgrp: changing group of ‘file’: Operation not permitted
$ chgrp vboxusers file
$ ls -l file
-rw-r--r-- 1 terdon vboxusers 604 Feb 6 03:04 file
This behavior is mentioned in the POSIX specs:
Only the owner of a file or the user with appropriate privileges may change the owner or group of a file.
Some implementations restrict the use of chgrp to a user with appropriate privileges when the group specified is not the effective group ID or one of the supplementary group IDs of the calling process.
The main reason for this is that if you aren't a member of a group, you should not be able to modify what that group has access to. This answer on chown
permissions is also relevant.
Traditionally, on shared systems, you have a users
group to which all regular users belong and that is the primary group of each user. That way, files are created owned by the users
group and all users can read them.
Anyway, since that is not the way that Debian-based distros are set up these days, the way to give a specific user access to your file would be to either
Change the group ownership of the file/directory to a group that both you and the other user are members of;
Just change the permissions of the file/directory accordingly:
$ chmod 755 /home/terdon
$ ls -ld /home/terdon
drwxr-xr-x 170 terdon terdon 491520 Apr 20 13:43 /home/terdon/
That will make the directory accessible to everybody.
/xmas_carol
samba/nfs mount ? – Rahul Patil Feb 06 '14 at 02:21setfacl
(if filesystem has ACLs). see https://unix.stackexchange.com/questions/101263/what-are-the-different-ways-to-set-file-permissions-etc-on-gnu-linux – ctrl-alt-delor Jun 01 '17 at 20:29