Как мой интернет-браузер может записывать файлы в файл «Загрузки», если разрешения по умолчанию не позволяют «писать»?

14

На терминале я использовал эту команду:

stat Downloads

Он заявил, что разрешения для моей папки загрузок были "drwxr-xr-x"

Разве это не означает, что только администратор и владелец смогут редактировать папку? Как браузер загрузит что-нибудь и поместит его в папку, если у него нет разрешения, или Ubuntu обнаружит, что вы разрешили браузеру это сделать?

Raffat
источник
4
Я подозреваю, что если вы войдете в систему, ls -ld Downloads то обнаружите, что фактически являетесь владельцем папки «Загрузки». Поэтому, когда вы запускаете браузер, именно вы, как владелец каталога, пытаетесь поместить что-то в этот каталог.
Чарльз Грин

Ответы:

20

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

И поскольку вы являетесь владельцем папки «Загрузки», ваша учетная запись пользователя имеет (обычно по умолчанию) полные права read / write / e xecute . Поэтому в вашем браузере они тоже есть.

Чтобы уточнить вывод статистики(d rwx r-x r-x) :

  • Первая буква (здесь:) dописывает тип объекта файловой системы, который вы изучаете. dозначает, что вы показываете разрешения каталога. Если вы изучаете файл, вы получите -вместо этого. Есть и другие возможности, например, lдля ссылки. Далее есть (согласно комментарию @ Atsby) bдля блочных устройств, cдля символьных устройств, pдля каналов и, возможно, даже больше ...
    Смотрите * примечание о правах доступа к каталогу!
  • Первые три буквы rwxобозначают права владельца . Буква означает, что соответствующий тип доступа предоставлен, а "-" означает отказано. -> полный доступ
  • Вторые три буквы r-xпредставляют разрешения , которые имеют пользователи, которые являются членами группы владельца . Это тот же формат "rwx", что и выше. -> только разрешения на чтение и выполнение, без записи
  • Последние три буквы r-xпредставляют разрешения любых других пользователей, которые не являются собственниками и не являются членами группы владельцев. Все тот же формат "rwx". -> также только разрешения на чтение и выполнение, без записи

* Права доступа к
каталогу : обратите внимание, что права доступа к каталогу имеют другое значение, чем права доступа к файлам. Для каталогов ...
доступ для чтения (r) означает перечисление файлов ( lsкоманда) ,
доступ для записи (w) означает изменение содержимого каталога (создание, удаление, переименование файлов) и
выполнение доступа (x) означает вход в каталог ( cdкоманда или открытие с файловым менеджером)


Расширенные разрешения на выполнение:

Иногда вы находите S, s, Tили tгде бы ожидать x.

Существуют разрешения SUID (Установить идентификатор пользователя) и SGID (Установить идентификатор группы), которые заменяют обычные, xесли файл должен всегда выполняться с разрешениями его владельца (SUID) или его группы владельцев (SGID). Для SUID xзаменяется разрешение пользователя (первый блок), для SGID заменяется xразрешение группы (второй блок). Прописная буква Sозначает -(отказано в разрешении), а небольшое s- x(разрешение предоставлено).

Если xтретий блок (права других пользователей) заменен на T/ t, это означает, что установлен «Sticky Bit» . В настоящее время он в основном используется для предотвращения удаления файла пользователями, не являющимися владельцами, которые имеют разрешения на запись. Опять же, заглавная буква Tравна -(без разрешения на выполнение для других) без «Sticky Bit», в то время как маленькая tобозначает предоставленный доступ для выполнения ( x) для других.


Восьмеричное обозначение:

Разрешения также могут быть представлены 3-4 цифрами (значения 0-8), что называется восьмеричной нотацией.
Обычно у вас есть 3 или 4 цифры, а первая цифра установлена ​​в 0 (например, 755или 0755).

  • Первая цифра (которую можно опустить, если она равна 0) представляет расширенные флаги разрешений. Значения флага: SUID = 4, SGID = 2, Sticky = 1.
  • Вторая цифра представляет состояние флагов разрешений владельца (rwx; первый блок разрешений в форматировании строки). Значения флага: r = 4, w = 2, x = 1.
  • Третья цифра представляет состояние флагов разрешений группы владельцев (rwx; второй блок разрешений в форматировании строки). Значения флага: r = 4, w = 2, x = 1.
  • Четвертая цифра представляет состояние всех флагов разрешений других пользователей (rwx; третий блок разрешений в форматировании строк). Значения флага: r = 4, w = 2, x = 1.

Чтобы вычислить значение цифры, просто суммируйте значения всех установленных флагов. Примеры: rwx = 4 + 2 + 1 = 7, rx = 4 + 0 + 1 = 5


Источник и дополнительные ссылки:
http://www.zzee.com/solutions/linux-permissions.shtml
http://www.informit.com/articles/article.aspx?p=1822622&seqNum=6
Пожалуйста, посетите эти ссылки для более подробной информации особенно о расширенных разрешениях.

Byte Commander
источник
1
+1, dзначит directoryкстати!
кос
@kos Спасибо, я добавлю это. Какими будут другие возможности вместо «d» в этом месте?
Byte Commander
Нет, если это не каталог, это действительно файл, поэтому у вас всегда есть либоd-
kos
3
@kos есть и другие возможности, например, lдля мягкой ссылки, bдля блочного устройства, cдля символьного устройства, pдля канала ... это только те, о которых я знаю, возможно, есть и другие
Atsby
@ Atsby Вы правы, я говорил о том, lsкогда действительно использовался OPstat
kos