===============================================

[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = MYSERVER
interfaces = lo eth0 192.168.1.0/24
hosts allow = 127. 192.168.1.
log file = /var/log/samba/log.%m
max log size = 50
security = share #匿名访问
#只允话任何人读,复制,不允许上传
[myshare]
comment = Public Stuff
path = /tmp/myshare
public = yes
writable = 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部分


http://yuanbin.blog.51cto.com/363003/117105


===============================================

samba的sebool布尔值修改:


http://linux.die.net/man/8/samba_selinux

===============================================

加入域

centos :setup

可参考:http://rainbird.blog.51cto.com/211214/19750

#net ads join -U administrator //总出错,不想搞了
   时提示Using short domain name -- TEST
Joined '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文件

原地址:http://rainbird.blog.51cto.com/211214/197794

#!/bin/bash
user=$1
group=$2
home=/share/$1
if [ ! -d $home ]
then
    mkdir -p $home
    chown $user $home
    chgrp $group $home
    chmod 700 $home
    edquota -p adminstrator -u $user
fi

===============================================