См. Разрешения для новых файлов в заданном каталоге

Я не понимаю, как моя Linux-машина работает с новыми файлами.

У меня Amazon Linux AMI (дистрибутив на основе RHEL), и когда я выполняю umask я получаю 0002 , поэтому получаю всякий раз, когда создаю новый материал, другие пользователи не получат доступ на write .

Но затем я иду в свой домашний каталог, и я печатаю:

 $ mkdir myDir $ touch myDir/myFile $ ls -l | grep myDir 

и я получаю

 drwxrwxr-x 2 myself myself 4096 May 11 22:37 myDir 

и для папки:

 $ ls -l myDir -rw-rw-r-- 1 myself myself 0 May 11 22:37 myFile 

Поэтому, видимо, там происходит больше, чем моя umask , так myFile разрешения myFile более ограничительны, чем защита от write .

Копаем глубже, если я попробую:

 $ sudo touch /var/run/myPidFile.pid $ ls -l /var/run/ | grep myPidFile.pid -rw-r--r-- 1 root root 0 May 11 22:42 myPidFile.pid 

Так myPidFile.pid получает гораздо более ограничительное разрешение по умолчанию, под /var/run тогда myFile попадает под мою домашнюю папку.

Мы могли бы обвинить root umask но если я запустил umask под root я получаю 0022 который действительно более ограничительный, чем 0002 umask моего пользователя, но по-прежнему не объясняет, как не разрешено разрешение бит выполнения.

Итак, как я могу понять разрешение по умолчанию для папки на Linux?

  • Не удалось загрузить как анонимный пользователь в vsftpd
  • установить umask для файловой системы, установленной sshfs
  • Разрешения UMASK для новых каталогов
  • Как я могу создать отдельный umask для каталога или пользователя?
  • Как установить `umask` для всего сеанса gnome?
  • Почему значение umask по умолчанию для useradd в openSUSE установлено на 022?
  • Возможно ли сделать файлы исполняемыми владельцем по умолчанию?
  • Установка umask для su root
  • 2 Solutions collect form web for “См. Разрешения для новых файлов в заданном каталоге”

    Umask – большая часть головоломки. У корня есть другая umask. Это довольно типично.

    Часть загадки, которую вам не хватает, состоит в том, что umask – это маска . Когда приложение создает файл, оно указывает некоторые разрешения; umask – это фильтр для этих разрешений, который удаляет некоторые биты разрешения. Файл содержит только биты разрешений, включенные в приложение. Например, приложение, которое намеревается создать неисполняемый файл (например, touch ), передает биты 666 (в восьмеричном); с umask 002 это приводит к разрешениям 664, т. е. rw-rw-r–: umask удалил бит другой записи. При создании каталога приложение (например, mkdir ) обычно разрешает выполнение, поэтому укажите 777 в качестве разрешений; umask 002 приводит к разрешениям 775 в каталоге, то есть rwxrwxr-x.

    Вы можете видеть, какие разрешения использует приложение, наблюдая за вызовами системы . Например:

     $ strace -e open,mkdir touch foo … skipping opening of dynamically linked libraries etc. … open("foo", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3 +++ exited with 0 +++ $ strace -e open,mkdir mkdir goo … skipping opening of dynamically linked libraries etc. … mkdir("goo", 0777) = 0 +++ exited with 0 +++ 

    Директории нужны разрешения на выполнение для нее, чтобы изменить ее или получить список, поэтому, когда каталог сделан, он автоматически получает бит + x.

    Однако файлам требуется только бит выполнения, если они являются скомпилированным двоичным (c / c ++ / etc) или интерпретируемым сценарием (sh / bash / php / perl / etc), а также не делают вещи исполняемыми по умолчанию по соображениям безопасности.

    Interesting Posts

    Потребление памяти Fail2Ban CentOS

    Как регулярно обновлять MOTD?

    Netstat Listen Queues

    Как добавить новую строку после «test message1» с помощью sed?

    Где значения параметров устройства, начинающиеся с «Monitor-xyz», происходят из xorg.conf?

    Значения отображения xmllint более 1 атрибута в одном исполнении

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

    Есть ли простой способ переместить подкаталоги btrfs в другую файловую систему btrfs?

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

    Получено несколько отчетов о процессах

    Arch Linux openSSH часто отключает соединение

    Почему regex '. +' Работает так, как ожидалось?

    Союзное монтирование в Linux

    Странная ошибка с ccsm (fedora 16) 32-битная

    Является ли каталог, на котором установлена ​​файловая система (точка монтирования), файл устройства типа файловой системы?

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