Change permissions for files, folders, or disks on mac

Шаг 1 – Как изменить права доступа в Linux через командную строку

chmod – эта команда используется для изменения прав доступа к файлу или папке. Каждый файл имеет типы пользователей, которые могут с ним взаимодействовать:

Тип Объяснение
Владелец (owner) Пользователь, создавший и владеющий данным файлом или папкой.
Группа (group) Все пользователи, члены одной группы.
Другие (other) Все другие пользователи в системе, не являющиеся ни владельцами, ни членами группы.

Команда ls -l, может быть использована для отображения прав доступа и владельца. К примеру, команда ls -l file1.txt отобразит:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

“-rwxr–rw-“ –  эта часть строки показывает права доступа

Здесь 4 главные буквы на которые вам надо обратить внимание: r,w,x,d. d означает, что тип файла — это каталог

В нашем примере, такой буквы нет (она стояла бы первой в строке), здесь вместо нее стоит символ “-“ (который в основном означает “нет”). Буква x означает разрешение на выполнение файла или папки (это разрешение необходимо для входа в папку). Буква w означает разрешение на запись файла или папки (редактирование, удаление и т.д.) И наконец последняя буква r, которая означает чтение. Если у вас есть права на чтение файла, вы можете прочесть содержимое файла, но не сможете предпринять другие действия (к примеру, вы можете прочитать код скрипта, но не сможете выполнить его).

1 – число хард связи. Проще говоря, хард связь это дополнительное имя для существующего файла.

user user – это значение показывает владельца файла и его группу.

 – это значение показывает размер файла.

Jan 19 12:59 – отображает дату последнего изменения.

file1.txt – предоставляет имя файла или папки.

Хорошо, теперь давайте вернемся к команде chmod. Это команда позволяет нам изменить права доступа к файлу или папке. Мы научим вас, как это сделать просто складывая номера. Каждое из прав доступа имеет свой собственный номер:

  • r (чтение) – 4
  • w (запись) – 2
  • x (выполнение) – 1

К примеру, если мы хотим изменить права доступа к файлу file1.txt на эти:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

Мы должны написать следующую команду

chmod 746 file1.txt

Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для получения числа 7 — сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа (чтение, запись, выполнение — rwx). Первый номер устанавливает права доступа для владельца файла. Второй номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца. Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение (4) и запись (2) файла. Третья часть в команде (file1.txt) – это имя файла для которого мы изменяем права доступа.

Еще один пример:

chmod 777 file2.txt

эта команда даст все права для каждого типа пользователей (владелец, группа и другие).

Вот список самых наиболее распространённых прав доступа для файлов:

Значение Цифровое значение Объяснение
-rw——- 600 Владелец может читать и записывать файл.
-rw-r–r– 644 Владелец может читать и записывать файл, группа и другие могут только читать.
-rw-rw-rw- 666 Владелец, группа и другие могут читать и записывать.
-rwx—— 700 Владелец может читать, записывать и выполнять, группа и другие не имеют никаких прав доступа.
-rwx–x–x 711 Владелец может читать, записывать и выполнять, группа и другие могут только выполнять.
-rwxr-xr-x 755 Владелец может читать, записывать и выполнять, группа и другие могут читать и выполнять.
-rwxrwxrwx 777 Все типы пользователей могут читать, записывать и выполнять.

Наиболее распространенные права доступа для каталогов:

Значение Цифровое значение Объяснение
drwx—— 700 Только владелец может читать и записывать в этом каталоге.
drwxr-xr-x 755 Владелец, группа и другие могут читать каталог, но только владелец может изменять содержимое.

Существуют и другие способы изменения прав доступа в Linux, используя команду chmod. Но нашей персональной рекомендацией станет, изучение одной из этих команд и её использование (в этом случае способ с номерами). Если вы хотите узнать больше о других путях изменения прав доступа, вы можете прочитать об этом здесь.

10 Simple Examples:

1. Read permission is added for all:

$ chmod a+r file

2. Execute permission is removed for all:

$ chmod a-x file

3. Change the permissions of the file to read and write for all:

$ chmod a+rw file

4. Read and write permissions are set for the owner, all permissions are cleared for the group and others:

$ chmod u=rw,go= file

5. Change the permissions of the directory and all its contents to add write access for the user, and deny write access for everybody else:

$ chmod -R u+w,go-w directory

6. Removes all privileges for all:

$ chmod file

7. Change the permissions of the file to read, write, and execute for all:

$ chmod 777 file

8. Sets read, write and no execution access for the owner and group, read only for all others:

$ chmod 664 file

9. Set a directory tree to ‘-rwx’ for owner directories, ‘-rw’ for owner files, ‘—‘ for group and others:

$ chmod -R u+rwX,g-rwx,o-rwx directory

10. Remove the execute permission on all files in a directory tree, while allowing for directory browsing:

$ chmod -R a-x+X directory

11 ответов

74

Лучший ответ

Полный контроль над файловыми атрибутами доступен в Java 7 как часть «нового» объекта ввода нового ввода-вывода (NIO.2). Например, разрешения POSIX могут быть установлены с помощью

В более ранних версиях Java, используя собственный собственный код, или утилиты командной строки -ing являются общими подходами.

Ответ дал

20 март 2009, в 00:00
Поделиться

39

В дополнение к предложениям erickson также есть jna, который позволяет вам называть родные библиотеки без использования jni. Это потрясающе удобно в использовании, и я использовал его на нескольких проектах с большим успехом.

Единственное предостережение в том, что оно медленнее jni, поэтому, если вы делаете это с очень большим количеством файлов, которые могут быть проблемой для вас.

(Редактирование для добавления примера)

Здесь приведен полный пример jna chmod:

Ответ дал

20 март 2009, в 01:00
Поделиться

15

До версии Java 6 поддержка обновления разрешений на уровне Java не поддерживается. Вы должны реализовать собственный собственный метод или вызвать для выполнения команды уровня ОС, например chmod.

Начиная с Java 6, вы можете использовать для установки прав доступа к файлам. Но он не имитирует файловую систему POSIX, которая позволяет устанавливать разрешения для разных пользователей. File.setXXX() разрешает только разрешение для владельца и всех остальных.

Начиная с Java 7, вводится разрешение на файл POSIX. Вы можете установить разрешения для файлов, как то, что вы сделали в системах * nix. Синтаксис:

Этот метод можно использовать только в файловой системе POSIX, это означает, что вы не можете вызвать его в системе Windows.

Подробнее об управлении разрешениями файлов рекомендуем прочитать этот пост.

Ответ дал

01 сен. 2015, в 14:11
Поделиться

15

для Windows 7 с nio 2.0:

Ответ дал

15 дек. 2012, в 16:00
Поделиться

5

Если вы хотите установить разрешение 777 на созданный файл, вы можете использовать следующий метод:

Ответ дал

29 март 2017, в 11:38
Поделиться

4

для Oralce Java 6:

работает под управлением Solaris/linux.

Ответ дал

31 март 2013, в 19:56
Поделиться

4

Вы можете использовать методы класса File:
http://docs.oracle.com/javase/7/docs/api/java/io/File.html

Ответ дал

26 сен. 2011, в 07:04
Поделиться

3

В дополнение к erickson ответьте здесь на полезную ссылку с примерами рабочих примеров использования PosixFilePermissions:

Ответ дал

02 июль 2014, в 10:34
Поделиться

2

Apache ant chmod (не очень элегантный, добавив его для полноты) кредит, общий для @msorsky

Ответ дал

15 дек. 2013, в 08:30
Поделиться

1

Ссылка: как изменить разрешение файла в java

Ответ дал

19 нояб. 2015, в 18:47
Поделиться

В Oracle Docs есть класс который очень похож на UNIX chmod. Он работает с java se 7+, хотя.

Ответ дал

16 сен. 2015, в 09:38
Поделиться

Ещё вопросы

  • 331Как заставить UTF-8 работать в веб-приложениях Java?
  • 42Android: не удается выполнить эту операцию, поскольку пул соединений закрыт
  • 3217Различия между HashMap и Hashtable?
  • 1964Как мне вызвать один конструктор из другого в Java?
  • 1390Сортировать карту по значениям
  • 1187Нужна ли нулевая проверка перед вызовом instanceof?
  • 866Преобразовать ArrayList в массив String []
  • 794Какую аннотацию @NotNull Java следует использовать?
  • 732Java: когда использовать статические методы
  • 675Ошибка: java: javacTask: исходный выпуск 8 требует целевой выпуск 1.8

Изменений разрешений

Добавление разрешений

Предположим, вы создали сценарий командной оболочки «Hello world». Как правило, вновь создаваемые сценарии не являются исполняемыми. Чтобы добавить для сценария разрешение на выполнение, используйте команду с опцией , как показано в листинге 5.

Листинг 5. Создание исполняемого сценария командной оболочки
$ echo 'echo "Hello world!"'>hello.sh
$ ls -l hello.sh
-rw-rw-r--. 1 ian ian 20 Nov 30 13:05 hello.sh
$ ./hello.sh
bash: ./hello.sh: Permission denied
$ chmod +x hello.sh
$ ./hello.sh
Hello world!
$ ls -l hello.sh
-rwxrwxr-x. 1 ian ian 20 Nov 30 13:05 hello.sh

Подобным образом можно использовать опцию для установки разрешений на чтение и опцию – для установки разрешений на запись. Фактически, можно использовать любые комбинации опций , и . Например, команда устанавливает для файла разрешения на чтение, запись и выполнение. Запуск в такой форме добавляет разрешения, которые еще не были установлены.

Выборочное изменение

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

Листинг 6. Выборочное добавление разрешений
$ echo 'echo "Hello world!"'>hello2.sh
$ chmod ug+xw hello2.sh
$ ls -l hello2.sh
-rwxrwxr--. 1 ian ian 20 Nov 30 13:08 hello2.sh

Удаление разрешений

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

Листинг 7. Удаление разрешений
$ ls -l hello*.sh
-rwxrwxr--. 1 ian ian 20 Nov 30 13:08 hello2.sh
-rwxrwxr-x. 1 ian ian 20 Nov 30 13:05 hello.sh
$ chmod o-xrw hello*.sh
$ ls -l hello*.sh
-rwxrwx---. 1 ian ian 20 Nov 30 13:08 hello2.sh
-rwxrwx---. 1 ian ian 20 Nov 30 13:05 hello.sh

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

Установка разрешений

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

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

Представление разрешений в восьмеричном формате

До сих пор для установки разрешений мы использовали символы (ugoa и rxw). В каждой группе существует три типа разрешений. Вместо символов для установки разрешений можно использовать восьмеричные числа. При таком способе установки разрешений может потребоваться использовать до четырех восьмеричных чисел. Первое число мы будем рассматривать при обсуждении атрибутов. Второе число определяет разрешения для пользователя, третье число –разрешения для группы и, наконец, четвертое число определяет разрешения для всех остальных. Каждое из этих трех чисел формируется путем сложения необходимых разрешений: чтение (4), запись (2) и выполнение (1). В примере, приведенном в листинге 5, сценарий hello.sh был создан с разрешениями -rw-r—r—, что соответствует значению 644 в восьмеричной форме. Установка разрешений на выполнение для всех пользователей и групп без исключения изменит это значение на 755.

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

Таблица 2. Numeric
permissions

Представление прав доступа

sU|sG|t|rU|wU|xU|rG|wG||xG|rO|wO|xO.

где sU — это SetUID, sG — это SetGID, t — это t-атрибут (sticky–бит), после чего следуют три тройки атрибутов доступа:

rU|wU|xU — права чтения (Read), записи (Write) и выполнения (eXecute) для владельца файла (User);

rG|wG|xG — права чтения (Read), записи (Write) и выполнения (eXecute) для группы файла (Group);

rO|wO|xO — права чтения (Read), записи (Write) и выполнения (eXecute) для всех остальных (Other).

Процессы с установленным битом sU выполняются с правами владельца. А с установленным битом sG – с правами группы.

В каталоге с установленным sticky–битом удалять файлы может только владелец или root. При том устанавливать этот бит может только root,
а сбрасывать может владелец и root.

Например, команда ls -l выводит права доступа в таком формате:

«-rw-rw-rw-» (Первая черточка — обычный файл, и 9 прав доступа — все могут читать и изменять)

«drwx——» (Каталог, полный доступ (чтение, изменение, выполнение) имеет только владелец файла)

«-rw-r——» (Обычный файл, владелец может читать и изменять, группа — читать, остальные — не имеют прав)

«drwxr-xr—» (Каталог, владелец имеет полный доступ, группа — чтение и выполнение, остальные — только чтение)

«drwxrwxrwt» (Каталог, все имеют полный доступ, однако, установлен sticky–бит, поэтому права записи в каталог
для членов группы и для посторонних ограничены их собственными файлами, и только владелец имеет право изменять список файлов в каталоге,
как ему вздумается. Такие каталоги называются разделяемыми, потому что предназначены они, как правило, для совместной работы всех
пользователей в системе, обмена информацией и т. п. При установке атрибута «t» доступ на выполнение для посторонних
(«t» в строчке атрибутов стоит на месте последнего «x») не отменяется. Просто они так редко используются друг без друга,
что ls выводит их в одном и том же месте. Если кому-нибудь придёт в голову организовать разделяемый каталог без доступа посторонним
на использование, ls выведет на месте девятого атрибута не «t», а «T».)

«-rws—x—x» (Обычный файл, установлен атрибут SetUID. Как и в случае с t-атрибутом, ls выводит букву «s» вместо буквы «x»
в тройке «для владельца». Точно так же, если соответствующего x-атрибута нет (что бывает редко), ls выведет
«S» вместо «s».)

«-rwx—s—x» (Обычный файл, установлен атрибут SetGID. Утилита ls выводит SetGID в виде «s» вместо «x»
во второй тройке атрибутов («для группы»). Замечания касательно «s», «S» и «x» действительны
для SetGID так же, как и для SetUID.)

права доступа представляются также в двоичном и восьмиричном виде.

Например:

Примеры записи прав доступа в двоичной форме 110 110 110 все могуть читать и изменять
111 100 000 владелец имеет все права, группа — чтение, остальные не имееют никкаких прав
001 111 100 000 установлен t-атрибут, владелец имеет все права, группа — чтение, остальные не имееют никкаких прав
010 111 100 000 установлен атрибут SetGID, владелец имеет все права, группа — чтение, остальные не имееют никкаких пра
100 111 100 000 установлен атрибут SetUID, владелец имеет все права, группа — чтение, остальные не имееют никкаких прав
Примеры записи прав доступа в восьмиричной форме 666 все могуть читать и изменять
740 владелец имеет все права, группа — чтение, остальные не имееют никкаких прав
1740 установлен t-атрибут, владелец имеет все права, группа — чтение, остальные не имееют никкаких прав
2740 установлен атрибут SetGID, владелец имеет все права, группа — чтение, остальные не имееют никкаких пра
4740 установлен атрибут SetUID, владелец имеет все права, группа — чтение, остальные не имееют никкаких прав

Использование команды в числовом виде

Права записываются одной строкой сразу для трёх типов пользователей:

  • владельца файла (u);
  • других пользователей, входящих в группу владельца (g);
  • всех прочих пользователей (o);

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

Пример: в числовом виде, установить права rwx-rx-rx:

chmod 755 filename

Пример — значение права «755»
владелец группа остальные
восьмеричное значение 7 5 5
символьная запись rwx r-x r-x
обозначение типа пользователя u g o

Таким образом, права «755» записываются в символьном виде как «rwxr-xr-x». При этом для понимания сути задания прав в Unix-системах полезно знать представление чисел в двоичной системе счисления.

Три варианта записи прав пользователя
двоичная восьмеричная символьная права на файл права на директорию
000 --- нет нет
001 1 --x выполнение чтение файлов и их свойств
010 2 -w- запись нет
011 3 -wx запись и выполнение всё, кроме чтения списка файлов
100 4 r-- чтение чтение имён файлов
101 5 r-x чтение и выполнение доступ на чтение
110 6 rw- чтение и запись чтение имён файлов
111 7 rwx все права все права

Часть разрешений имеет смысл только в сочетании с другими. Из первых четырёх пунктов (не дающих права на чтение файла) для файлов обычно используется только «—», то есть полный запрет доступа к файлу данному типу пользователей. Для директорий из всего списка обычно применяются только 0, 5 и 7 — запрет, чтение и выполнение, и полный доступ.

Суммировав эти коды для трёх типов пользователей, можно получить числовую или символьную запись. Например, chmod 444 {имяфайла}: 400+40+4=444 — все имеют право только на чтение (идентично «r—r—r—»).

Помимо стандартных разрешений ‘rwx’, команда chmod осуществляет также управление битами SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно.

Для SUID вес — 4000, а для SGID — 2000. Данные атрибуты имеют смысл при установленном соответствующем бите исполнения и обозначаются при символьной записи буквой «s»: «rwsrwxrwx» и «rwxrwsrwx» соответственно.

Пример: chmod 4555 {имяфайла} — все имеют право на чтение и выполнение, но запускаться файл на исполнение будет с правами владельца.

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

t-бит используется только с директориями. Когда t-бит для директории не установлен, файл в данной директории может удалить любой пользователь, имеющий доступ на запись к данному файлу. Устанавливая t-бит на директорию, мы меняем это правило таким образом, что удалить файл может только владелец этого файла. Следуя приведённой выше кодировке, t-бит имеет вес 1000.

Примечание: Право на запись даёт пользователю возможность записывать или изменять файл, а право на запись для каталога — возможность создавать новые файлы или удалять файлы из этого каталога. Если на каталоге стоит возможность записи (w), то файл внутри этого каталога можно будет удалить, даже если право на запись для него не установлено. (В соответствии с концепцией файловой системы POSIX).

Популярные значения

400 (-r--------)
Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия
644 (-rw-r--r--)
Все пользователи имеют право чтения; владелец может редактировать
660 (-rw-rw----)
Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий
664 (-rw-rw-r--)
Все пользователи имеют право чтения; владелец и группа могут редактировать
666 (-rw-rw-rw-)
Все пользователи могут читать и редактировать
700 (-rwx------)
Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия
744 (-rwxr--r--)
Каждый пользователь может читать, владелец имеет право редактировать и запускать на выполнение
755 (-rwxr-xr-x)
Каждый пользователь имеет право читать и запускать на выполнение; владелец может редактировать
777 (-rwxrwxrwx)
Каждый пользователь может читать, редактировать и запускать на выполнение
1555 (-r-xr-xr-t)
Каждый пользователь имеет право читать и запускать на выполнение; удалить файл может только владелец этого файла
2555 (-r-xr-sr-x)
Каждый пользователь имеет право читать и запускать на выполнение с правами группы(user group) владельца файла
4555 (-r-sr-xr-x)
Каждый пользователь имеет право читать и запускать на выполнение с правами владельца файла

Команда chmod

Права устанавливаются командой chmod. Команда chmod поддерживает установку прав как в восьмеричном представлении, так и в символьном (маска режима доступа).

Синтаксис команды прост:

chmod

Опции

Из самых полезных и часто используемых опций можно выделить одну:

-R — рекурсивное назначение прав. Т.е. назначить права всем объектам, руководствуясь регулярным выражением.

Например:

  • chmod -R 755 * — Назначение прав всем объектам текущего каталога, включая подкаталоги.
  • chmod -R 700 z* — Назначить полные права для владельца и исключить права для группы и всех остальных для всех объектов, которые начинаются именоваться на z, находящиеся в текущем каталоге и его подкаталогах.

Права

Права можно записывать как в восьмеричном представлении так и в символьном. В восьмеричном представлении, для стандартных прав, указываются 3 восьмеричные цифры (1-я для владельца, 2-я для группы, 3-я для всех остальных. См. таблицу выше).

Например:

  • chmod 744 koshka.txt — установит права для файла koshka.txt — (r w x r — — r — -);
  • chmod -R 775 sobaki — установит права на каталог sobaki и на все объекты, что внутри этого каталога, включая содержимое подкаталогов (r w x r w x r — x);
  • chmod 700 * — установит права только для владельца на все файлы и каталоги в текущем каталоге, включая подкаталоги и их объекты (rwx — — — — — -).

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

  • u — владельцу объекта;
  • g — группе объекта;
  • o — пользователю «все остальные»;
  • a — все вышеперечисленное.

Для назначения прав используются три знака: минус, плюс или равно:

  • — — убрать указанные права с объекта;
  • + — добавить указанные права к существующим правам объекта;
  • = — заменить права объекта на указанные.

Пример:

chmod g+w koshki.txt — Добавить пользователям группы файла koshki.txt права на запись в этот файл;

chmod a=rwx sobaki.doc — Заменит существующие права на файле sobaki.doc на полные права всем;

chmod o-w test.cgi — Уберет права на запись для пользователя «Все остальные».

chmod ug=rw spisok.doc — Выставить права на чтение и запись файлу spisok.doc для владельца и группы

Обратите внимание, что если у пользователя «все остальные» были какие-либо права, они сохранятся в неизменном виде.. Использование символьного представления позволяет редактировать права файлов более гибко:

Использование символьного представления позволяет редактировать права файлов более гибко:

  • chmod u+x,g+w-x koshki.txt — Добавить владельцу файла koshki.txt права на его выполнение, пользователям группы разрешить запись и запретить выполнение и оставить права остальных пользователей без изменений;
  • chmod u=rwx,g+w,go-x sobaki.doc — Установить полные права для владельца файла, разрешить пользователям группы запись и запретить выполнение всем пользователям, кроме владельца файла.

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

Основные права доступа к файлам в Linux

Изначально каждый файл имел три параметра доступа. Вот они:

  • Чтение — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
  • Запись — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
  • Выполнение — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.

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

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

Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.

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

Изменить владельца объекта используя команду ICACLS

1. Откройте командную строку от имени администратора.

2. Чтобы изменить владельца файла (папки или диска со всем содержимым) с помощью команды ICACLS введите команду icacls «полный путь к файлу и его название с расширением» /setowner «имя пользователя» /T /C  (выделенное красным замените на свое). К примеру, я хочу изменить владельца файла Urzb.dbf, который находится по пути D:\ и новым владельцем выбрать пользователя AS, тогда команда будет выглядеть так icacls «D:\Urzb.dbf» /setowner «AS» /T /C

Если вы хотите сделать новым владельцем файла (папки или диска со всем содержимым) группу «Администраторы» — нужно ввести команду icacls «полный путь к файлу и его название с расширением» /setowner «Администраторы» /T /C 

Если вы хотите сделать новым владельцем файла (папки или диска со всем содержимым) «TrustedInstaller» — нужно ввести команду icacls «полный путь к файлу и его название с расширением» /setowner «NT SERVICE\TrustedInstaller» /T /C

Если вам нужно, поменять владельца только папки или диска (не меняя владельца содержимых файлов и папок),   — нужно ввести команду icacls «полный путь к папке или к диску и его название» /setowner «имя пользователя» /C  (выделенное красным замените на свое). К примеру, я хочу изменить владельца папки 2019, которая находится по пути D:\ и новым владельцем выбрать пользователя AS, тогда команда будет выглядеть так icacls «D:\2019» /setowner «AS» /C

Если вам нужно, поменять владельца всех файлов с одинаковым расширением в папке или на диске  — нужно ввести команду icacls «полный путь к папке или к диску и его название\* расширение файла» /setowner «имя пользователя» /C  (выделенное красным замените на свое). К примеру, я хочу изменить владельца всех файлов с расширением txt в папке 2019, которая находится на диске D:\ и новым владельцем выбрать пользователя AS, тогда команда будет выглядеть так icacls «D:\2019\*.txt» /setowner «AS» /T /C

Modes

The modes indicate which permissions are to be granted or taken away from the specified classes. There are three basic modes which correspond to the basic permissions:

Mode Name Description
r read permitted to read the contents of file or directory (view files and sub-directories in that directory)
w write permitted to write to the file or in to the directory (create files and sub-directories in that directory)
x execute permitted to execute the file as a program/script or enter into that directory
X special execute applies execute permissions to directories regardless of their current permissions and applies execute permissions to a file which already has at least 1 execute permission bit already set (either user, group or other).

Is not a permission in itself but rather can be used instead of x. It is only really useful when used with ‘+’ and usually in combination with the -R option for giving group or other access to a big directory tree without setting execute permission on normal files (such as text files), which would normally happen if you just used ‘chmod -R a+rx’, whereas with ‘X’ you can do ‘chmod -R a+rX’ instead.

Ссылка на основную публикацию