Umask通过SAS代码

时间:2017-09-01 02:23:04

标签: sas

我一直在尝试更改SAS代码创建的所有输出数据集的权限。 我知道我可以使用chmod命令发布数据集的创建来更改权限。但是,如果我从代码中获得多个输出并且我想要更改其权限,那么如何在代码中创建的每个数据集上动态应用chmod而无需手动提供数据集名称呢? 防爆。如果我的SAS代码执行此操作:

`Data Lib1.test1
     Lib2.test2
     Lib3.test3;
Set Work.Test;
If (certain conditions) then output Lib1.test1;
If (certain conditions) then output Lib2.test2;
If (certain conditions) then output Lib3.test3;
run;`

如何在创建完成后将chmod应用于所有这些数据集,而无需手动提供数据集名称。我知道&syslast可以给我最后一个触摸的数据集,但其他两个呢? 附:我无法在这里更新数据步骤代码块,我只能在上面提到的数据步骤结束后添加代码。

我尝试在会话的最开始使用Umask命令,但它不允许我设置执行权限。 X umask 000 它仅为数据集设置rw,rw,rw设置,但不授予u=rwx,g=rwx,o=rwx权限。

1 个答案:

答案 0 :(得分:3)

两个选项:

  1. 尝试在创建数据集的文件夹上设置setgid位。然后,他们应该自动从文件夹继承其组权限。例如。 chmod g+s /mydir
  2. 使用通配符命令为文件夹中的所有sas数据集设置权限,例如chmod g=rw /mydir/*.sas7bdat