您的位置 首页 网站建设

Centos下利用 lshell 来构建一个受限的用户 SHELL 环境

在项目开发中,有时候需要在Linux系统下建立多个用户,并对这些用户的权限加以限制。将普通用户限制在指定目录,只可以执行指定命令。lshell就是实现这样功能的一个神器。

在项目开发中,有时候需要在Linux系统下建立多个用户,并对这些用户的权限加以限制。将普通用户限制在指定目录,只可以执行指定命令。lshell就是实现这样功能的一个神器。

lshell提供了一个针对每个用户可配置的限制性shell,lshell的配置文件非常的简单,可以和sshauthorized_keys或者/etc/shell/etc/passwd耦合使用,lshell可以很容易的严格限制用户可以访问哪些命令。

项目地址: https://github.com/ghantoos/lshell

 

lshell安装

RHEL、CentOS

1
$ yum install lshell #EPEL源

这种方法已经失效。

github上有介绍另一种安装方式。下载lshell项目到服务器,解压后执行python命令:

python setup.py install --no-compile --install-scripts=/usr/bin/
1. Install from source
        # on Linux:
        python setup.py install --no-compile --install-scripts=/usr/bin/
        # on *BSD:
        python setup.py install --no-compile --install-data=/usr/{pkg,local}/

Debian、Ubuntu

1
$ apt-get install lshell

 

  • lshell配置

Linux下配置文件为/etc/lshell.conf

lshell实例

为了记录用户日志,首先需要创建相关目录

1
2
3
4
$ groupadd --system lshell
$ mkdir /var/log/lshell
$ chown :lshell /var/log/lshell
$ chmod 770 /var/log/lshell

 

添加test用户

1
$ useradd test -d /home/test -s /usr/bin/lshell

 

然后增加test用户到lshell group,也可以添加已有的用户到这个用户组。

1
$ usermod -aG lshell test

 

改变test用户默认shell,使用lshell作为默认shell

1
$ chsh -s /usr/bin/lshell test

 

修改配置文件让test用户只能使用受限命令,配置文件加在/etc/lshell.conf文件末尾即可。

1
2
3
4
[test]
allowed : ['ls','echo','cd','ll'] ##允许使用的命令
home_path : '/home/test' ##设置用户的家目录
path : ['/home/test','/tmp'] ##限制用户的目录

 

home_pathpath注释掉则限制用户只能访问自己的家目录及其子目录。如果需要能访问其他目录,则需要在path中加入相应的目录,当前设置下用户可以访问家目录及其子目录,也可以访问/tmp目录及其子目录,但不能访问这以外的目录,比如/etc

allowed中添加我们限定用户所能使用的命令,这里限定只能使用lsechocdll四个命令

测试登陆

1
2
3
4
5
$ ssh [email protected]                                                    
[email protected]'s password:
You are in a limited shell.
Type '?' or 'help' to get the list of allowed commands
test:~$

 

命令使用

1
2
3
4
5
6
7
test:~$ cd /etc
*** forbidden path -> "/etc/"
*** You have 1 warning(s) left, before getting kicked out.
This incident has been reported.

test:~$ touch test.txt
*** unknown command: touch
本文转载自https://www.hi-linux.com/posts/6397.html,https://my.oschina.net/guol/blog/337374,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。转载请注明出处:https://www.seohub.org/web/387

发表评论

电子邮件地址不会被公开。 必填项已用*标注

返回顶部