我目前在网络计算机上运行 Fedora,充当其他用户的主机,这些用户将通过 SSH 进入我的终端来完成他们的工作。
但我意识到他们也可以访问我的/home
文件夹。我该如何设置权限以使他们无法访问它?
答案1
通过使其不被世界可读。默认情况下它看起来像这样:
igalic@tynix /home % ls -lh
total 28K
drwxr-xr-x. 62 igalic igalic 4.0K Jun 20 10:24 igalic/
drwx------. 2 root root 16K Jun 1 15:54 lost+found/
igalic@tynix /home %
我可以通过以下方式拒绝除我自己(和 root)之外的任何人访问chmod o-rx
:
igalic@tynix /home % ls -lh
total 20K
drwxr-x---. 62 igalic igalic 4.0K Jun 20 10:28 igalic/
drwx------. 2 root root 16K Jun 1 15:54 lost+found/
igalic@tynix /home %
这些是基本的 Unix 权限。您可以使用扩展的 POSIX ACL 进行更细粒度的访问权限:
igalic@tynix /home % getfacl igalic
# file: igalic
# owner: igalic
# group: igalic
user::rwx
group::r-x
other::---
或者 SELinux:
drwxr-x---. igalic igalic unconfined_u:object_r:user_home_dir_t:s0 igalic/
drwx------. root root system_u:object_r:lost_found_t:s0 lost+found/
答案2
这样的词权限或者使用权对于 Unix 系统来说太模糊了。为了解决您的问题,您需要了解如何管理权限,然后更准确地定义您的含义“无法访问它”。
Unix 上的权限系统的简要概述
权限有3种:
r
: 读w
: 写x
: 执行
请注意,该权限对于目录有特殊含义:
r
:列出目录中的文件,例如ls
.w
:向目录添加新元素。x
:访问目录中的文件。
您可以设置 3 个级别的权限:
- 用户(文件/目录的所有者)
- 团体
- 全部
请注意,当您在系统上创建新用户时,系统会要求您为他们分配一个组。原因很简单,就是为了更好地管理权限。
如何知道文件的权限
有多种方法。我认为最直接的方法是使用ls -l
.例子:
$ ls -l file
-rw-r----- 1 rahmu users 406 Jun 18 13:28 file
第一列表示权限。
-rw-r-----
,第一位 ( -
) 指示该文件是目录、链接还是常规文件。暂时忽略它。接下来的 3 位 ( rw-
) 表示用户级别权限。这意味着用户rahmu
有权访问read
该write
文件。接下来的三位 ( r--
) 是组级权限,这意味着该组中的所有用户users
都具有read
访问权限。所有其他用户将根本没有权限 ( --
)。这意味着他们无法读取、写入或执行该文件。
如何修改权限。
它通常是通过chmod
实用程序完成的。它支持多种语法,哪一种最好是有争议的,但经过上述解释后,以下内容将最有意义:
$ chmod [who]operator[permissions] file
who
是u
ser、g
group 或o
thers。 (还有a
ll,用于一次修改所有三个级别)。operator
是+
或-
。permission
是r
,w
或x
.
例子:
chmod u-w file
:删除write
用户的权限。chmod a+x file
:execute
为所有人添加权限。
如何预防使用权到你的/家?
正如我提到的,您需要定义您的意思使用权。如果您的意思是read
访问,就像您不希望他们列出目录中的内容一样,那么最简单的方法就是从目录中获取适当的权限/home
。 (假设他们正在与单独的用户连接)。
$ chmod o-rwx ~
答案3
每个文件(和目录)始终属于一个用户和一个组。为了管理访问控制,需要设置三组权限:一组用于文件所属的用户,一组用于文件所属的组,一组用于其他所有人(其他)。
检查我们的主目录的权限,ls -l /home
.您的主目录很可能属于您的用户名,这意味着其他人是否可以访问它取决于组权限和其他权限。每个对您的主目录具有读取权限的人都可以检索其内容列表,每个具有可执行权限的人都可以访问该目录中的文件。
为了尽可能限制您的主目录权限,将您的主目录权限设置为 700,chmod 700 /path/to/your/home
这将使除您之外的每个用户都无法访问您的主目录。
SSH 与此无关!
答案4
如果您愿意安装第 3 方应用程序,您应该查看有限 shell (lshell)。可以将其配置为限制用户对文件系统中的命令和/或路径的访问。
它还可以检测连接是否是远程完成的(通过 SSH、FTP 等)并相应地采取不同的操作。