我一直在使用 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
,它不需要可执行位。