当前位置:  开发笔记 > 编程语言 > 正文

设置Perl脚本的有效组ID

如何解决《设置Perl脚本的有效组ID》经验,为你挑选了0个好方法。

我有文件权限问题,我想解决,而不是诉诸于一切世界可写.

我正在将文件写入NetApp SAN.我正在写入的目录由devel用户拥有,并且具有一组devel具有组可写权限(0775)的目录.我写的用户名是在usernamedevel组中.

问题似乎是SAN只检查第一组,所以我得到了许可被拒绝.如果我使用newgrpsg命令将我的组更改为devel,那么我可以写入目录.

尝试写入的脚本是用Perl编写的,但它是通过ssh和一些bash脚本从另一台机器远程启动的.

我无法将目标目录更改为username组,因为还有其他开发人员,他们在不同的组中(但我们都共享该devel组).

我无法使Perl脚本本身具有setgid,因为我们使用适当的组运行不同的环境(devel,test,qa,production等),我不想在该级别管理文件权限位.

我无法setgid在Perl脚本中使用POSIX 函数,因为它不是以root身份启动的(我无法获得root权限),因此我获得了权限被拒绝.分配给$)$(给出相同的结果.

我不能使用newgrpbash中的命令,因为newgrp它不接受任何参数,它只是启动一个新的交互式shell(在新shell退出后执行以下任何命令).

我也无法使用newgrp启动新shell并从那里生成Perl脚本,因为Perl脚本是通过ssh连接在远程计算机上执行的.该脚本将在我的默认组下的远程计算机上获得"新鲜"shell,而不是newgrp在本地计算机上设置的组.

我无法使用该sg命令,因为它只需要一个参数.我引用完整的命令行,包括已知的参数.但是,我们通过ssh启动远程进程的方式包括在"$@"bash变量中传递本地参数.换句话说,我可以做一个process start或者process stop,process脚本处理ssh命令并传递我输入的任何本地参数"$@".我已经尝试过编写一个包装器,但发现我们使用了各种有趣的本地参数形式,并且犹豫是否要潜入必要的引用和逃避噩梦.

所以,我的问题是:是否有人知道从Perl或bash为正在运行的进程设置有效组ID的其他方法?是否存在多参数形式sg

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有