Назад | Перейти на главную страницу

Проблемы с правами файла в 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. Что на самом деле означает "+" в конце строки прав?

На выходе 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.

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

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

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

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

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

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

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

Following the file mode bits is a single character that specifies
 whether an alternate access method such as an access control list
 applies to the file.  When the character following the file mode
 bits is a space, there is no alternate access method.  When it is
 a printing character, then there is such a method.

GNU `ls' uses a `.' character to indicate a file with an SELinux
 security context, but no other alternate access method.

A file with any other combination of alternate access methods is
 marked with a `+' character.

Я сам нашел ответ. «+» означает альтернативный 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

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