我对任何类型的 Linux 的背景都很少,所以我一开始就完全是即兴发挥。
老板要求我基于 CentOS 设置一个 FTP 服务器。到目前为止,一切进展顺利,我已经能够根据需要设置好大部分内容。创建新用户时,会自动在用户的主目录中创建两个文件夹 - upload 和 download。
我需要能够设置权限,以便在创建新用户并创建默认目录时,用户将无法从这些文件夹中删除任何内容。
任何关于此问题的帮助都将不胜感激!
谢谢!Ian
答案1
我们需要更多有关您的设置的信息才能给出更好的答案,但首先,您可以修改用于创建upload
和download
设置权限以及更改所有权的脚本,例如:
# create the directories
mkdir $USERHOME/upload $USERHOME/download
# Set permissions on those directories to make them read-only for $USER
chown root:root $USERHOME/upload $USERHOME/download
chmod 755 $USERHOME/upload $USERHOME/download
您可以使用除所有权之外的其他用户root
,例如 FTP 用户。
这种安排的诀窍是,用户大概拥有$USERHOME
,因此如果$USERHOME/upload
和$USERHOME/download
目录非空,则可以删除它们(但用户不能删除非空目录)(用户可以这样做,因为删除这些目录取决于父目录 $USERHOME 的权限,而不是子目录本身的所有权)。
为了防止这种情况(同时保留用户轻松写入文件的能力$USERHOME
),您还可以在脚本中执行以下操作:
touch $USERHOME/upload/.dummyfile $USERHOME/upload/.dummyfile
用户将无法删除该目录,因为该目录仍然.dummyfile
存在。
答案2
答案3
对于 CentOS,您可能会选择使用 vsftpd。这是一个安全性和性能都很好的守护进程。https://security.appspot.com/vsftpd/vsftpd_conf.html
您可以指定用户是否可以拥有 chroot 环境,(chroot_local_user=YES
);您可以在创建用户时为其主页指定预定义的框架(useradd -k /path/to/your/skel
)
默认情况下,无法从文件夹中删除任何内容是匿名用户的典型限制,您可以通过 获得chown_uploads
。