linux防止用户读取其他目录

时间:2020-08-21 09:16:08

标签: linux

我创建了一个使用/ bin / rbash的用户,因此它无法执行某些命令,例如'cd'和'ls'。但是,当输入某些路径(例如“ / bin /”)时,它仍然可以浏览其他目录,然后使用tab外壳将在“ bin”下显示文件。并且该用户仅允许通过串行端口登录。如何限制用户只能在其主目录中工作,而不能读取其他目录。

3 个答案:

答案 0 :(得分:0)

进行快速搜索后,我发现了我认为可能符合您要求的几个问题

Create ssh user which can only access home directory

Give user read/write access to only one directory

答案 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
/ #