假设有这样一种需求:某些普通用户允许通过telnet登陆上系统,默认情况下该用户的HOME目录是/home/username。如果我想让该用户只能在该目录下活动,也就是该用户不能通过cd命令切换的其他的目录,该如何实现?希望大家多提想法?
个人意见:一个用户可以cd到一个目录,是因为该用户对该目录有r权限,那么可以通过对目录权限的设置而达到对用户权限的限制。但是这种方法是否太繁琐?
在SHELL命令行模式下执行 sh -r、 ksh -r 实质是开启了一个新的SHELL,exit 退出后又会回到原来的用户SHELL下。
解决办法就是从根本上下手,更改/etc/passwd中用户的SHELL信息为 /bin/ksh -r
如果要彻底限制用户的登录的话,简单的办法还有更改/etc/passwd中SHELL信息为一个SHELL命令(非SHELL本身),如/usr/bin/logout,这样用户一登录即先执行在/etc/passwd里面设定的SHELL。
-r 选项限制的还不止这个呢:
-r Runs a restricted shell. With a restricted shell you cannot:
o Change the current working directory.
o Set the value of the SHELL, ENV, or PATH variable.
o Specify the pathname of a command that contains a / (slash).
o Redirect output of a command with > (right caret), >| (right caret, pipe symbol), <> (left caret, right caret), or >> (two right carets).