【发布时间】:2020-08-21 20:00:58
【问题描述】:
我创建了一个使用 /bin/rbash 的用户,所以它不能执行一些命令,比如 'cd' 和 'ls'。但是当输入'/bin/'之类的路径时它仍然可以浏览其他目录,然后使用tab shell将显示'bin'下的文件。而这个用户只允许通过串口登录。如何限制用户只能在其主目录中工作,而不能读取其他目录。
【问题讨论】:
标签: linux
我创建了一个使用 /bin/rbash 的用户,所以它不能执行一些命令,比如 'cd' 和 'ls'。但是当输入'/bin/'之类的路径时它仍然可以浏览其他目录,然后使用tab shell将显示'bin'下的文件。而这个用户只允许通过串口登录。如何限制用户只能在其主目录中工作,而不能读取其他目录。
【问题讨论】:
标签: linux
通过快速搜索,我发现了这几个问题,我认为可能符合您的要求
【讨论】:
放
set disable-completion on
string in ~/.inputrc 并重新启动你的 shell。它将完全禁用完成。
这可以解决我的问题
【讨论】:
可以使用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
将所有需要的文件复制到用户的主目录。您至少需要 shell 和 shell 所需的库:
~ # 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
/ #
【讨论】: