如何使用LShell(Limited Shell)限制用户的SSH访问
LShell或Limited Shell是用python编写的,用于限制特定命令和目录集的用户。
我们可以创建具有有限访问权限的用户环境,还可以通过SSH访问启用禁用命令。
安装LShell
使用以下命令在基于Debian的系统上安装LShell包。
对于其他操作系统,我们需要用百度搜索相应版本的lshell包。
$ sudo apt-get install lshell
切换用户到LShell
现在将LShell设置为所需用户的默认shell。
例如改变用户theitroad的外壳。
$ sudo chsh theitroad Changing the login shell for theitroad Enter the new value, or press ENTER for the default Login Shell [/bin/lshell]: /usr/bin/lshell
我们还可以在创建用户帐户期间将lshell设置为user的默认shell,如下所示。
$ sudo adduser --shell /usr/bin/lshell Hyman
配置LShell
现在开始配置lshell。
编辑lshell配置文件 /etc/lshell.conf
配置文件中有4个基本部分。
[global]在这个部分中,我们将定义全局应用的设置。
例如日志。
[default]在这个部分中,我们设置适用于所有用户和组的默认值。
可以使用用户和组特定的设置覆盖此部分的设置。
[USERNAME]在这个部分中,我们指定用户特定的设置。
[grp:GROUPNAME]在此部分中,我们指定组特定的设置。
[default]配置文件也适用于使用lshell的所有用户。
我们可以创建 [username]节或组 [grp:groupname]节来定制用户和组特定的首选项。
优先级顺序为: User>> Group>> Default。
【用户】部分优先级最高,【默认】部分优先级最低。
[global]
logpath : /var/log/lshell/
loglevel : 2
[default]
allowed : ['ls','pwd','cd','cat','cp']
forbidden : [';', '&', '|','`','>','<', '$(', '${']
sudo_commands : ['ls', 'more']
warning_counter : 2
aliases : {'ll':'ls -l', 'vim':'rvim'}
prompt : "%Hyman@theitroad%h"
timer : 0
path : ['/home', '/usr']
env_path : ':/usr/bin/usr/local/bin'
env_vars : {'foo':1, 'bar':'helloworld'}
scp : 1 # or 0
sftp : 1 # or 0
overssh : ['rsync','ls']
strict : 0
history_file : "/home/%u/.lshell_history"
[grp:wheel]
warning_counter : 5
overssh : - ['ls']
[Hyman]
allowed : 'all' - ['su','rm','mv']
path : ['/etc', '/usr'] - ['/usr/local']
home_path : '/home/Hyman'
[theitroad]
allowed : + ['ping'] - ['ls']
path : - ['/usr/local']
strict : 1
scpforce : '/home/theitroad/uploads/'
例如,用户' Hyman '和用户' theitroad '都属于' wheel ' UNIX组:
wheel组:
whell组用户有一个警告计数器设置为5,wheel组用户不允许' ls '命令。
用户Hyman:
execpt命令- su, rm, vmhas a warning counter set to 5 [default]has his home PATH set to ' /home/Hyman ' 用户theitroad:
可以访问/ home / usr但不/usr/localis允许默认命令“ping”

