使用shell命令在文件夹上input密码

我知道这可能是非常简单的,但我看着互联网,没有find

我想在一个文件夹上设置一个密码(这样只有知道密码的人才可以进入)。 有谁知道我该怎么做?

真正的答案是使用密码保护文件夹不起作用。 标准的Unix权限或扩展权限确实提供了一些合理的保护级别。 您正在问一个具体的解决scheme,一个不明确的问题。 我相信你有两个问题之一:

  1. 您希望将其他用户保留在文件夹外的系统上
  2. 您希望随时随地将所有人保存在未经许可的情况下

在情况#1中,您可以通过chmod(1)命令获得Unix权限。 你也有一些先进的技巧与setfacl(1)和getfacl(1)命令。 请注意,您所需的“密码”与进行访问的帐户绑定。 如果您担心某人使用帐户的方式太多(例如ssh,X11,console,serial,ftp,Subversion),那么请了解PAM(Pluggable Authentication Modules)的复杂世界并限制其选项。 如果您认为使用的密码太弱(例如“password123”),那么PAM可以增强密码的复杂性和长度。 总而言之,通过操作系统用户身份validation方法使访问文件夹的身份validation成为可能。 这提供了最好的会计,限制和可升级path。

为了演示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中,你有一个恶意的攻击者可以随时访问硬盘的任何部分。 您将不得不使用encryption和回送设备来执行此操作。 这里我不会涉及这个话题,因为它相当复杂。 某些发行版(Ubuntu?)允许对主目录进行encryption。

如果没有办法提示用户input密码,或者在另一个系统上安装文件系统,密码保护文件就没有用处。 这就是为什么encryption的thumbdrives在Linux上工作的时间非常艰难 – 他们使用特定于Windows的软件来收集需要解密设备的密码。

= zerolagtime

一般来说,你可以用组权限来代替。 您创build一个组,将用户添加到您希望能够看到这些文件的组中,然后仅授予用户和组读取文件的权限

 chmod 640 file.txt 

更新:

要添加一个组(作为root)使用“groupadd”命令

 # groupadd mygroupname 

删除:

 # groupdel mygroupname 

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

 # usermod -G mygroupname userNameToAdd 

请注意,这要求您成为系统所有者。 如果您希望以系统上的用户身份执行此操作,则最好将文件添加到存档并对其进行密码或encryption文件并共享密钥。

正如embobo在他们的评论中所说的那样,你可以使用gpasswd实质上创build可以添加/删除组中的人员的组pipe理员,并检查那个组的man页面。

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

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

系统会提示您(两次)input密码。

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

如果这看起来可能是一个解决scheme,请参阅man zipman unzip