Почему я не могу изменить полномочия файлов, к которым у меня есть доступ?

Я зарегистрирован в сервер как пользователь "человечность", и у меня есть файлы, которые похожи на это:

-rw-rw-r-- 1 www-data www-data 33150 2012-06-04 22:17 file-a.png
-rw-rw-r-- 1 www-data www-data 36371 2012-06-04 22:15 file-b.png
-rw-rw-r-- 1 www-data www-data 41439 2012-06-04 22:16 file-c.png

Пользователь человечности является членом www-данных группы:

groups ubuntu

производит

ubuntu : ubuntu www-data

Таким образом, разве я не должен мочь изменить другие полномочия, так как у меня есть доступ к файлу? Я не эксперт по материалу пользователя/группы. Таким образом, это просто озадачивает меня.

Я пытаюсь работать:

chmod o-r *

Я понимаю, что могу сделать это с sudo, легко, но я пытаюсь понять, почему я не могу изменить файлы без sudo.

5
задан 14 October 2012 в 06:50

2 ответа

По сути, ваши разрешения позволяют пользователю www-data или любому пользователю из группы www-data только чтение и запись. Только владелец может изменять групповые права доступа к файлу или каталогу, к одному из которых принадлежит пользователь.

В вашей ситуации Ubuntu не может изменить разрешения, потому что Ubuntu не владеет этими файлами и не имеет права делать это, иначе могут изменить только www-data или root.

0
ответ дан 14 October 2012 в 06:50

Только владелец файла может изменять свои разрешения

Как прокомментировал jackweirdy , только владелец файла (или root) может изменять разрешения файла. Членство в группе, имеющей некоторый доступ к файлу, дает возможность изменять права доступа к файлу.

Идея состоит в том, что файл принадлежит пользователю (независимо от того, представляет ли этот пользователь реальное лицо или нет), и этот пользователь сам решает, кто получит доступ к файлу. Разрешения на доступ пользователей (которые не являются владельцами) в группе-владельце файла контролируются пользователем, которому принадлежит файл. Если кто-либо из владельца группы файла сможет изменить права доступа к файлу, эта модель безопасности будет нарушена.

Например, рассмотрите эти разрешения, как в вашей конкретной ситуации:

-rw-rw-r--

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

Предположим, что www-data (или кто-то, у кого есть возможность запускать команды как www-data или как root) устанавливают эти разрешения с целью помешать другим пользователям в группе-владельце выполнять файл. Если другие пользователи в группе-владельце могут изменить разрешения, они могут запустить:

chmod g+x file-a.png

И тогда они получат возможность выполнить файл. Такая способность сделает групповые разрешения бесполезными.

В отличие от этого, причина для пользовательских разрешений, даже если пользователь владеет файлом, заключается не в том, чтобы ограничить владельца в действиях с файлом, а скорее в том, чтобы защитить пользователя от действий с файлом, который он не делает. t хочет сделать. Например, файлы, которые не являются программами или могут быть программами, но только что получены из ненадежного источника, такого как Интернет, имеют тенденцию иметь бит выполнения равным 0 даже для владельца, для их собственной выгоды. В этом случае полезно и необходимо, чтобы владелец мог это изменить.

Отдельная проблема с разрешением членам группы-владельца (не являющимся владельцем) изменять права доступа заключается в том, что это отдельная способность, не учитываемая в r, w или x. Даже если у группы были разрешения на чтение, запись и выполнение, это не обязательно означает, что они должны иметь возможность изменять разрешения. (Например, предположим, у вас есть файл, в котором владелец не является членом группы-владельца. Если члены группы-владельца могут изменить разрешения, они могут лишить владельца разрешений. Владелец может изменить это обратно. .но это все равно будет нарушать любые автоматизированные задачи, запланированные пользователем, которые используют файл.)

Предоставление людям возможности стать владельцем

Когда файл принадлежит пользователю, например www-data, который не представляет ни одного фактического человека, вы можете разрешить некоторым людям выполнять действия от имени этого пользователя. sudo не только позволяет пользователям выбирать команды для запуска root. Это также позволяет отдельным пользователям запускать команды как другие указанные пользователи. Вы можете настроить все так, чтобы все в группе www-data могли запускать команды от имени пользователя www-data, включая изменение разрешений для файлов, принадлежащих www-data. (Однако убедитесь, что вы понимаете последствия этого. В зависимости от того, как настроена ваша система, пользователи в www-data могут планировать выполнение задач как www-data, и смогут вообще что-либо делать с любым файлом принадлежит www-data и любому процессу, выполняемому как www-data .)

См. man sudoers для получения информации о том, как это настроить. Если вы решите, что хотите сделать это, и у вас возникли проблемы, вы можете опубликовать отдельный вопрос об этом.

Разрешить не владельцам изменять разрешения для файла?

Я думаю, что возможно, что некоторые пользователи, которым не принадлежит файл, могут изменять некоторые или все разрешения файла, используя Списки контроля доступа . Я едва использовал ACL на Ubuntu, хотя. Если вы заинтересованы в достижении этого, вы можете разместить еще один вопрос с вопросом, возможно ли это, и если да, то как это сделать.

0
ответ дан 14 October 2012 в 06:50

Другие вопросы по тегам:

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