使用 shell 命令给文件夹设置密码

使用 shell 命令给文件夹设置密码

我知道这可能很简单,但我在网上查了一下却没有找到

我想在 Linux 中使用 shell 命令为文件夹设置密码(以便只有知道密码的人才能进入)。有人知道我该怎么做吗?

答案1

真正的答案是使用密码保护文件夹不起作用。不过,标准 Unix 权限或扩展权限确实提供了一定程度的保护。您询问的是针对未指定问题的具体解决方案。我认为您有两个问题之一:

  1. 您希望阻止系统上的其他用户访问文件夹
  2. 您希望阻止任何人在任何时间、任何地点未经许可访问文件夹

在情况 #1 中,您可以通过 chmod(1) 命令获得 Unix 权限。您还可以使用 setfacl(1) 和 getfacl(1) 命令来使用一些高级技巧。请注意,您想要的“密码”与执行访问的帐户绑定。如果您担心某人使用帐户的方式太多(例如 ssh、X11、控制台、串行、ftp、Subversion),那么请了解复杂的 PAM(可插入身份验证模块)世界并限制其选项。如果您认为使用的密码太弱(例如“password123”),那么 PAM 可以强制密码的复杂性和长度。简而言之,让访问文件夹的身份验证通过操作系统用户身份验证方法进行。这提供了最佳的记帐、限制和可升级路径。

为了演示 setfacl 和 getfacl 命令,假设有三个用户:“u1”、“u2”和“u3”。我们正在查看“u1”拥有的文件夹“/f”。“u1”将只向“u2”授予访问权限,而不向“u3”授予访问权限。

u1%  umask 700; mkdir /f; setfacl -m user:u2:rwx /f
u1%  getfacl /f
   user::rwx
   user:u2:rwx    <-- access granted 
   group::---     <-- anyone in the same group is still denied
   mask::rwx
   other::---     <-- everybody else is locked out too

在情况 #2 中,您遇到了一个恶意攻击者,他们可以随时访问硬盘的任何部分。您必须使用加密和环回设备来强制执行此操作。我不会在这里讨论这个话题,因为它相当复杂。一些发行版(Ubuntu?)允许对主目录进行加密。

如果没有办法提示用户输入密码,或者在另一个系统上安装文件系统可以绕过密码要求,那么使用密码保护文件就毫无用处。这就是加密的 U 盘在 Linux 中难以工作的原因——它们使用 Windows 专用软件来收集解密设备所需的密码。

= 零滞后时间

答案2

通常,您可以使用组权限来执行此操作。您可以创建一个组,将您希望能够查看这些文件的用户添加到该组,然后只授予用户和组读取文件的权限,即

chmod 640 file.txt

更新:

要添加组(以 root 身份),请使用“groupadd”命令

# groupadd mygroupname

删除:

# groupdel mygroupname

添加/删除群组中的人员:

# usermod -G mygroupname userNameToAdd

请注意,这要求您是系统所有者。如果您想要以系统用户的身份执行此操作,您最好将文件添加到存档中并为其设置密码,或者加密文件并共享密钥。

正如 embobo 在他们的评论中所说的那样,您可以使用 gpasswd 来创建可以添加/删除组中人员的组管理员,请查看该手册页。

答案3

另一种方法是压缩目录并使用此命令删除未加密的文件

zip -e protected.zip directory/ && rm -rf directory/

系统将提示您(两次)输入密码。

您可以通过解压缩来再次“解锁”该文件夹。

看看这man zip是否man unzip看起来可能是一个解决方案

相关内容