O bit de execução não está sendo definido [duplicado]

0

Acabei de configurar uma instância do EC2 para brincar e testar as permissões de arquivo; no entanto, noto que o bit de execução não está sendo passado para o nível inferior (read e write são, mas não execução).

[ec2-user@server www]$ touch web/hi
[ec2-user@server www]$ ls -l web/
total 4
-rw-rw-r-- 1 ec2-user apache  0 May 27 19:02 hi
-rwxrwxr-x 1 ec2-user apache 43 May 27 05:15 index.php
[ec2-user@server www]$ getfacl --all-effective web/
# file: web/
# owner: ec2-user
# group: apache
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

O que estou perdendo para que o bit de execução seja transmitido?

    
por AWippler 27.05.2015 / 21:43

1 resposta

1

Tente testar o mkdir, com o que a maioria das pessoas estaria preocupada?

toque não cria arquivos executáveis. Ele mascara esses bits no parâmetro mode para sys_open (). Origem código:

 133       /* Try to open FILE, creating it if necessary.  */
 134       fd = fd_reopen (STDIN_FILENO, file,
 135                       O_WRONLY | O_CREAT | O_NONBLOCK | O_NOCTTY, MODE_RW_UGO)

Note que não há X no argumento de modo. Você não pode forçar programas a criar arquivos executáveis (ou legíveis pelo mundo, etc) se eles não permitirem isso. Muita criação de arquivos vai se parecer com isso. A instalação de arquivos executáveis é o caso menos comum.

As chamadas do sistema usadas pelo toque também são descritas pelo padrão POSIX .

    
por 27.05.2015 / 22:00