CentOS7.x 下安装 gosu 程序

CentOS7.x 下安装 gosu 程序

前言

gosu是一个简单的工具,源于susudo具有非常奇怪且经常令人讨厌的TTY和信号转发行为这一简单事实。它们的设置和使用也有些复杂(特别是在sudo的情况下),这允许大量的表达性,但如果你所需要的只是“作为特定的用户运行特定的应用程序并退出管道”,那么它们就会失败。

gosu工作的核心是直接从Docker/libcontainer本身在容器中启动应用程序的方式中窃取的(实际上,是直接从libcontainer的代码库中使用 /etc/passwd 处理代码)。

$ gosu
Usage: ./gosu user-spec command [args]
   eg: ./gosu tianon bash
       ./gosu nobody:root bash -c 'whoami && id'
       ./gosu 1000:1 id

./gosu version: 1.1 (go1.3.1 on linux/amd64; gc)

一旦处理完了“用户/组”,我们就切换到该用户,然后执行指定的程序,gosu本身就不再驻留在或参与进程生命周期中。这避免了信号传递和TTY的所有问题,并将它们转移到调用gosu的进程和被gosu调用的进程,它们属于这些进程。

1. 下载

现在版本已经1.16了,详情参见https://github.com/tianon/gosu。执行以下命令下载安装gosu1.16:

GOSU_VERSION=1.16; \
wget -O /usr/local/bin/gosu https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64; \
wget -O /usr/local/bin/gosu.asc https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64.asc

2. 校验

对下载的文件进行校验,执行以下命令:

export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc

个人认为作用不大,强迫症状者可以执行它们。

3. 验证

修改权限,验证二进制文件是否能运行

chmod +x /usr/local/bin/gosu; \
gosu --version; \
gosu nobody true

后记

gosu 一般在docker中用的多一些。感谢阅读,有问题留言一起讨论哈(●’◡’●)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值