===============================================
[global]workgroup = WORKGROUPserver string = Samba Server Version %vnetbios name = MYSERVERinterfaces = lo eth0 192.168.1.0/24hosts allow = 127. 192.168.1.log file = /var/log/samba/log.%mmax log size = 50security = share #匿名访问#只允话任何人读,复制,不允许上传[myshare]comment = Public Stuffpath = /tmp/mysharepublic = yeswritable = yes #增加可写(此时可实现任何人可上传下载创建文件,但是不能进行任何删除操作)guest ok = yes
-----------------------------------------------
操作:新建目录
#mkdir /tmp/myshare
#chown -R nobody:nobody /tmp/myshare
#chmod 720 /tmp/myshare //实现任何人具有删除操作:权限配置必须至少是:720 (同组用户有写的权限)
//进入目录要有“读(4)”权限,删除要有“写(2)”权限,创建文件要有“执行(1)”权限
setsebool -P allow_smbd_anon_write on //重要
===============================================
使用家目录
security = user //samba服务验证用户
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S //可访问的用户
-----------------------------------------------
操作:需开通setsebool家目录
setsebool -P samba_enable_home_dirs on
//添加smb用户
#smbpasswd -a stu1 (已是linux的用户)
密码
===============================================
全局配置中加==>实现不同用户不同组的权限配置
include = /etc/samba/%U.smb.conf 表示使samba服务器加载/etc/samba目录下格式为“用户名.smb.conf”的配置文件。
include = /etc/samba/%G.smb.conf 表示使samba服务器加载/etc/samba目录下格式为“组名.smb.conf”的配置文件。
===============================================
添加用户和组
#groupadd 组名
#useradd 用户名
#useradd -g 组名 用户名 //添加用户到组
包含到配置的共享目录下
valid users = 用户名 //该目录只供该“用户句”访问
valid users = @组名 //该目录只供该“该组员用户”访问
将一个用户添加到用户组中,千万不能直接用: usermod -G groupA 这样做会使你离开其他用户组,仅仅做为 这个用户组 groupA 的成员。
应该用 加上 -a 选项:
usermod -a -G groupA user
===============================================
linux下登陆samba服务器
//查看samba上的目录
#smbclient -L //samba_ip地址 -U 用户名
//登陆
#smbclient //samba_ip地址/目录 -U 用户名
客户端挂载
mount -t cifs -l //samba_ip地址/目录 /mnt/samba/
===============================================
如果你想允许samba 输出NTFS / fusefs卷。
setsebool-P samba_share_fusefs 1
如果你想允许Samba共享任何文件/目录只读。
setsebool-P samba_export_all_ro 1
如果你想允许的virt CIFS文件管理。
setsebool-P virt_use_samba 1
如果你想要让samba创建新的主目录(例如,通过PAM)。
setsebool-P samba_create_home_dirs 1
如果你想允许Samba共享用户的主目录。
setsebool-P samba_enable_home_dirs 1
如果你想允许samba导出NFS卷。
setsebool-P samba_share_nfs 1的
如果你想,让sanlock管理CIFS文件。
setsebool-P sanlock_use_samba 1
如果你想允许samba无限制的运行脚本。
setsebool-P samba_run_unconfined,1
如果你想允许Samba作为域控制器上,添加用户,组和更改密码。
setsebool-P samba_domain_controller 1
如果你想允许Samba共享任何文件/目录的读/写。
setsebool-P samba_export_all_rw 1
如果你想允许samba作为一个端口映射。
setsebool-P samba_portmapper 1
如果你想要,支持SAMBA家目录。
setsebool-P use_samba_home_dirs 1
如果你想要让samba修改用于公共文件传输服务的公开的文件。文件/目录必须public_content_rw_t标签。
chcon -t public_content_rw_t /目录
setsebool-P allow_smbd_anon_write 1
===============================================
samba-swat部分
===============================================
samba的sebool布尔值修改:
===============================================
加入域
centos :setup
可参考:http://rainbird.blog.51cto.com/211214/19750
#net ads join -U administrator //总出错,不想搞了 时提示Using short domain name -- TESTJoined 'CENTOS5' to dns domain 'test.cn'No DNS domain configured for centos5. Unable to perform DNS Update.DNS update failed!#net rpc join -U administrator //这个可以加入域
===============================================
samba实现windows2003域用户认证
域用户登陆后自动创建以域用户为名的samba家目录
[global] workgroup = DEMO password server = 172.16.1.1 realm = DEMO.COM security = ads idmap uid = 16777216-33554431 idmap gid = 16777216-33554431 winbind separator = / template homedir = /home/%U template shell = /sbin/nologin winbind use default domain = true winbind offline logon = true winbind enum groups = yes winbind enum users = yes server string = Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 smb passwd file = /etc/samba/smbpasswd load printers = yes cups options = raw[homes] comment = Home Directories path = /home/%U browseable = no writable = yes valid users = demo.com/%U root preexec = /root/mkhome.sh %U %G [samba_share] comment = Public Stuff path = /tmp/samba_share public = yes writable = yes guest ok = yes valid users = @TEST
===============================================
mkhome.sh文件
原地址:
#!/bin/bashuser=$1group=$2home=/share/$1if [ ! -d $home ]then mkdir -p $home chown $user $home chgrp $group $home chmod 700 $home edquota -p adminstrator -u $userfi
===============================================