Defina “Permitir execução do arquivo como programa” como padrão quando arquivos são adicionados a uma pasta posteriormente

1

Eu tenho uma pasta, estou definindo suas permissões usando chmod.

chmod 777 /home/Desktop/Project

é sucesso.

Estou usando uma ferramenta (.exe) que baixará o projeto do repositório. Mas depois que o download concluir, todas as subpastas e arquivos em / home / Desktop / Project terão permissões como drw-r--r-- e -r--r--r-- , respectivamente.

É de alguma forma que eu posso definir permissões executáveis para qualquer arquivo / pasta no diretório do Project antes de começar a baixar no Project Folder?

Nota: Todo o processamento é feito usando o script python, que usa a ferramenta para baixar o projeto, como dito acima. Testando no Ubuntu 14.04 LTS.

    
por Jaimin Ajmeri 28.09.2015 / 14:42

2 respostas

1

Veja man umask . Diz, em parte:

trusty (1) umask.1posix.gz
Provided by: manpages-posix_2.16-1_all bug

NAME

       umask - get or set the file mode creation mask

SYNOPSIS

       umask [-S][mask]

DESCRIPTION

       The  umask utility shall set the file mode creation mask of the current
       shell execution environment (see Shell Execution Environment )  to  the
       value specified by the mask operand. This mask shall affect the initial
       value of the file permission bits of  subsequently  created  files.

Isso significa que, quando um arquivo é criado, ele assume que sua permissão será 777 , rwxwrxwrx , Read, Write and Execute access para Owner , Group e World . Mas, então, os "bits de modo" (outro nome para "bits de permissão", mas mais curtos) são ANDed com o COMPLIMENT do valor umask . Se você definir umask 022 (em ~/.bashrc , ou no shell atual, para afetar esse shell), a operação será:

 777    Original mode bits  0B111111111
 755    Compliment of 022   0B111101101
-----   AND     
 755    The result, rwxr-xr-x (Read, Write, Execute for Owner, Read, Execute for Group and World  

Outro valor comum de umask é 027 (sem acesso para o mundo).

Esta é uma ideia complicada e merece compreensão. Lembro-me de ter ficado confuso por semanas sobre isso nos anos 1970, quando me deparei com o Unix pela primeira vez.

    
por waltinator 28.09.2015 / 20:20
0

O que você pode fazer é adicionar esse comando à sua função ou alias .bashrc as e executar essa função ou alias com o operador && .

Em outras palavras, ./pythonscript.py && aliasToChMod

    
por Sergiy Kolodyazhnyy 28.09.2015 / 20:41