У меня есть раздел 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
в список группа факс
, а затем введите
$ id
, он не показывает группу факс
, но
$ groups ps
показывает факс
.
Выполнение su
для вашего собственного пользователя дает вам новую принадлежность к группе:
$ su ps
$ id
Вывод теперь также содержит факс
.
Метод, который у вас есть б / у кажется верным. Я только что попытался воспроизвести его, и он работал нормально.
Я не уверен, есть ли опечатка, но есть небольшая проблема с командой. Здесь нет необходимости упоминать "mygroup". Следующее работает
# chmod -R g+swrx /mount/abc
Даже если вы можете удалить бит s
, просто выполните g + rwx
. После того как вы изменили разрешения и выполните команду ls -l
, отобразятся соответствующие привилегии.
Чтобы добавить к принятому ответу (поскольку я еще не могу комментировать):
Если вы используете программное обеспечение, такое как BitVise, для создания SSH-соединения с вашим сервером, простое закрытие и повторное открытие терминала не будет считаться журналированием внутрь и наружу. Он выполняет такие действия, как перезагрузка вашего ~ / .bashrc
, но не выполняет фактическое обновление группы (если вы добавили группу в сеансе «входа в систему») .
Чтобы это вступило в силу, вам придется полностью выйти из системы и снова войти в систему с вашим SSH-ключом / учетными данными.
Для открытия каталогов необходимо установить бит x (для каталога этот бит рассматривается как бит поиска). Поэтому я использую дерево, чтобы получить только набор папок и избежать кошмара, связанного с тем, что все файлы установлены как исполняемые (параметр tree - -d Список только каталогов.
):
sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755 "{}"
Предупреждение !! ! вы должны принять во внимание следующее:
использование chmod или chown рекурсивно в корневом каталоге /
или системных каталогах приведет к уничтожению вашей ОС (на самом деле все рекурсивное в каталоге /
или системные каталоги опасны)
это не очень хорошая практика безопасности, устанавливать такой пакет разрешений
Вы не можете удалить файл, потому что группа mygroup
не имеет прав на запись в файл test.png
, а также в папку. Чтобы операции записи работали с файлом, права доступа к файлу должны выглядеть так:
-rw-rwxr-- 1 otheruser mygroup 159539 Apr 23 23:44 test.png*
Если вы внимательно посмотрите на формат разрешений
duuugggooo
Первые три заполнителя uuu
- это пользователь r ] ead, w rite и e x ecute. Следующие три заполнителя ggg
предназначены для группы, а ooo
- для других. Во фрагменте, опубликованном группой OP, отсутствует разрешение обряда w .