18.6.用户锁定
=============

此示例为用户数少于 50 的相对较小的存储系统所设计。用户将具有登录功能,并被允许存储数据和访问资源。

对于此方案,\ `mac_bsdextended(4) <https://www.freebsd.org/cgi/man.cgi?query=mac_bsdextended&sektion=4&format=html>`__ 和 `mac_seeotheruids(4) <https://www.freebsd.org/cgi/man.cgi?query=mac_seeotheruids&sektion=4&format=html>`__ 策略模块可以共存并阻止对系统客体的访问,同时隐藏用户进程。

首先将以下行添加到 **/boot/loader.conf**\ :

.. raw:: latex

   \diilbookstyleinputcell

.. code:: shell-session

   mac_seeotheruids_load="YES"

`mac_bsdextended(4) <https://www.freebsd.org/cgi/man.cgi?query=mac_bsdextended&sektion=4&format=html>`__ 安全策略模块可以通过将此行添加到 **/etc/rc.conf** 来激活:

.. raw:: latex

   \diilbookstyleinputcell

.. code:: shell-session

   ugidfw_enable="YES"

存储在 **/etc/rc.bsdextended** 中的默认规则将在系统初始化时加载。但是,有时可能需要修改默认条目。由于此计算机应仅用于为用户提供服务,因此除了最后两行之外,所有内容都可能被注释掉,以便默认情况下强制加载用户拥有的系统客体。

将所需用户添加到此计算机并重新启动。出于测试目的,请尝试在两个控制台上以其他用户身份登录。运行 ``ps aux`` 以查看其他用户的进程是否可见。并验证在其他用户的主目录上运行 `ls(1) <https://www.freebsd.org/cgi/man.cgi?query=ls&sektion=1&format=html>`__ 是否失败。

不要尝试与 ``root`` 用户一起测试,除非已修改特定的 ``sysctl`` 以阻止超级用户访问。

   **注意**

   当添加一个新用户后,他们的 `mac_bsdextended(4) <https://www.freebsd.org/cgi/man.cgi?query=mac_bsdextended&sektion=4&format=html>`__ 规则将不在规则集列表中。要快速更新规则集,请卸载安全策略模块,然后使用 `kldunload(8) <https://www.freebsd.org/cgi/man.cgi?query=kldunload&sektion=8&format=html>`__ 和 `kldload(8) <https://www.freebsd.org/cgi/man.cgi?query=kldload&sektion=8&format=html>`__ 再次重新加载模块。