如何设置一个用户,在一个目录中只能创建文件,不能删除文件

OpenBSD的安装、升级、更新等日常问题。

版主: chenjun天地乾坤

回复
openbsdsir008
铁 Fe
帖子: 80
注册时间: 2014-03-20 16:19

如何设置一个用户,在一个目录中只能创建文件,不能删除文件

帖子 openbsdsir008 » 2015-01-02 10:28

我在做一个internet上的samba服务器,希望用户只能向共享文件夹中,复制文件,创建文件,但不能删除文件

livemoon
铁 Fe
帖子: 61
注册时间: 2013-04-06 16:24

Re: 如何设置一个用户,在一个目录中只能创建文件,不能删除文件

帖子 livemoon » 2015-01-04 10:03

在unix下是可以通过用户粘着位来实现的
samba没用过,是不是会有额外的权限设置不清楚

f5b
锆 Zr
帖子: 643
注册时间: 2011-10-22 20:43

Re: 如何设置一个用户,在一个目录中只能创建文件,不能删除文件

帖子 f5b » 2015-01-04 12:11

不知道samba本身能否实现

我之前是通过两个方法来实现

pure-ftpd 专门负责上传事宜,上传后通过pure-ftp的upload-script脚本更改文件目录或权限

samba做局域网内只读共享,不可写。

头像
acheng
锌 Zn
帖子: 581
注册时间: 2011-07-07 21:52

Re: 如何设置一个用户,在一个目录中只能创建文件,不能删除文件

帖子 acheng » 2015-01-06 11:09

openbsdsir008 写了:我在做一个internet上的samba服务器,希望用户只能向共享文件夹中,复制文件,创建文件,但不能删除文件
如果你允许文件的所有者删除文件的话,设置Samba共享目录的Sticky bit就可以了,就像/tmp目录,默认就是如此(所有人都可以添加新文件或目录,也可以查看所有人的文件,但只有所有者可以编辑和删除)。

代码: 全选

[acheng@puffy ~]$ ls -ld /tmp
drwxrwxrwt  7 root  wheel  512 Jan  5 18:51 /tmp
如果你想让所有者也不能删除,或许可以试试用chflags命令打开目录的uappnd (user append only)标志位。
chflags的说明:
http://www.openbsd.org/cgi-bin/man.cgi? ... SD-current
Samba本身也可以按用户和组来设置权限,也支持ACL,但具体没深入学习过,不知道是否能实现类似目标,或者实现的难易程度如何

f5b
锆 Zr
帖子: 643
注册时间: 2011-10-22 20:43

Re: 如何设置一个用户,在一个目录中只能创建文件,不能删除文件

帖子 f5b » 2015-01-06 11:15

acheng 写了:
openbsdsir008 写了:我在做一个internet上的samba服务器,希望用户只能向共享文件夹中,复制文件,创建文件,但不能删除文件
如果你允许文件的所有者删除文件的话,设置Samba共享目录的Sticky bit就可以了,就像/tmp目录,默认就是如此(所有人都可以添加新文件或目录,也可以查看所有人的文件,但只有所有者可以编辑和删除)。

代码: 全选

[acheng@puffy ~]$ ls -ld /tmp
drwxrwxrwt  7 root  wheel  512 Jan  5 18:51 /tmp
如果你想让所有者也不能删除,或许可以试试用chflags命令打开目录的uappnd (user append only)标志位。
chflags的说明:
http://www.openbsd.org/cgi-bin/man.cgi? ... SD-current
Samba本身也可以按用户和组来设置权限,也支持ACL,但具体没深入学习过,不知道是否能实现类似目标,或者实现的难易程度如何
楼主直接看Samba的说明书吧
例如https://www.samba.org/samba/docs/man/Samba-HOWT ... trols.html

头像
unreal
银 Ag
帖子: 1083
注册时间: 2010-06-07 18:52

帖子 unreal » 2015-01-06 20:49

Samba有那么好玩?弄个带web前端的FTP不是更好玩~

f5b
锆 Zr
帖子: 643
注册时间: 2011-10-22 20:43

帖子 f5b » 2015-01-07 11:40

unreal 写了:Samba有那么好玩?弄个带web前端的FTP不是更好玩~
局域网内共享文件,映射网络驱动器,Windows 当作本地磁盘使用

我的应用是,在服务器上安装OpenBSD + Samba,磁盘整列,不担心数据丢失
然后桌面Windows映射本地磁盘使用,再也不用担心硬盘坏了,现在数据比硬盘值钱

头像
unreal
银 Ag
帖子: 1083
注册时间: 2010-06-07 18:52

帖子 unreal » 2015-01-10 16:36

f5b兄:那弄个freeNAS之类的东东比你现有方案在难易度和成本上有多少差别?

f5b
锆 Zr
帖子: 643
注册时间: 2011-10-22 20:43

帖子 f5b » 2015-01-10 19:04

unreal 写了:f5b兄:那弄个freeNAS之类的东东比你现有方案在难易度和成本上有多少差别?
FreeNAS很快就能部署,确实很方便,不过FreeNAS就是做存储服务,没其他东西。

OpenBSD +Samba自己搞折腾罢了,当然还可以在上面做很多事情,例如顺便做网关也各种服务。

成本的区别在于硬件

openbsdsir008
铁 Fe
帖子: 80
注册时间: 2014-03-20 16:19

Re: 如何设置一个用户,在一个目录中只能创建文件,不能删除文件

帖子 openbsdsir008 » 2015-02-14 22:57

acheng 写了:
openbsdsir008 写了:我在做一个internet上的samba服务器,希望用户只能向共享文件夹中,复制文件,创建文件,但不能删除文件
如果你允许文件的所有者删除文件的话,设置Samba共享目录的Sticky bit就可以了,就像/tmp目录,默认就是如此(所有人都可以添加新文件或目录,也可以查看所有人的文件,但只有所有者可以编辑和删除)。

代码: 全选

[acheng@puffy ~]$ ls -ld /tmp
drwxrwxrwt  7 root  wheel  512 Jan  5 18:51 /tmp
如果你想让所有者也不能删除,或许可以试试用chflags命令打开目录的uappnd (user append only)标志位。
chflags的说明:
http://www.openbsd.org/cgi-bin/man.cgi? ... SD-current
Samba本身也可以按用户和组来设置权限,也支持ACL,但具体没深入学习过,不知道是否能实现类似目标,或者实现的难易程度如何

谢谢acheng
In addition, if the -o option is specified, the file flags (see chflags(1)) are displayed as comma-separated strings in front of the file size, abbreviated as follows:
-
no flags
arch
archived
nodump
do not dump
sappnd
system append-only
schg
system immutable
uappnd
user append-only
uchg
user immutable

回复

在线用户

正浏览此版面之用户: Semrush [Bot] 和 2 访客