OHL*_*ÁLÁ 33 permissions users
如何防止用户访问除他们自己的主目录之外的任何内容?
例如,我在 下挂载了一个 NTFS 分区/media/ntfs,因此如果用户通过 ssh 登录,他可以访问该分区。如何禁止用户cd离开他们的主目录?
zwe*_*ets 26
首先重新评估您的要求。您要解决的问题是什么?为什么要阻止用户离开他们的主目录?是不是您不希望他们翻阅特定的其他目录——例如其他用户的主目录?
阻止用户离开他们的主目录是非常困难的。它实际上也有点傻(解释如下)。阻止用户进入您不希望他们进入的目录要简单得多。
首先,是的,您可以为用户提供一个所谓的受限 shell,请参阅man rbash。这将防止它们在cd其他地方 -ing,但只能在该外壳内。如果用户启动vi或nano(或任何其他能够打开文件的程序),他们可以再次打开系统上任何位置的文件。事实上,受限制的 shell 并不能阻止例如cat /etc/passwd.
下一步是根监狱。有关社区 wiki和此问题的更多信息。尽管根监狱会将用户锁定在围墙花园内,在那里他们只能访问您有意放置在那里的文件和命令,但根监狱实际上是用于隔离不受信任的软件而不是用户。特别是,它们适用于需要以提升的权限运行的软件——因此是根监狱。
另一方面,用户是受信任的:他们必须在没有提升权限的情况下进行身份验证和运行。因此,文件权限足以阻止他们更改不属于他们的文件,并阻止他们看到他们不应该看到的东西。为防止用户阅读文件内容,请使用chmod o-r FILE. 要让用户远离目录,请使用chmod o-rwx DIR.
世界可读性是默认设置,这是有充分理由的:用户实际上需要文件系统上的大部分内容。不要仅仅因为外面有秘密就将用户锁在家里。
为什么将用户锁定在他们的主目录中有点傻
为了做任何有用的事情,用户需要访问命令和应用程序。它们位于/binand 之类的目录中/usr/bin,因此除非您将他们需要的所有命令从那里复制到其主目录,否则用户将需要访问/binand /usr/bin。但这只是开始。应用程序需要从图书馆/usr/lib和/lib,而这又需要访问系统资源,这是在/dev中,并配置文件/etc和/usr/share。
这只是只读部分。应用程序也需要/tmp并且经常/var写入。因此,如果您想将用户限制在他的主目录中,您将不得不向其中复制很多内容。事实上,几乎整个基本文件系统——您已经拥有,位于/.
小智 12
我需要提供访问用户sam在/var/xyz里面其他的文件夹只和块挂牌内容/var/
我使用了以下命令序列:
setfacl -R -m user:sam:--- /var/
setfacl -m user:sam:rx /var/
setfacl -R -m user:sam:rwx /var/xyz/
Run Code Online (Sandbox Code Playgroud)
所以用户可以看到下面列出的目录,/var/但不能看到子目录下的内容,除了/var/xyz.
小智 6
除了限制对其他目录(特别是其他用户的主目录)的访问之外,我也不希望用户ll /home看到系统上其他用户的名称。
为了防止这种情况,请以 root 身份运行chmod 701 /home. 当然,这使得/home目录本身对 root 可以“读/写/执行”,但只能对其他人“执行”。/home仍然可以访问cd,但用户无法读取其内容 - 其他用户的主文件夹以及用户名。
小智 5
要完成@Willman 的回答,您只需执行以下操作:
首先,对于不列出所有用户主目录的用户:
chmod 701 /home
Run Code Online (Sandbox Code Playgroud)
但是如果您知道用户主目录的路径,您仍然可以使用cd.
因此,您可以只使用chmod 750所有已创建的用户目录。
但是我们在这里想要的是防止任何新用户的主目录对其拥有755权限。有一个文件负责配置新用户/etc/adduser.conf::
只需更改DIR_MODE=0755为DIR_MODE=0750
| 归档时间: |
|
| 查看次数: |
87526 次 |
| 最近记录: |