加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 如何在脚本中使用newgrp,然后在脚本退出时保留在该组中

发布时间:2020-12-16 01:24:57 所属栏目:安全 来源:网络整理
导读:我在一个solaris盒子上运行一个脚本.特别是SunOS 5.7.我不是根我正在尝试执行类似于以下的脚本: newgrp thegroup FOO source .login_stuff echo “hello world” FOO 脚本运行.问题是它返回到调用进程,这将使我进入旧的源代码.login_stuff来源.我明白这个行
我在一个solaris盒子上运行一个脚本.特别是SunOS 5.7.我不是根我正在尝试执行类似于以下的脚本:

newgrp thegroup <<
FOO
source .login_stuff
echo “hello world”
FOO

脚本运行.问题是它返回到调用进程,这将使我进入旧的源代码.login_stuff来源.我明白这个行为.我正在寻找的是一种留在子shell中的方法.现在我知道我可以把xterm& (见下文),这样做,但是有一个新的xterm是不合需要的.

Passing your current pid as a parameter.

newgrp thegroup <<
FOO
source .login_stuff
xterm&
echo $1
kill -9 $1
FOO

我没有sg可用.
另外,newgrp是必要的.

以下作品很好;将以下位置放在(Bourne或 Bash)脚本的顶部:
### first become another group
group=admin

if [ $(id -gn) != $group ]; then
  exec sg $group "$0 $*"
fi

### now continue with rest of the script

这在Linuxen上工作正常.一个警告:包含空格的参数分开.我建议你使用env arg1 =’value 1’arg2 =’value 2’script.sh构造来传递它们(由于某种原因我无法使用$@)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读