我正在使用远程服务器进行一些物理计算。我发现虽然用户无法访问/home/some_other_user
,但他可以/mnt/disk/some_other_user
查看所有文件。
如何禁止用户访问其他用户的文件/mnt
?
答案1
远程服务器上的主目录使用哪种文件系统类型?要识别文件系统类型,请运行eglsblk --fs
并查看相应行上的FSTYPE 列。
您可以看到其他用户的文件这一事实并不一定意味着其他用户可以看到您的文件;您通常应该能够将您的主目录设置为其他人无法访问,即使其他用户选择不这样做。 (是的,默认情况下让它们不可访问并让用户在特别需要时让它们可访问会更安全。)
如果您的主目录包含其他人可以访问的子目录(例如 中的网页/home/physu/public_html
),请使用chmod 711 $HOME
.这可以防止其他用户看到您的主目录的目录列表,但如果其他用户已经知道文件/子目录的确切名称和该文件/子目录的权限设置将允许该用户访问它,他们将能够正常使用它。在此配置中,ls -l $HOME
应将您的主目录的权限列为drwx--x--x
.
为了获得最大程度的隐私,请使用chmod 700 $HOME
- 但在断开连接之前,通过与远程服务器建立另一个连接并登录进行测试。这会将您的主目录的权限设置为,即drwx------
除了您自己之外的任何人都没有任何权限。有时,某些身份验证系统可能以非 root 用户身份运行,并要求他们可以访问您的主目录。如果chmod 700 $HOME
您无法登录,请使用现有连接进行设置chmod 711 $HOME
。
您可能还需要联系远程服务器的管理员,特别是如果用户的主目录存储在没有正常工作权限的文件系统中,并且没有提前警告您这一事实。
管理员可能已为 中的每个人分配了完全权限/mnt/disk
,因此任何人都可以在那里创建目录。但您始终可以控制您创建的任何内容的权限,无论它们在哪里,因为那些东西是你的。在类 Unix 系统中,唯一可能出现这种情况的情况是底层文件系统不支持文件所有权和权限(例如 FAT32 文件系统)。
如果您/mnt/disk/physu
为自己创建,则可以运行chmod 700 /mnt/disk/physu
,现在该目录中的所有内容都将对其他人禁止。
run ls -ld /mnt/disk
:如果显示权限为drwxrwxrwx
,那么每个人都可以在里面创建文件和目录,每个人也可以删除其他人的文件和目录。为了防止这种情况,类似的共享目录通常会设置权限drwxrwxrwt
,这增加了额外的限制,即您必须拥有某个内容才能删除它。
然后运行ls -ld /mnt/disk/your_username
:现在有什么权限,该目录是您拥有的还是管理员拥有的?如果管理员已将该目录的所有权分配给您,那么您将能够更改其权限。如果该目录由其他人拥有,但您对其具有写权限,则可以在其中创建一个子目录并将其设置为私有:
mkdir /mnt/disk/your_username/private
chmod 700 /mnt/disk/your_username/private
现在,即使您无法调整 的权限/mnt/disk/your_username
,您也已经在其下创建了一个子目录,其权限可以完全设置为您想要的权限。
如果您可以通过命令行访问 Unix 系统,那么通常在您的主目录之外应该有很多地方您必须具有读取访问权限:
/etc/
因为几乎所有进程都需要从那里读取重要的配置设置/lib/
、、、/usr/lib/
这样/bin
就/usr/bin
可以执行命令了,命令可以找到自己需要的共享库文件- 许多系统组件可能在 下有重要数据
/var
。
写在主目录之外的访问将受到更多限制。通常,您只能在主目录之外对 和 进行写访问/tmp/
,/var/tmp/
这分别是短期和长期临时文件的标准位置,以及位于 的本地电子邮件邮箱文件/var/mail/<username>
。