欢迎来到天天文库
浏览记录
ID:50827527
大小:41.45 KB
页数:4页
时间:2020-03-15
《linux实现任何人都可写不可删除.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实现任何人都可写,任何人都不可删除文件的Samba共享[转]来源:ChinaUnix博客 日期:2008.08.1915:19 (共有0条评论)我要评论 ChinaUnix的lovegqin兄曾有一片大作:《终于实现samba可写不可删除》,其文深入浅出,受教非浅。最终效果是:在公用目录里,用户对自己所创建的目录、文件有完全的权限(可以删除),对他人创建的目录则不可删除。 在实际的应用当中,有些单位、企业的文件服务管理有些不同。可能有很多人使用同一个帐户登录。只有到了一定的级别,才会
2、分配一个私有的帐户。 比如,所有的初级员工都用:user登录文件服务器,大家的帐户都是user,不允许自己删除文件。用lovegqin兄的方法,初级员工则可以互相删除。 其实《终于实现samba可写不可删除》文的高楼里,已经有高人给出了解决办法。不过高人都是点到为止的,我不是高人,还是系统的整理一下的好。Samba设计要求: *一个公用目录,一个私有目录,一个共享的软件库 *初级员工全部用帐号user登录,可以向公用目录写文件,不可删除任何文件 *非初级员工有自己的私有目录,对
3、私有目录有完全的权限 *每个私有目录最大1G(这个要用qouta,不在这里多说了) *除ROOT,任何人不可删除公用目录,共享软件库中的内容基本知识点: *每个文件都有一个所有者(uid),一个组编号(gid)。 *如果是一个可执行文件,那么在执行时,一般该文件只拥有运行该文件的用户具有的权限.而setuid,setgid可以来改变这种设置. *Linux的文件有个扩展文件属性,即在-rwxrwxrwx属性前,还有一个扩展文件属性,同样用数字421表示,4或s表示设置setuid,
4、2或s表示设置setgid,1或t表示设置stickybit。 *setuid:设置使文件在执行阶段具有文件所有者的权限.典型的文件是/usr/bin/passwd.如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用户的密码. *setgid:该权限只对目录有效.目录被设置该位后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组. *stickybit:该位可以理解为防删除位. 让我来稍稍解释一下stickybit。应该分成两块来说: 1、目录
5、的stickybit位。 当一个目录具有stickybit位。用户如果对此目录没有写的权限。则不可删除此目录下任何文件,也不可向此目录写任何文件 2、文件的stickybit位 当一个文件具有stickybit位。即使用户对此文件所在的目录有写权限(即可以写入文件),用户也不能删除该文件。除非用户对此文件本身有写权限。 设置了扩展文件属性之后,再ls的时候就会出现例如: -rwsrw-r--表示有setuid标志 -rwxrwsrw-表示有setgid标志 -rwx
6、rw-rwt表示有sticky标志 占用了原来的x位,因此有这样的约定:如果原来有x权限,则用s,s,t表示。否则,用S,S,T表示。开始实做: #>useradduser #>chownroot:root/home/user(这个目录为公用目录所有者是root,群组是root) #>mkdir/home/soft(这个目录为共享软件库所有者是root,群组是root) #>mkdir/home/person(所有者是root,群组是root) #>chmod777/home/use
7、r #>chmod+t/home/user(为/home/user加上stickybit位) #>chmod755/home/soft Samba的配置文件smb.conf------------------------------------------------------------------------------- [global] workgroup=Haoding serverstring=Fileserver cupsoptions=ra
8、w guestaccount=guest logfile=/var/log/samba/%m.log maxlogsize=50 security=user socketoptions=TCP_NODELAYSO_RCVBUF=8192SO_SNDBUF=8192 dnsproxy=no :为了支持中文,必须加上下面两行 doscharset=cp936 unixcharset=gb2312 [homes
此文档下载收益归作者所有