限制用户只能访问四个目录

限制用户只能访问四个目录

我遇到过一种情况,我需要允许外部顾问访问我们的一个 Ubuntu 18.04 系统。我们希望以某种方式锁定该用户的帐户,以便当该用户登录时,他们只能访问三四个目录,并且只能使用某些 LINUX 命令,例如 cd、/bin/cp、more、less、cat。

我知道使用 sudo,我可以配置允许此用户从其 $HOME 目录使用的命令列表。但是,是否还有一种方法(使用 sudo)允许用户访问目录 X,但不允许他们进入目录 Y?例如,用户 $HOME 是 /home/outsider,但我有三个文件夹,我希望他们也能够将文件复制到这些文件夹中并从中读取文件:

/workdir
/software-repository
/logs

我知道我可以通过组访问权限 (chmod) 控制对这些文件夹的访问。但是有没有办法不允许特定用户在 sudo 中访问某些目录或文件,尽管他们在系统上拥有读取权限?

例如,/etc/hosts 文件具有以下权限:

-rw-r--r-- 1 root root 277 Sep 11 18:09 /etc/hosts

因此只有 root 可以编辑此文件,但任何人都可以读取它。此示例的解决方案是否只是将 /etc/hosts 修改为 chmod 0600?我担心这会给可能尝试读取 hosts 文件的其他应用程序带来问题。

我不能仅仅 chroot 用户的帐户,因为他们需要能够将文件放在他们的 $HOME 结构之外的目录中。

现在唯一的想法是创建一个菜单,当他们登录该帐户时,会弹出一个菜单,将他们限制在有限的选择范围内,例如:

1) View log file
2) Copy XML template
3) Test print report
0) Log off

如果以前有人这样做过,有没有更好的方法?

谢谢,

史蒂夫

相关内容