说明:
先说下,要实现的功能哈。文件共享通过samba实现,win下可以通过 \\192.168.102.128 这样的形式来访问。
\\192.168.102.128文件共享有3个目录, share /data/samba/share 共享的文件夹,包含常用行政表格,share,admin,game用户都可以在这里读写。为了admin在这个目录新建的目录或文件,其它用户share,game也能读写,需要设置/data/samba/share的sguid admin /data/samba/admin 行政的文件夹,只有admin用户能读写 game /data/samba/game 游戏的文件夹,只有game用户能读写 用户有3个 share 最低权限的用户,公司通用的 admin 行政的用户 game 游戏的samba用户
实现:
1. 添加系统用户
# groupadd share # useradd -g share share # useradd admin # useradd game 这时查看用户组,可以看到 [root@localhost ~]# id share uid=504(share) gid=504(share) groups=504(share) [root@localhost ~]# id admin uid=505(admin) gid=505(admin) groups=505(admin) [root@localhost ~]# id game uid=506(game) gid=506(game) groups=506(game)
2. 增加admin,game附属组share
# usermod -a -G share admin # usermod -a -G share game 这里再查看用户组,可以看到,admin和game用户都增加了share这个附属组!! [root@localhost ~]# id share uid=504(share) gid=504(share) groups=504(share) [root@localhost ~]# id admin uid=505(admin) gid=505(admin) groups=505(admin),504(share) [root@localhost ~]# id game uid=506(game) gid=506(game) groups=506(game),504(share)
3.安装及配置samba,这边就简单用yum安装了
# yum install samba # cp /etc/samba/smb.conf /etc/samba/smb.conf.bak.20140915 # vim /etc/samba/smb.conf //在最后添加如下内容。 [share] comment=Publich files path=/data/samba/share writeable = yes browseable = yes guest ok = yes public=yes create mode = 0664 directory mode = 0775 write list=@share #参照上一步给share组写的权限 [admin] comment = administrator files path = /data/samba/admin browseable = yes public = yes writable = yes write list = admin valid users = admin [game] comment = for game path = /data/samba/game browseable = yes public = yes writable = yes write list = game valid users = game
4. 给samba添加用户。samba依赖系统用户,如这里添加samba用户share、admin、game,系统用户里就必须有share、admin、game 3个用户。注意samba用户密码与系统用户密码无关,可以另外设置
# pdbedit -a -u share # pdbedit -a -u admin # pdbedit -a -u game # pdbedit -Lw //查看samba用户,具体如何管理samba用户,修改samba用户密码,请翻阅鸟哥的相关资料,这里就不写了。
5. 新建samba共享目录及更改目录权限
# mkdir -p /data/samba/share # mkdir -p /data/samba/admin # mkdir -p /data/samba/game 修改权限 # chown -R share.share /data/samba/share //这样修改后,就只有admin用户可以写,即使smb.conf用户权限设置可以写 # chmod 2775 /data/samba/share //设置share目录sguid,当admin、game用户在/data/samba/share目录里新建文件或目录里,新建的文件或目录的用户组会被自动被压缩成share组。这样就能保证不管用什么身份登陆并创建的文件,其它用户也可以读写。具体sgui可以查阅 linux特殊文件权限 suid sgid sticky-bit # chown -R admin.admin /data/samba/admin # chown -R game.game /data/samba/game
测试:
到这边,其实就配置完成了,可以试下效果。
在win下通过运行 || \\192.168.102.128 进入共享文件,用game身份在/data/samba/share新建个game.txt,可以看到game.txt属主为game,属组则被压缩成share组了。这就保证了share组的用户可以读写
# ll /data/samba/share/game.txt -rw-rw-r-- 1 game share 19 Sep 3 17:27 /data/samba/share/game.txt
下面是用admin用用户登陆\\192.168.102.128 共享,在game.txt下输入admin
# cat /data/samba/share/game.txt game admin
附录:
暂空!有问题的话可以给我留言,我看到会回!!!