1
AoEiuV020 2021-06-24 11:53:29 +08:00
不懂 Samba,但删除目录是需要目录上一级写权限的,和目录本身是否可写无关的,
|
2
ho121 2021-06-24 11:57:54 +08:00 via Android
不如把.git 文件夹隐藏
|
3
James369 OP @ho121 比如我共享了 AAA, BBB 目录,.git 是在 AAA/.git ,BBB/.git ,那用户直接删除 AAA 或 BBB 就完了。
|
4
asilin 2021-06-24 12:11:55 +08:00
使用 veto files 指令将 .git 目录隐藏屏蔽,这样如果目录树中包含 .git 目录,则整个目录都无法删除
|
5
hstdt 2021-06-24 12:20:28 +08:00 via iPhone
文件放在 git 所在文件夹的下一级,不要同级。共享的时候共享子文件夹即可。
|
6
CRVV 2021-06-24 12:22:04 +08:00
这个需求应该用文件系统的 snapshot 来做吧,就没有必要排除大文件,也没有不能删的 .git 目录了。
btrfs subvolume snapshot AAA /backup/AAA 可写但不可删除是个奇怪的权限,因为可以用写入操作把文件内容清空,然后等于是删了。大约查了一下只有 Windows 支持这种奇怪的设定,但我也没看明白到底怎么用的。 |
7
orzfly 2021-06-24 12:29:59 +08:00
要不要换个问题?.git 目录不一定必须要放在 AAA/.git 这里哦……
可以用 git-dir 和 work-tree 参数手动指定对应目录。 例如 git status 变成这样: /share/AAA> git --git-dir=/super-non-shared-directory/AAA.git/ --work-tree=/share/AAA status |
8
passerbytiny 2021-06-24 12:33:17 +08:00 via Android
linux 文件权限只有读、写、执行,文件夹权限只有写、执行(读取其下级列表),删除文件和删除文件夹都属于“写文件夹”,没有独立权限分配。
|
9
xtdwf 2021-06-24 12:34:02 +08:00
群晖表示可以直接设置可写不可删
|
10
dingwen07 2021-06-24 12:43:11 +08:00 via iPhone
|
12
Jirajine 2021-06-24 12:52:35 +08:00 via Android
ACL 应该可以
|
13
YuukiIchika 2021-06-24 20:44:14 +08:00
给目录设置 sticky bit ?
|
14
codehz 2021-06-25 08:38:40 +08:00 via Android
小贴士:
git 支持在外部目录检出,此时目标目录将不包含.git 目录(当然 git 操作还是得在仓库目录才能做的 详情搜索 git worktree (不过这玩意对单个分支只能同时检出一次(默认的检出也算一次),所以建议开一个 bare 仓库用作操作目录) |
15
flynaj 2021-08-05 01:35:54 +08:00 via Android
这个只读共享就行,独立共享一个 up 文件夹做上传。
|