Как получить доступ к файлу или папке в Windows

Разработанный ещё в 70-е годы прошлого века механизм распределения прав в операционных системах оказался настолько успешным, что используется в UNIX-системах до сих пор, то есть уже больше сорока лет.

Как изменить права доступа

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

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

Как сменить владельца папки или файла

Допустим, у нас есть папка c:\temp и нам не удается изменить параметры безопасности файлов внутри неё:

Что нужно сделать:

1. Вызовите свойства папки.

2. Перейдите на вкладку Безопасность.

Читайте также:  iOS 10.3 — что нового, установка, первые впечатления

3. Нажмите кнопку Дополнительно:

4. Нажмите на ссылку Изменить:

5. Кликните Дополнительно:

6. Поиск:

7. Выберите пользователя или группу, кого хотите назначить владельцем объекта, и нажмите ОК:

8. Нажмите OK:

9. Установите флажок Заменить владельца подконтейнеров и объектов, если это нужно, и нажмите OK:

(в нашем случае это нужно для смены владельца всех вложенных файлов)

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

Права в Unix

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

Суть модели прав довольно проста:

  1. У каждого файла есть владелец. Владелец устанавливает права доступа на свои файлы (например, командой chmod).
  2. В системе есть супер-пользователь (root), который устанавливает владельцев файлов (например, командой chown).

Теперь подробнее по первому пункту.

Доступ по пользователям делится на 3 группы

  1. Владелец (user) — тот самый, что имеет возможность изменять права доступа.
  2. Группа (group) — какая-то группа пользователей, которая должна иметь определённые права на файл. Посмотреть группы пользователя можно командой

    $ groups gosha gosha : gosha adm cdrom sudo dip plugdev lpadmin sambashare libvirtd

    — пользователь gosha состоит в группах: gosha adm cdrom sudo dip plugdev lpadmin sambashare libvirtd.

    С другой стороны можно посмотреть всех пользователей, состоящих в группе:

    $ grep cdrom /etc/group cdrom:x:24:gosha

    Не самый элегантный способ, но работает на всех Unix. Также можно использовать утилиты lid и members.

  3. Все другие (other) — любой пользователь, существующий в системе.

Сами права доступа также делятся на 3 группы

  1. Права на чтения (read или «4» в битовой маске) — право читать файл или читать содержимое директории.
  2. Права на запись (write или «2» в битовой маске) — право писать в файл или создавать файлы в директории.
  3. Право на исполнение (execute или «1» в битовой маске) — право запускать файл (программу, записанную в файле) или переходить по директории вглубь (например, сделать cd в поддиреторию).
Читайте также:  Антивирус для "Линукс": обзор, особенности

Битовая маска прав доступа

Давайте посмотрим права на папку /bin, например, с помощью команды ls -l / | grep bin :

drwxr-xr-x 2 root root 4096 май 6 03:24 bin |||||||||| |||||||||+-исполнение для всех остальных — разрешено ||||||||+—запись для всех остальных — НЕ разрешено |||||||+—чтение для всех остальных — разрешено ||||||+—-исполнение для группы владельца — разрешено |||||+——запись для группы владельца — НЕ разрешено ||||+——чтение для группы владельца — разрешено |||+——-исполнение для владельца — разрешено ||+———запись для владельца — разрешено |+———чтение для владельца — разрешено +———-тип файла — диретория

Кроме указанного представления полномочий доступа (символьного), существует так же и числовое представление. Для общего понимания, приведу таблицу соответствия числового (двоичного и десятичного) значения прав доступа и буквенного:

владелец группа остальные
буквенное rwx r-x r-x
числовое (десятичное) 421 401 401
итоговое (сумма) 7 5 5

В приведенной таблице показано, что право чтения, соответствует значению 4, право записи — 2, право выполнения — 1, отсутствие права — 0, складывая данные показатели, можно представлять и назначать права в числовом виде. Таким образом, вместо drwxr-xr-x можно написать 755. Часто можно увидеть именно числовое определение прав доступа — теперь вы понимаете, что это значит.

Часто можно увидеть на файле права 644 — постарайтесь понять, что это значит, чтобы закрепить полученные знания.

Заключение

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

Читайте также:  Как установить Linux второй операционной системой

Благодарю, что поделились статьей в социальных сетях. Всего Вам Доброго!

С уважением, Антон Дьяченко

Изменение прав

Это действие также можно сделать в упомянутых выше приложениях или из консоли командой «chmod» ( англ. «change mode» − «изменить режим»). Продолжим эксперименты на созданной ранее папке. Для начала попробуем дать право доступа только себе:

chmod 700 testdir/

Для изменения доступа к своим файлам и папкам права суперпользователя не нужны, поэтому набираем команду без sudo. Смотрим результат при помощи «ls -l» и видим следующее:

drwx—— 2 rizado rizado 4096 мар 23 19:33 testdir

Буква «d» перед правами доступа означает «directory», указывая, что это папка, а не файл. Попробуем дать себе полный доступ, группе только чтение и просмотр содержимого, а остальным ничего:

chmod 750 testdir/

Результат

drwxr-x— 2 rizado rizado 4096 мар 23 19:33 testdir

Обращаю ваше внимание, что устанавливать права на запись для всех небезопасно и это стоит делать только в крайнем случае, когда это действительно необходимо и оправдано.

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

man chmod