Установите разрешение по умолчанию при создании файла

Конкатенация файлов в оболочке легка:

cat staticEntries.dic dynamicEntries.dic

Это распечатает содержание тех двух файлов на stdout. Если Вы хотите перенаправить результат в новый файл, сделайте:

cat staticEntries.dic dynamicEntries.dic > mydict.dic

Но это, вероятно, не, что Вы ищете...? Я должен сказать, я действительно не понимаю проблемы, которую Вы пытаетесь решить.

3
09.07.2018, 03:21
5 ответов

В Unix / Linux есть флаг процесса под названием umask , интерпретируемый как восьмеричное число, которое говорит, какие разрешения для принимают off вновь созданный файл. Флаг наследуется дочерними процессами.Установка его для оболочки заставляет все процессы, запущенные позже, использовать это значение.

Разрешения в виде битов: 1 для x , 2 для w и 4 для r , которые могут быть объединены в восьмеричную цифру. Например, r-x равно 4 + 1 = 5. Есть 3 набора разрешений (пользователь, группа, другие). Итак, 664 - это rw-rw-r - .

При создании «нормального» файла базовые права доступа равны 666 (приятно демонически, не так ли?), При создании исполняемого файла - 777. Отсюда umask снимается, 002 будет дайте 664 для обычного файла.

Оболочки имеют встроенные команды, называемые umask , для установки umask. Вы можете запускать их в интерактивном режиме, но чаще всего они выполняются в каком-либо файле запуска, чтобы оболочка сделала его постоянным. В случае bash (1) это нужно сделать в ~ / .bashrc . В Fedora он установлен для всей системы в / etc / bashrc .

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

9
27.01.2020, 21:09

Используйте umask.

Например, в вашем случае:

umask 002
2
27.01.2020, 21:09

Если вы хотите изменить umask по умолчанию для всех пользователей, добавьте эту строку:

umask 0002

в / etc / profile .

Хотя любой пользователь может изменить это значение, установив собственное в ~ / .bashrc .

Чтобы вычислить права доступа к файлу, сгенерированные значением umask, рассмотрите следующую формулу:

generated_permission = (NOT umask) AND default_permission

где NOT и AND - логический побитовый оператор ~ и & .

3
27.01.2020, 21:09

В прежние времена (в 1970-х )люди действительно писали простой код, который делал вещи трудными для понимания. С этим связаны другие ответы.

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

umask g+w

Это лучше, так как в этом режиме маска инвертируется.

Фон :интерфейс ядра по-прежнему управляет маской, которая применяется к третьему параметру open().

С 1988 (с ksh88 )был установлен новый интерфейс оболочки для команды chmodв оболочке.

umask -S

печатает маску режима создания файла в современном символическом синтаксисе chmodи

umask u=rw,g=rw,o=r

позволяет установить маску создания файла, используя синтаксис chmod.

-1
27.01.2020, 21:09
If you want to set the permission temperorily Use below command

Example: umask 022

In above case user have rw Permission
Group have read permission
Others have read permission

How it is calculated

for file we will calculate like this

Suppose if you want only read permission  calculated like this

since read permission value is 4 so we need to get value of 4 post subtracting

Totalvalue(6) - writevalue(2) =4(Read)
0
27.01.2020, 21:09

Теги

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