稍后将文件添加到文件夹时,将“允许作为程序执行文件”设置为默认设置

稍后将文件添加到文件夹时,将“允许作为程序执行文件”设置为默认设置

我有一个文件夹,我正在使用 chmod 设置其权限。

chmod 777 /home/Desktop/Project

就是成功。

我正在使用一个工具(.exe)从存储库下载项目。但下载完成后,/home/Desktop/Project 下的所有子文件夹和文件分别具有和的drw-r--r--权限-r--r--r--

在我开始在项目文件夹中下载之前,有什么方法可以为项目目录下的任何文件/文件夹设置可执行权限吗?

笔记:整个处理过程使用 python 脚本完成,该脚本使用上述工具下载项目。在 Ubuntu 14.04 LTS 上进行测试。

答案1

请参阅man umask。其中部分内容如下:

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.

这意味着,当创建一个文件时,它首先假设它的权限为777rwxwrxwrxRead, Write and Execute和。但是,然后,“模式位”(“权限位”的Owner另一个名称,但更短)与值的补码进行 AND 运算。如果设置(在 中,或在当前 shell 中,以影响该 shell),则操作为 GroupWorldumaskumask 022~/.bashrc

 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  

另一个常见的umask值是027(世界无权访问)。

这是一个棘手的想法,值得去理解。我记得在 20 世纪 70 年代我第一次接触 Unix 时,曾为此困惑了数周之久。

答案2

您可以做的是将该命令添加到您的.bashrcas 函数或别名中,然后使用运算符执行该函数或别名&&

换句话说 ./pythonscript.py && aliasToChMod

相关内容