Вопрос Как настроить разрешения по умолчанию для файлов


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


2
2017-08-25 08:33


происхождения


Прочтите все о разрешении файлов по умолчанию в man umask, - Jos
но @Jos что umask добавление настроек x немного??? - Zanna
@Zanna Нет. Это безопасная защита от Unix: ни один файл, когда-либо созданный, не будет автоматически выполнен. Видеть askubuntu.com/questions/186747/... - Jos
поэтому ответ: это невозможно ... @Jos - Zanna
Он не может быть установлен как значение по умолчанию, нет. - Jos


ответы:


Отказ от ответственности: Как комментируют некоторые пользователи, автоматическое создание файлов с исполняемыми разрешениями нарушает значительную часть модели безопасности Linux.

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

Вы можете написать функцию для создания файла и одновременного изменения разрешений. Эта функция должна быть добавлена ​​к каждому пользователю .bashrc файл. Этот файл можно найти по адресу /home/username/.bashrc,

Вот пример, чтобы сделать функцию под названием createafile, Строки для добавления:

createafile() {
if [[ -z $1 ]]; then
  echo "Cannot create a file with no name!"
  return 1
elif [[ -e $1 ]]
  echo "That file already exists!"
  return 1
elif [[ $2 = -* ]]; then
  echo "Permissions must not start with a '-'!"
  return 1
fi
touch $1
if [[ -z $2 ]]; then
  perms=764
else
  perms=$2
fi
chmod $perms $1
}

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

createafile newfile.txt

Что создаст файл с вашими восьмеричными разрешениями по умолчанию 764 или -rwxrw-r--, В качестве альтернативы, если вы хотите указать другой режим разрешения, вы можете ввести это в любом распознанном формате для chmod команда. Поэтому, чтобы сделать файл с правом чтения / записи для всех

createafile anotherfile.txt 555

или

createafile anotherfile.txt a+rw

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

В функции есть строка, которая запрещает пользователям вводить chmod вариант случайно. Это означает, что вы не можете использовать функцию удаления разрешений chmod где разрешения начинаются с - персонаж.


2
2017-08-25 11:36



Это мой первый .bashrc функция! Рад, что вам понравилось ^ _ ^. Я немного обеспокоен возможностью прохождения chmod вариант случайно, но не смог выработать регулярное выражение, чтобы увидеть, есть ли штрих в начале строки. - Arronical
Хороший улов. -R довольно полезен, но есть много ошибок, совершенных более новыми пользователями, когда они блиц /usr/bin или пришли другие необходимые директории с неправильными perms! - Arronical
Да, я понимаю, о чем вы говорите, и обычно я это использую. Обычно это в / var / www / html для веб-материалов, но вы всегда в конечном итоге фиксируете каталог perms. Это дает мне представление о другой функции! - Arronical
Помог ли этот ответ вообще @ForestAmp? - Arronical