| 老农a 回复于:2003-01-27 17:14:24 |
| 谢谢,帮大家验证了一些问题:)
larryh 就是厉害:) |
| larryh 回复于:2003-01-27 18:58:50 |
| 呵呵,刚巧,以前有人提出过这样的要求。当时想到只有在shell里加限制能解决问题,但是TCB实在限制太多,太麻烦,就看看各个shell有没有这样的功能,看到ksh -r参数,搞定。
这个用SMIT改用户属性还不行,SMIT不允许默认shell的执行命令带参数,必须手工改/etc/passwd |
| johnsons 回复于:2003-01-27 17:01:50 |
| 已经彻底解决,我发现可以通过修改/etc/passwd文件中对应用户的SHELL,就不会出现上面的问题了,完全解决!!! |
| 大猫 回复于:2003-01-27 15:04:22 |
| 改default umask为027,在把/home,/的改为750 |
| johnsons 回复于:2003-01-27 15:04:31 |
| anybody knows?
哈哈,速速回答。。。。 |
| 大猫 回复于:2003-01-27 15:05:43 |
| any problem? |
| johnsons 回复于:2003-01-27 15:08:34 |
| umask改成027只能说控制该用户在创建新的目录的时候权限位为750,文件为640,但是现有的文件或者目录权限位不会受到影响,你说把/home,/的改为750,但是,其他的目录呢?比如/usr,/tmp,/datafs等等已经存在于系统中的文件系统。 |
| 老农a 回复于:2003-01-27 15:10:17 |
| 有x权限就可以cd的:)
大猫的做法应该可行,因为cd上不去了,但要注意group的权限问题,把该用户另设一个group。 |
| johnsons 回复于:2003-01-27 15:17:21 |
| 我有一个问题想问一下,如果我在/home目录下做cd /usr,那么是不是系统是先执行cd(切换到/),然后再执行cd /usr? |
| 老农a 回复于:2003-01-27 15:21:33 |
| 如果他知道目录名的话,应该还是可以的:(
不过我们可以把这些目录都设成750嘛, chmod -R 750。 |
| johnsons 回复于:2003-01-27 15:54:20 |
| 刚才测试了一下,chmod 750 /(还不敢加-R参数),用test登陆就发现错误,说是fail to running loging shell。这样做估计不行,改回来以后,我chmod 750 /home,用test登陆可以,但是pwd和ls等执行就不行了。加上chmod 757 /home/test(为test用户)后,可以做ls和执行脚本,但是还是无法pwd。但是可以cd /或者cd /usr之类的。大猫兄的方法有没有实际测试过? |
| johnsons 回复于:2003-01-27 15:58:02 |
| 老农兄有何看法? |
| larryh 回复于:2003-01-27 15:58:49 |
| 把他的SHELL改为/bin/ksh -r |
| johnsons 回复于:2003-01-27 16:26:53 |
| larryh,我刚才修改了test用户的.profile,加了一行/usr/bin/ksh -r,然后用test登陆就发现该用户无法切换目录了,但是我发现了一个新的问题,如果我敲入exit,然后就发现可以执行cd /之类的,如何解决? |
| johnsons 回复于:2003-01-27 16:36:41 |
| 刚才修改了/usr/lib/security/mkuser.default中的shell默认值,还是会出现可以通过exit跳出限制的问题。 |
| johnsons 回复于:2003-01-28 08:44:48 |
| 多谢larryh和老农兄积极参与,以后大家多多切磋。。。呵呵。 |
| 高山流云 回复于:2003-01-28 17:47:47 |
| [quote:9682a9c2c4="johnsons"]larryh,我刚才修改了test用户的.profile,加了一行/usr/bin/ksh -r,然后用test登陆就发现该用户无法切换目录了,但是我发现了一个新的问题,如果我敲入exit,然后就发现可以执行cd /之类的,如何解决?[/quote:9682a9c2c4]
你在此过程中打开了两个shell,一个在/etc/passwd的shell,一个为.profile中的shell,即为此用户的子shell。你用exit退出时,退出到了基本的shell即在/etc/passwd中设置shell中了。 |
| 高山流云 回复于:2003-01-28 17:54:12 |
| [quote:6fee2ed2ba="johnsons"]已经彻底解决,我发现可以通过修改/etc/passwd文件中对应用户的SHELL,就不会出现上面的问题了,完全解决!!![/quote:6fee2ed2ba]
不会完全解决吧,当你开一个子shell时,就可以重新切换到/目录下 $sh $cd / !!!!!!!!! |
| 老农a 回复于:2003-01-28 18:02:27 |
| 有道理。
还得限制他起新的shell。。。。 |
| feeling 回复于:2003-01-28 18:40:26 |
| 在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). |
| 老农a 回复于:2003-01-29 01:27:37 |
| 多谢。
如此说来,ksh -r是彻底解决了:),因为它不能另起shell了。 |
| johnsons 回复于:2003-01-29 11:52:19 |
| 没有错啊!我上面说的情况也就是feeling兄说到的"解决办法就是从根本上下手,更改/etc/passwd中用户的SHELL信息为 /bin/ksh -r ",feeling兄为何说不能彻底解决呢?有点迷惑ing |
| hunt 回复于:2003-03-07 15:21:37 |
| 如何限制起新的shell? |
| stewartsun 回复于:2003-03-11 15:26:30 |
| 修改/etc/passwd中对于该用户/bin/ksh -r,这样是限制了登陆后的cd,但好像可以vi 子目录下的文件,同时可以创建新的目录,并且在该目录下创建新的文件。 |
| 老农 回复于:2003-03-11 17:57:57 |
| [quote:68a1d6af75="hunt"]如何限制起新的shell?[/quote:68a1d6af75]
就是vi /etc/passwd 把这个用户用的shell改为ksh -r |
| George 回复于:2003-03-12 00:37:04 |
| /etc/passwd中的ksh -r对新起shell没有作用,而且这个ksh -r也没有多大作用,该用户登陆之后不用重启shell一样能看别的目录的东西,可以ls所有权限允许的东西,可以cat,权限允许的话还可以vi……没有cd又是什么意义呢? |