Разрешения группы разрешают, но все же получают разрешение на отказ

У меня есть раздел ext4, и я установил владельца группы для всех поддиректоров в mygroup:

# chgrp -R mygroup /mount/abc # chmod -R g+swrx /mount/abc 

Мой пользователь входит в эту группу. Внутри этого раздела находится папка, которой принадлежит пользователь «nobody», а теперь группа «mygroup». Мой пользователь входит в «mygroup». Вот ls -l:

 myuser@host:/mount/abc/folder$ ls -l drwxr-sr-x 2 nobody mygroup 4096 Apr 25 12:08 ./ drwxrwsrwx 6 nobody mygroup 4096 Apr 24 07:57 ../ -rw-r-xr-- 1 otheruser mygroup 159539 Apr 23 23:44 test.png* myuser@host:/mount/abc/folder$ groups myuser myuser : mygroup {... a list of other groups also...} myuser@host:/mount/abc/folder$ rm test.png rm: remove write-protected regular file 'test.png'? y rm: cannot remove 'test.png': Permission denied myuser@host:/mount/abc/folder$ touch test.txt touch: cannot touch 'test.txt': Permission denied 

Обратите внимание, что я не могу удалить или создать файл, принадлежащий группе, частью которой является мой пользователь.

Наверное, я не совсем понимаю, как работают группы. Я думал, что если вы были частью группы, тогда вы наследуете разрешения этой группы. Я делаю что-то неправильно?

благодаря

Вы недавно добавили этого пользователя в эту группу, не выйдя из системы? Затем группа будет показывать группу, но у пользователя пока нет групповых разрешений.

Вы можете показать свои эффективные группы, используя

 $ id 

Например, если я добавлю пользователя ps к групповому fax а затем введите

 $ id 

он не показывает групповой fax , но

 $ groups ps 

показывает fax .

Выполнение su вашим собственным пользователем дает вам новую группу:

 $ su ps $ id 

Теперь вывод также содержит fax .

Метод, который вы использовали, кажется правильным. Я просто попытался воспроизвести его, и все прошло отлично.

Я не уверен, есть ли опечатка, но есть небольшая проблема с командой. Нет необходимости упоминать здесь «mygroup». Следующие работы

 # chmod -R g+swrx /mount/abc 

Даже вы можете удалить бит s , просто g+rwx . После того как вы изменили права доступа, и вы выполните ls -l , он должен отобразить соответствующие привилегии.

Чтобы добавить к принятому ответу (поскольку я еще не могу прокомментировать):

Если вы используете программное обеспечение, такое как BitVise, чтобы создать соединение SSH с вашим сервером, просто закрытие и повторное открытие терминала не будут считаться входом в & out. Он будет делать что-то вроде перезагрузки ~/.bashrc , но не выполнять фактические обновления группы (если вы добавили группу в сеанс «входа»). Чтобы это вступило в силу, вам придется полностью выйти из системы и снова войти в систему с помощью SSH-ключа / учетных данных.