天正蓝 發表於 2023-6-14 00:00:00

通过受限bash创建只读用户

<h3>受限bash</h3>
<p>如果 bash 以 rbash 为程序名启动或者命令行参数有 -r 选项,则启动的这个 shell 会在某些功能上受限制.具体表现为如下操作都不能做:</p>
<ul>
<li>通过 cd 来改变工作目录</li>
<li>设置或取消环境变量: SHELL, PATH, ENV, BASH_ENV</li>
<li>命令名中不能包含目录分隔符 ‘/’</li>
<li>包含有 ‘/’ 的文件名作为内置命令 ‘.’ 的参数</li>
<li>hash 内置命令有 -p 选项时的文件名参数包含 '/'</li>
<li>在启动时通过 shell 环境导入函数定义</li>
<li>在启动时通过 shell 环境解析 SHELLOPTS 的值</li>
<li>使用 &gt;,&gt;|, &lt;&gt;, &gt;&amp;, &amp;&gt;, &gt;&gt; 等重定向操作符</li>
<li>使用 exec 内置命令</li>
<li>通过 enable 内置命令的 -f 和 -d 选项增加或删除内置命令</li>
<li>使用 enable 内置命令来禁用或启用 shell 内置命令</li>
<li>执行 command 内置命令时加上 -p 选项</li>
<li>通过 <code>set +r</code> 或 <code>set +o restricted</code> 关闭受限模式</li>
</ul>
<p>现在通过受限bash来创建只读用户。</p>
<h3>步骤</h3>
<p></p><pre class="brush:bash;toolbar:false"># ln -s /bin/bash/bin/rbash
# useradd -s /bin/rbash rttlsa
# passwd rttlsa
# mkdir /home/rttlsa/bin
# chown root. /home/rttlsa/.bash_profile
# chmod 755 /home/rttlsa/.bash_profile
# vi /home/rttlsa/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$HOME/bin

export PATH

# ln -s /bin/cat/home/rttlsa/bin/cat将允许执行的命令链接到$HOME/bin目录</pre><p>如此即可创建只允许查看日志的只读用户。</p>
頁: [1]
查看完整版本: 通过受限bash创建只读用户