Как применяются разрешения файлов для вновь созданных файлов?

У меня есть каталог, который имеет следующие разрешения:

drwxr-s---. user group folder 

На рабочем столе я обращаюсь к этой папке и щелкните правой кнопкой мыши, чтобы создать новый файл-вызов foo.txt . Затем, используя терминал, я создал другой файл, используя команду $ touch bar.txt .

Когда я проверяю разрешения для этих файлов, у меня есть:

 -rw-r--r--. user group foo.txt -rw-rw-r--. user group bar.txt 

Я ожидал – -rw-r-----. user group -rw-r-----. user group . Как появилось дополнительное разрешение на запись для прав группы и чтения для других?

  • Каковы различные способы установки прав доступа к файлам и т. Д. На gnu / linux
  • предоставить групповые разрешения конкретному устройству
  • Как остановить Apache от root?
  • Есть ли легкая файловая система, которая реализует символические ссылки и разрешения файлов поверх другой файловой системы, которая не поддерживает их?
  • Выполнять бит чтения. Как работают права на каталоги в Linux?
  • Предоставить права на создание / управление пользователями
  • Постоянное изменение владельца (или группы) объема LVM
  • Как определяются права собственности и разрешения для папок tmpfs, созданных с помощью / etc / fstab?
  • One Solution collect form web for “Как применяются разрешения файлов для вновь созданных файлов?”

    setguid

    Здесь работают 2 силы. Первый – бит setgid, который включен в папке, folder .

     drwxr-s---. user group folder 

    Это s в пачке символов в начале этой строки. Они группируются следующим образом:

     d - directory rwx - read/write/execute bits for user rs - read/execute/setuid bits for group --- - nothing for other users 

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

    Вот почему файлы foo.txt и bar.txt создаются так:

     -rw-r--r--. user group foo.txt -rw-rw-r--. user group bar.txt 

    Разрешения & umask

    Разрешения, которые вы видите, – другое дело. Они регулируются настройками для вашего umask . Вы можете видеть, что ваш umask установлен с помощью команды umask :

     $ umask 0002 

    ПРИМЕЧАНИЕ. Эти биты также называются битами режима.

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

     0 - skipping for this conversation 0 - value of user bits 0 - value of group bits 2 - value of other bits 

    Представление «бит» в этой команде находится в десятичной форме. Таким образом, значение 2 равно 010 в двоичной форме, что является битом записи. A 4 (100) означает, что вы хотите, чтобы чтение было отключено. A 7 (111) означает, что вы хотите, чтобы чтение / запись / выполнение были отключены. Построим это отсюда:

     $ umask 007 

    Отключите биты чтения / записи / выполнения для других пользователей.

    Итак, как насчет ваших файлов?

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

     $ umask 007 

    И начали касаться новых файлов, мы увидим, что они созданы так:

     $ touch newfile1.txt newfile2.txt $ ls -l |grep newfile -rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt -rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt 

    Если мы изменили его на нечто другое, скажем так:

     $ umask 037 $ ls -l |grep newfile -rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt -rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt -rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt -rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt 

    Это не повлияет на файлы, которые мы уже создали. Глянь сюда:

     $ umask 0037 $ touch newfile1.txt newfile2.txt $ ls -l | grep newfile -rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt -rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt -rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt -rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt 

    Итак, что происходит с файловым браузером?

    umask – это то, что я назвал «мягкой» настройкой. Это ни в коем случае не является абсолютным и может быть легко исключено в Unix несколькими способами. Многие из инструментов используют коммутаторы, которые позволяют вам указывать разрешения как часть их работы.

    Возьмите mkdir например:

     $ umask 0037 $ mkdir -m 777 somedir1 $ $ ls -ld somedir1 drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1 

    С помощью переключателя -m мы можем переопределить umask . Команда touch не имеет этого средства, поэтому вам нужно проявить творческий подход. См. Этот U & L Q & A под заголовком: Можно ли создавать файлы с разрешениями, заданными в командной строке? для таких методов.

    Другие способы? Просто переопределите umask . Браузер файлов, скорее всего, либо сделает это, либо просто полностью игнорирует umask и кладет файл, используя любые разрешения, которые он настроил для этого.

    Interesting Posts

    Как искать и заменять строки, соответствующие списку заметок для нескольких файлов

    Установка реверсивного моста PCIe-PCI в Debian приводит к «неклассифицированному устройству»,

    Включение / dev / fb0 на виртуальных машинах CentOS 7?

    Найдите кучу gps-файлов в папке для окончательного расстояния, выведите список расстояний

    Ripping DVD в Debian Wheezy

    Получите новейший gcc для debian?

    cyrus-imapd & SSL

    ssh на сервер с использованием .ssh / config alias и запускать псевдоним на сервере в одно и то же время

    Команда Wget, которая возвращает всех веб-страниц на веб-сервере

    Как узнать имя функции внутри руля

    Как создать раздел MBR / dev / nodes FreeBSD для монтажа

    Почему «меньше» иногда забывает свою историю

    Добавление дисков в зашифрованный раздел LVM

    Использование заголовков ядра реального времени для компиляции кода пользовательского пространства и заголовков по умолчанию

    Автоматическое обновление на Scientific-linux 6.1 64bit

    Linux и Unix - лучшая ОС в мире.