samba实现公司文件共享

说明:
先说下,要实现的功能哈。文件共享通过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

 
附录:
暂空!有问题的话可以给我留言,我看到会回!!!

发表评论

邮箱地址不会被公开。 必填项已用*标注