Linux受限shell软件lshell限制用户行为
有时我们需要限制登录到Linux系统用户的行为,最简单的办法莫过于限制其所能执行的命令。
之前我们写过bash自带的受限模式,虽然也能限制,但是容易逃逸,并且不是方便(不能执行cd)。
Lshell是另一款可以实现这个功能的软件,是由Python编写。
官方网站
https://github.com/ghantoos/lshell
lshell安装
#@需要先安装EPEL
yum install lshell -y
lshell的使用
我们可以新建一个用户user001并指定其shell为lshell
useradd -s /usr/bin/lshell user001
编辑配置文件/etc/lshell.conf
##全局配置
[global]
logpath : /var/log/lshell/
loglevel : 2
logfilename : %y%m%d-%u
##默认用户策略
[default]
allowed : ['ls','echo','cd','ll','pwd','whoami','w','top','free','ps']
forbidden : [';', '&', '|','`','>','<', '$(', '${']
warning_counter : 2
aliases : {'ll':'ls -l', 'vi':'vim'}
#设置用户可以访问的路径
path : ['/home/','/etc/','/tmp/']
##用户user001的策略(和default独立,没有继承关系)
[user001]
allowed : ['ls','echo','cd','ll','pwd','whoami','w','top','free','ps','su']
forbidden : [';', '&', '|','`','>','<', '$(', '${']
warning_counter : 3
aliases : {'ll':'ls -l'}
intro : "\n\nWelcome to Linux!\nPlease use su to switch your user."
prompt : "%u@%h"
path : ['/home/user001']
lshell的测试
现在我们使用user001用户登录进行测试
user001@localhost.localdomain:~$ ll
total 0
-rw-r--r--. 1 root root 0 Aug 8 15:06 file01
user001@localhost.localdomain:~$ pwd
/home/user001
user001@localhost.localdomain:~$ cat file01
*** unknown command: cat
user001@localhost.localdomain:~$ cd /tmp
*** forbidden path -> "/tmp/"
*** You have 2 warning(s) left, before getting kicked out.
This incident has been reported.
user001@localhost.localdomain:~$ su -
Password:
经测试,lshell限制了用户可以进入的目录和可以执行的命令。
转载请注明:IPCPU-网络之路 » Linux受限shell软件lshell限制用户行为