创建时使用 751 权限创建文件

创建时使用 751 权限创建文件

我一直在使用 Linux 目录创建练习 perl 脚本vi <filename>,需要chmod 751 <filename>先执行此操作才能按我的意愿运行它。我确信有一种简单的方法可以默认我的权限或在创建时配置它们,但我对此并不熟悉 - 求助。

答案1

一个简单的解决方案是创建一个 bash 别名,vi它将首先创建文件,然后在打开文件之前更改其权限。使用一些容易记住的名称,例如vix(x 代表可执行位):

例如(未经测试):

函数 vix {
        触摸$1
        chmod 751 $1
        六 $1
}

请注意,对 vi 本身进行别名化并不是一个好主意,因为许多其他程序会直接调用它,这可能会导致系统出现问题。

答案2

751 对脚本来说没什么意义——它允许“其他人”执行文件,但不能读取它。(对于脚本来说,没有得到设置用户标识很荣幸,这是不可能的。)

要设置新创建文件的默认权限,您可以使用umask(每个进程)或默认 ACL(每个目录)。但它们都只能消除权限位;它们都不会添加除非程序明确要求,否则将自动删除“可执行”位。(例如,fopen()始终请求 0666,这是文件的合理默认值。)

您必须遵循 mjb 的建议,编写一个脚本来创建文件并立即更新其权限。或者,运行您的练习脚本,例如perl foo.pl,它不需要可执行位。

相关内容