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

Начиная с этой строки:

s='A B C D'

Если мы хотим, чтобы он печатался как столбец, мы можем использовать bash:

$ echo "${s// /$'\n'}"
A
B
C
D

Или, используяsed:

$ sed 's/ /\n/g' <<<"$s"
A
B
C
D

Или, используяtr:

$ tr ' ' '\n' <<<"$s"
A
B
C
D

Или, используяawk:

$ awk '$1==$1' RS=' ' ORS='\n' <<<"$s"
A
B
C
D

Или, используяgrep:

$ grep -o '[[:alpha:]]' <<<"$s"
A
B
C
D
1
30.01.2020, 22:31
2 ответа

В Unix есть файлы и каталоги (и какие-то странные «файлы», такие как каналы и устройства, но права доступа к ним работают так же, как и к обычным файлам ), а символические ссылки (по сути являются файлами, содержащими имя файла, на который они указывают ). Каталог — это просто список имен файлов и ссылок на соответствующие физические файлы. Таким образом, один и тот же файл может отображаться под разными именами или под одним и тем же (или другим )именем в разных каталогах.

Существует три основных разрешения на объекты файловой системы :r (ead ), w (rite )и e (x )ecute. Для обычных файлов чтение означает возможность чтения их содержимого (, например. копировать, просматривать,... ), писать означает иметь возможность изменять содержимое (перезаписывать, добавлять в конец, усекать до нулевой длины; обратите внимание, что это не зависит от чтения, у вас может быть файл, который вы можете изменять, но не читать ),выполнить означает запустить его как программу. Для каталогов чтение означает перечисление его содержимого (имен файлов ), запись означает изменение (добавление/удаление файлов ), выполнение означает использование каталога для доступа к самим файлам (, если у вас есть r но не x в каталоге, вы можете видеть имена файлов, но не можете добраться до них ). Разрешения символической ссылки не имеют значения, просто возьмите их, как указано выше. :Короткий файл, содержащий указанное имя файла, и содержимое обрабатывается нормально. Да, вполне ортогональный (независимый ).

Система классифицирует разрешения на три группы. :Владелец, группа, к которой принадлежит объект, и все остальные. Каждый пользователь принадлежит к одной (или нескольким )группам. При проверке, разрешена ли операция, сначала проверьте, являетесь ли вы владельцем, если да, то правило разрешений владельца; если вы не являетесь владельцем, но принадлежите к группе, учитываются групповые разрешения; в противном случае проверяются другие разрешения.

Да, он допускает довольно бессмысленные комбинации разрешений. Но это простая модель, и когда-нибудь вы найдете применение какой-нибудь «бессмысленной» комбинации.

Владелец некоторого объекта имеет право изменять разрешения по своему желанию.

0
28.04.2021, 23:25

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

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

Поскольку это не изменяет родительский каталог :Родительский каталог содержит имена дочерних файлов (и каталогов ). Режим (, включающий разрешение, является частью файла (, а не частью содержащего его каталога ). Вы можете увидеть это, если создадите жесткую ссылку из двух каталогов.

0
28.04.2021, 23:25

Теги

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