晚上好。
有点混乱,需要在目录上设置什么权限,以便一个组的用户可以从中删除它。
可用的:
~# grep "vsftpd\|app_usr" /etc/passwd
app_usr:x:1001:1001::/home/app_usr:/bin/bash
vsftpd:x:1002:1002::/home/vsftpd:/bin/false
~# grep vsftpd /etc/group
app_usr:x:1001:vsftpd,distribution
vsftpd:x:1002:app_user
~# ls -la / | grep library
drwxr-xr-x+ 9 vsftpd app_usr 4096 Dec 18 02:15 library
~# mount | grep " / "
/dev/vda1 on / type ext4 (rw,errors=remount-ro)
vsftpd 配置:
chroot_local_user=YES
guest_username=vsftpd
local_root=/library
allow_writeable_chroot=YES
file_open_mode=0777
您需要为app_usr用户设置权限,以删除通过 FTP 上传到 /library 的文件,这些文件是在vsftpd用户下本地创建的。用户app_usr是vsftpd组的成员,反之亦然。
报错时:
/library# ls -la 123
-rwxrwxr-x+ 1 vsftpd vsftpd 0 Dec 18 02:15 123
/library# su app_usr
/library$ rm 123
rm: cannot remove `123': Permission denied
UPD
问题出在 Ubuntu 12.04 LTS 的一些神奇设置中,Ubuntu 16.04 LTS 上的所有内容都被删除了。这两项检查都考虑了讨论中的意见和建议。
为了使属于某个组的用户能够在某个目录中创建和删除文件系统对象,该组除了具有执行权之外,还必须具有执行权(对于目录,它以特殊方式解释:当然,该目录不能被“执行”),还有对该目录的写权限:
如果您尝试删除此目录中的文件并且用户不可写入(三组权限均未写入:所有者、组或其他所有人),则为避免出现确认对话框,您可以添加选项
-f(--force) 到rm程序的参数: