如何使用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”