Проблемы с правами на файлы в CentOS [закрыто]

Может кто-нибудь объяснит мне, как правильно управлять правами, пожалуйста? У меня есть файл со следующими правами:

8 -rw-r--r--+ 1 sntecard  sntecard    4669 Sep 18 12:34 index.php

Я получаю доступ к этой папке пользователем myuser и пытаюсь изменить ее. Конечно, не могу. Хорошо, я добавляю права записи для группы и добавляю себя в группу sntecard (будучи корневым):

usermod -a -G sntecard myuser

chmod g+w index.php

Давайте проверим права: (ls -ls)

8 -rw-rw-r--+ 1 sntecard  sntecard    4669 Sep 18 12:34 index.php

Теперь давайте проверим, что я в группе: (grep sntecard / etc / group)

sntecard:x:503:sntecard,myuser

Замечательно, я в группе и теперь ДОЛЖЕН иметь права! Но нет. Я не могу записать этот файл. Невозможно через sFTP и невозможно когда-либо через nano index.php. Ошибка доступа при записи файла.

Что я делаю не так?

P.S. Что на самом деле означает "+" в конце строки прав?

-1
задан 24 September 2014 в 07:30
3 ответа

Я сам нашел ответ. «+» означает альтернативный ACL (списки доступа), установленный для этого файла. Когда мы смотрим на них, мы видим

getfacl index.php

# file: index.php
# owner: sntecard
# group: sntecard
user::rw-
user:cyberuser:rwx              #effective:rw-
group::r--
mask::rw-
other::rw-

, что означает НЕТ группового доступа на запись. Изменение этого параметра на

setfacl -m group::rw- index.php

решает проблему.

0
ответ дан 5 December 2019 в 19:08

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

P.S. Что на самом деле означает "+" в конце строки прав?

Это скрыто на информационных страницах (info ls)

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

GNU `ls 'использует расширение`.'  символ для обозначения файла с SELinux
  контекст безопасности, но никакой другой альтернативный метод доступа.

Файл с любой другой комбинацией альтернативных методов доступа
  отмечены знаком "+".
 
2
ответ дан 5 December 2019 в 19:08

В выводе ls -ls :

 8 -rw-r--r--+ 1 sntecard  sntecard    4669 Sep 18 12:34 index.php

Число 8 является результатом параметра -s и размера файла в блоках.

-rw-r-- r - + - это права на чтение для пользователя, которому он принадлежит ( -rw ), других пользователей в группе файла ( -r- ), других пользователи, не входящие в группу файла ( -r- ), или все пользователи ( - ).

Завершающие + указывают на более расширенные средства управления доступом. Они не могут быть отображены ls и требуют вспомогательных команд. В случае файловых систем, смонтированных с опцией acl, например, getfacl для отображения и setfacl для изменения ACL POSIX.

ACL POSIX переопределят простой ugoa ] разрешения, используемые chmod и chown .

Если вместо конечного плюса + точка . был бы отображен; это указывает на контекст SELinux, требуя флаг -Z в ls для их отображения.

Для полноты, 1 - это счетчик ссылок, который будет 2 , если была жесткая ссылка на файл и 3 для двух жестких ссылок и т. Д. Для каталога это число не менее двух и увеличивается с каждым файлом и / или каталогом в этом каталоге.

Затем владелец и группа, а затем фактический размер файла в байтах.Каталог размером 0 - это каталог, в котором нет файлов, таких как псевдофайловые системы, такие как / proc, / sys и, кстати, те, которые управляются автоматическим монтированием. Затем отметка времени последней даты изменения, за которой следует фактическое имя файла.

2
ответ дан 5 December 2019 в 19:08

Теги

Похожие вопросы