我想为多个用户安装一个带有子文件夹的 ext4 分区
/data
user1/
user2/
...
就像/home
。因此我复制了 mount 的 fstab 条目/home
,
UUID=... /data ext4 defaults 0 2
手动创建挂载点
sudo mkdir /data
并创建具有适当权限的子文件夹:
sudo mkdir /data/user1 && chown user1:user1 /data/user1
sudo mkdir /data/user2 && chown user2:user2 /data/user2
...
虽然这允许用户在其子文件夹中创建文件,他们无法将其移至垃圾箱。
我手动创建了该lost+found
文件夹,但没有成功。
# ls -al /data/ | grep lost
drwx------ 2 root root 4096 Okt 15 11:55 lost+found
我需要做哪些更改才能启用垃圾箱?
答案1
垃圾目录需要以这种格式命名才能正常工作:.Trash-$UID 是否允许对已安装的分区进行‘移至垃圾箱’而不是‘永久删除’?
###############################################################################
根据这篇 archlinux 帖子指的是FreeDesktop 垃圾桶规格我们可以为每个用户使用位于顶部文件夹中的垃圾文件夹
/data
.Trash-<user1.uid>
.Trash-<user2.uid>
...
并由相应的用户拥有。
chown user1:user1 /data/.Trash-<user1.uid>
chown user2:user2 /data/.Trash-<user2.uid>
...
修改后,用户可以创建文件、将文件删除到垃圾箱以及恢复文件。
更新:您必须重新登录才能使其正常工作。
答案2
上述垃圾目录的正确格式是
.Trash-$UID
mkdir -p .Trash-$UID/{expunged,files,info}
chown $UID:$GID -Rv .Trash-$UID
chmod 750 -Rv .Trash-$UID
以上内容在 ubuntu、arch 和 fedora 中对我有用:
是否允许对已安装的分区进行‘移至垃圾箱’而不是‘永久删除’?
答案3
我创建了一个名为mktrash.sh
垃圾mkdir
文件夹的脚本。
#!/bin/bash
if [ "$1" = "" ]; then
echo "Parameter: <mount path> - the top directory"
exit
fi
TRASH=$1/.Trash
UTRASH=$TRASH/$UID
echo Creating Trash Directory: $UTRASH
echo Ctrl-C to Cancel, Enter to Continue
echo You will need to enter your SUDO password for creating $TRASH
read VAR
sudo mkdir -v $TRASH
sudo chmod -v 1777 $TRASH
mkdir -v $UTRASH
chmod -v 700 $UTRASH
如果能对任何坐骑实现自动化,那就太好了。
一旦.Trash
目录存在,新用户就应该自动添加,并且Trash
全世界都可以写入。