我创建了一个使用/ bin / rbash的用户,因此它无法执行某些命令,例如'cd'和'ls'。但是,当输入某些路径(例如“ / bin /”)时,它仍然可以浏览其他目录,然后使用tab外壳将在“ bin”下显示文件。并且该用户仅允许通过串行端口登录。如何限制用户只能在其主目录中工作,而不能读取其他目录。
答案 0 :(得分:0)
进行快速搜索后,我发现了我认为可能符合您要求的几个问题
答案 1 :(得分:0)
放入
set disable-completion on
〜/ .inputrc中的string并重新启动您的shell。它将完全禁用完成。
这可以解决我的问题
答案 2 :(得分:0)
可以使用chroot
来实现一个看不到其他目录的用户。
这可能是非常疯狂的解决方案,不建议这样做。
创建一个制作chroot的脚本
#!/bin/sh
exec /usr/sbin/chroot /home/test /bin/sh
使用脚本作为登录shell(/ etc / passwd):
test:x:0:0:Linux User,,,:/:/usr/sbin/chrootsh.sh
将所有需要的文件复制到用户的主目录。您至少需要外壳程序和外壳程序所需的库:
~ # ls -lR /home/test/
/home/test/:
total 2
drwxr-xr-x 2 root test 1024 Aug 21 13:54 bin
drwxr-xr-x 2 root test 1024 Aug 21 13:54 lib
/home/test/bin:
total 1776
-rwxr-xr-x 1 root test 908672 Aug 21 13:54 ls
-rwxr-xr-x 1 root test 908672 Aug 21 13:54 sh
/home/test/lib:
total 1972
-rwxr-xr-x 1 root test 134316 Aug 21 13:54 ld-linux.so.3
-rwxr-xr-x 1 root test 1242640 Aug 21 13:54 libc.so.6
-rwxr-xr-x 1 root test 640480 Aug 21 13:54 libm.so.6
~ #
准备好了。然后以用户身份登录:
~ # su - test
/ # pwd
/
/ # ls -lR /
/:
total 2
drwxr-xr-x 2 0 1000 1024 Aug 21 13:54 bin
drwxr-xr-x 2 0 1000 1024 Aug 21 13:54 lib
/bin:
total 1776
-rwxr-xr-x 1 0 1000 908672 Aug 21 13:54 ls
-rwxr-xr-x 1 0 1000 908672 Aug 21 13:54 sh
/lib:
total 1972
-rwxr-xr-x 1 0 1000 134316 Aug 21 13:54 ld-linux.so.3
-rwxr-xr-x 1 0 1000 1242640 Aug 21 13:54 libc.so.6
-rwxr-xr-x 1 0 1000 640480 Aug 21 13:54 libm.so.6
/ #