如何让用户只能读取文件?

如何让用户只能读取文件?

我每天都有一些新文件要发布。

我的同事需要 sftp/scp 到我的 Linux 服务器来复制这些文件。

我不希望他执行任何文件删除/移动/执行...等操作,他唯一能做的就是将文件复制(scp/sftp)回来。

最好的是他不能切换目录。

有什么方法可以做到这一点吗?

答案1

这可以通过创建一个具有读取文件或文件夹所需权限的用户和组来解决。

下面是如何通过 scp (ssh) 对 Linux 服务器上的文件夹实现只读访问的示例。

useradd <USERNAME> # no need to create a home directory, so we can skip --create-home

groupadd <GROUPNAME> # create the group that will have read-only-access to the folder

现在将创建的用户添加到创建的组中

usermod -aG <GROUPNAME> <USERNAME>

现在在系统上的某个位置创建用户应有权访问的文件夹:

mkdir <FOLDERNAME> -m rwxr-x-r 

现在将该文件夹的组更改为创建的组

chgrp <GROUPNAME> </PATH/TO/FOLDER>

现在,当您在该文件夹中添加文件时,请确保它们也归具有必要权限的创建的组所有:

chmod 744 <FILENAME> 
chgrp <GROUPNAME> <PATH/TO/FILE>

这样,用户应该能够通过 scp 访问该文件夹,如下所示:

scp -r user@<IP>:/path/to/folder /local/path/

编辑 可以跳过添加具有 744 权限的组,因为其他组的默认权限已经是 744(只读)。感谢@symcbean 指出了这一点。

相关内容