为什么我pid调节参数设置技巧的rootPid没有效果

没有Root权限Oh My Zsh使用攻略 - 推酷
没有Root权限Oh My Zsh使用攻略
有些Linux环境中我们没有管理员权限,但这并不能阻止Harttle使用
。 为此我们需要本地安装
配置, 再设置启动Shell来使我们登录即进入
如果你还不知道什么是
,请看下图:
安装和配置Shell的过程很可能会使你无法再次登录Shell, 请确保你有其他的方式访问该机器,这样发生状况时可以重置Shell配置。 比如:
你有桌面系统!可以直接进入Gnome或者KDE。
可用的 scp ,如果你与主机之间没有代理等中间人的话, scp 应该是好使的。
Samba等文件服务。这使你可以在不登录的情况下进行配置。
从源码安装Zsh:
wget -O zsh.tar.gz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && tar -xvzf.tar.gz -C zsh --strip-components 1
# 配置,比如将Zsh安装到~/usr下
./configure --prefix=$HOME/usr/
make install
安装成功后找到 ~/usr 下的zsh可执行文件,运行一下看是否安装成功了:
~/usr/bin/zsh
如果你成功地进入了另一个Shell那么Zsh安装就大功告成了,按下 Ctrl+D 返回刚才的Bash。
安装Oh My Zsh
是一个社区驱动的(就像Arch一样!)Zsh配置框架,有很多漂亮的主题和插件可以选择。 今天大多小伙伴们安装Zsh的原因居然是这个配置框架! 使用
提供的安装脚本即可安装(默认目录为 ~/.oh-my-zsh )。 如果你在此前尝试过安装Oh My Zsh,务必先删除之: rm -rf ~/.oh-my-zsh 。
sh -c &$(wget /robbyrussell/oh-my-zsh/master/tools/install.sh -O -)&
如果上述命名发生错误,可以通过其他途径获得这个 install.sh ,然后无情地运行它。 比如wget时禁用SSL验证:
wget --no-check-certificate /robbyrussell/oh-my-zsh/master/tools/install.sh
bash install.sh
无论你是怎样得到并运行 install.sh 的,只要得到下列结果就表明安装成功:
/ __ \/ __ \
/ __ `__ \/ / / /
/ / ___/ __ \
/ /_/ / / / /
/ / / / / / /_/ /
\____/_/ /_/
/_/ /_/ /_/\__, /
/___/____/_/ /_/
....is now installed!
登录 Shell
登录Shell是指一个Unix用户在登录系统时为该用户启动的默认Shell, 包括通过X11登录,通过TTY登录,以及通过SSH登录等。 在多数Linux发行版以及MacOS中为 /usr/bin/bash 。 既然说道这里Harttle就简单列一下登录Shell相关的配置文件以帮助理解:
/etc/passwd (644):所有用户的用户名、用户组、 $HOME 、登录Shell等信息
/etc/shadow (400):所有用户的用户密码的Salt和Hash
/etc/shells (644):登录Shell列表, chsh -s &shell-name& 只能选自该列表
注意 install.sh 会使用 chsh 更该你的登录Shell,
chsh -s $(grep /zsh$ /etc/shells | tail -1)
注意这行代码的危险:它将会更改你的登录Shell为 /etc/shells 中的 zsh 。 而不是你在本地安装的那个
。版本的区别足以让你的zsh完全不可用。
因为我们没有Root权限,因此无法将本地安装的Zsh添加到 /etc/shells 。 因此也就不能通过 chsh 切换到我们本地的
。 所以我们仍然使用Bash作为登录Shell,而在 ~/.bashrc 中运行我们的Zsh。 在该配置文件尾加入:
exec $HOME/usr/bin/zsh
不要使用 source $HOME/usr/bin/zsh 或 . $HOME/usr/bin/zsh ,这些命令会创建子进程。 而 exec 会用新的命令替换当前进程的上下文,因而保持了PID不变。
将Zsh加到PATH中来方便今后对 zsh 的调用,这个步骤是可选的。
在 ~/.bashrc 中更新PATH即可:
export PATH=&$HOME/usr/bin/zsh&
注意 PATH 两边不能有空格,且必须使用双引号来让Bash解析 $HOME 的值。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致中国领先的IT技术网站
51CTO旗下网站
我们为什么不允许非root用户在CentOS直接运行Docker命令
这篇文章介绍了不用sudo而直接运行Docker命令所存在的安全漏洞,并强烈建议通过设置sudo规则作为暂时的解决方法。
作者:翻译:刘凯来源:dockone| 10:16
容器技术最大的弱点是安全性不足,Docker也不例外。因此,如何加强Docker的安全性是每一个Docker用户必须慎重考虑的问题。这篇文章介绍了不用sudo而直接运行Docker命令所存在的安全漏洞,并强烈建议通过设置sudo规则作为暂时的解决方法。
我经常会收到用户反馈的Bug,他们问我们『为什么默认情况下不能使用非root用户直接运行Docker命令』。
Docker能够将/run/docker.socket的文件访问权限设为660,并将其所属的用户组设为docker。
这使得非root用户只要加入docker用户组,就无需使用sudo,或者通过su命令切换到root用户的情况下运行Docker命令。这听起来很不错。
ls&-l&/var/run/docker.sock&&srw-rw----.&1&root&docker&0&Aug&&3&13:02&/var/run/docker.sock&
但是,在RHEL、Fedora和CentOS上,我们更喜欢将doker.socket设置为:
ls&-l&/var/run/docker.sock&&srw-rw----.&1&root&root&0&Aug&&3&13:02&/var/run/docker.sock&
为什么呢?原因很简单:如果用户可以与Docker Socket通信,他们就能够执行以下命令:
docker&run&-ti&--privileged&-v&/:/host&fedora&chroot&/host&
这时用户将拥有主机的完全控制权。这就相当于将sudoers文件修改为以下内容(译者注:dwalsh为用户名):
grep&dwalsh&/etc/sudoers&dwalsh&&ALL=(ALL)&&&NOPASSWD:&ALL&
这将允许(dwalsh)用户无密码运行所有命令,获得主机的完全控制权。但是这有一个很大的安全漏洞。Docker命令没有内置的审计和日志功能,但是sudo有。
Docker目前会记录事件,但是Docker daemon重启时事件会消失。Docker目前没有审计功能。
从安全性的角度,红帽已经表达了允许非root用户在没有审计(auditing)和适当的日志的情况下访问Docker
Daemon的顾虑。我们已经在PR14446实现了这些控制,它依靠了一个认证机制,但这个机制还在讨论中。在我们实现了审计和日志功能之前,我们推荐通过设置sudo规则来访问Docker
Daemon。这将允许sudo来提供审计和日志功能。
设置sudo规则
如果你希望非root用户能够直接执行Docker命令,我们推荐通过设置sudo规则来实现。下面是设置Docker规则的简单教程。
在/ect/sudoers中添加以下内容: [译者注:使用visudo命令修改]
grep&dwalsh&/etc/sudoers&dwalsh&&&&&&&&ALL=(ALL)&&&&&&&NOPASSWD:&/usr/bin/docker&
这允许特定用户无需密码直接执行Docker命令。
注意:我并不推荐使用NOPASSWD,这可能会导致你的系统中的任意进程都能获取root权限。如果你要求使用密码,则用户在运行Docker命令时需要输入密码,这将使得系统稍微安全一点。如果执行命令时输入了一次密码,则sudo将允许你在5分钟内再次运行Docker命令时不再需要输入密码。
紧接着,为Docker命令设置别名。
alias&docker=&sudo&/usr/bin/docker&&
现在,非root用户将被允许直接执行Docker命令(译者注:不需要使用sudo),并且记录了日志。
docker&run&-ti&--privileged&-v&/:/host&fedora&chroot&/host&
查看journal日志或者/var/log信息:
journalctl&-b&|&grep&docker.*privileged&Aug&04&09:02:56&dhcp-10-19-62-196.boston.&sudo[23422]:&&&dwalsh&:&TTY=pts/3&&
查看审计日志:
ausearch&-m&USER_ROLE_CHANGE&-i&type=USER_ROLE_CHANGE&msg=audit(08/04/:56.514:1460)&:&pid=23423&uid=root&auid=dwalsh&ses=1&subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023&msg='newrole:&old-context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023&new-context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023&exe=/usr/bin/sudo&hostname=?&addr=?&terminal=/dev/pts/3&res=success'&
更强的安全性
如果你打算只允许用户访问一个特定的容器,你可以写一个简单的脚本:
cat&/usr/bin/docker-fedora&#!/bin/sh&docker&run&-ti&--rm&fedora&/bin/sh&
写好脚本之后,配置sudoers:
grep&dwalsh&/etc/sudoers&dwalsh&&&&&&&&ALL=(ALL)&&&&&&&NOPASSWD:&/usr/bin/docker-fedora&
这个用户将仅能在没有权限限制下运行Fedora容器。
我们还在开发其它程序补丁来增强Docker
Daemon安全性,其中包括认证方面。我们有一个正在讨论的问题#13697&为Docker增加kerberos支持&。
我们还提议为Docker增加授权/RBAC(基于角色的访问控制),这样管理员就可以控制哪些用户可以使用哪些容器/镜像进行哪些活动。如果你想查看这个提议或者评论或者提出建议,提议地址为:GitHub:
rhatdan/docker-rbac。
如果需要支持非root用户直接运行Docker命令之前,那Docker
Daemon的安全性还需要很多改进。但在这些改进实现之前,设置sudo规则是最好的选择。我们正在开发更好的解决方案,暂时我们仍然强烈推荐使用sudo。
原文链接:【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
专题热点热点热点热点
24H热文一周话题本月最赞
讲师:275人学习过
讲师:1542人学习过
讲师:1505人学习过
精选博文论坛热帖下载排行
一个网站,无论视觉上多美观或者内容多丰富,如果它不能适应各种浏览情况并能面向尽可能广泛的用户群,那它就不算是真正成功的网站。本书提...
订阅51CTO邮刊本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 pid调节参数设置技巧 的文章

 

随机推荐