实现任何人都可写,任何人都不可删除文件的 Samba 共享 [转]
来源 : ChinaUnix 博客 日期: 2008.08.19 15:19 (共有 0 条评论 ) 我要评论
ChinaUnix 的 lovegqin 兄曾有一片大作: 《终于实现 samba 可写不可删除》,其文深入浅出,受教
非浅。最终效果是:在公用目录里,用户对自己所创建的目录、文件
有完全的权限 ( 可以删除 ) ,对他人创建的目录则不可删除。
在实际的应用当中, 有些单位、 企业的文件服务管理有些不同。 可能有很多人使用同一个帐户登录。 只
有到了一定的级别,才会分配一个私有的帐户。
比如,所有的初级员工都用 :user 登录文件服务器,大家的帐户都是 user ,不允许自己删除文件。用
lovegqin 兄的方法,初级员工则可以互相删除。
其实《终于实现 samba 可写不可删除》文的高楼里,已经有高人给出了解决办法。不过高人都是点到
为止的,我不是高人,还是系统的整理一下的好。
Samba 设计要求:
* 一个公用目录,一个私有目录,一个共享的软件库
* 初级员工全部用帐号 user 登录,可以向公用目录写文件,不可删除任何文件
* 非初级员工有自己的私有目录,对私有目录有完全的权限
* 每个私有目录最大 1G( 这个要用 qouta ,不在这里多说了 )
* 除 ROOT ,任何人不可删除公用目录,共享软件库中的内容
基本知识点:
* 每个文件都有一个所有者 (uid), 一个组编号 (gid) 。
* 如果是一个可执行文件 , 那么在执行时 , 一般该文件只拥有运行该文件的用户具有的权限 . 而
setuid, setgid 可以来改变这种设置 .
* Linux 的文件有个扩展文件属性,即在 -rwxrwxrwx 属性前,还有一个扩展文件属性,同样用数字
421 表示, 4 或 s 表示设置 setuid ,2 或 s 表示设置 setgid ,1 或 t 表示设
置 sticky bit 。
* setuid: 设置使文件在执行阶段具有文件所有者的权限 . 典型的文件是 /usr/bin/passwd. 如果一
般用户执行该文件 , 则在执行过程中 , 该文件可以获得 root 权限 ,
从而可以更改用户的密码 .
* setgid: 该权限只对目录有效 . 目录被设置该位后 , 任何用户在此目录下创建的文件都具有和该目录
评论0
最新资源