一、samba基本
1、查询samba是否已安装 | |||
rpm -q samba | |||
2、查看Samba是否已经加入自启动服务 | |||
/sbin/chkconfiig | grep smb | |||
/sbin/chkconfiig | grep nmb | |||
3、查看服务是否已启用 | |||
/sbin/service smb status | |||
/sbin/service nmb status | |||
4、启用与关闭 | |||
/sbin/service smb start | |||
/sbin/service smb stop | |||
/sbin/service smb restart | |||
5、查看配置文件 | |||
cat etc/samba/smb.conf | |||
6、编辑配置文件 | |||
vi etc/samba/smb.conf |
二、不需要密码(纯测试)
1、查看linux服务器的语系是否为UTF-8 | ||||||||||||||
cat /etc/sysconfig/i18n | ||||||||||||||
2、备份 | ||||||||||||||
cd /etc/samba | ||||||||||||||
cp smb.config smb.conf.raw <==先备份!!! | ||||||||||||||
vi etc/samba/smb.conf | ||||||||||||||
3、设定服务器整体环境方面的参数 | ||||||||||||||
[global] | ||||||||||||||
#与主机名称有关的设定 | ||||||||||||||
workgroup = WORKGROUP <== 设定Samba Server所要加入的工作域或者域 | ||||||||||||||
netbios name = smbserver <== 如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。 | ||||||||||||||
server string = Samba Server Version %v <== 设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。 | ||||||||||||||
#与语系方面有关的设定 | ||||||||||||||
unix charset = utf8 | ||||||||||||||
display charset = utf8 | ||||||||||||||
dos charset = cp950 | ||||||||||||||
#与登录档有关的设定 | ||||||||||||||
log file = /var/log/samba/log.%m <==如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。 | ||||||||||||||
max log size =50 <==设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。 | ||||||||||||||
#与密码有关的设定 | ||||||||||||||
security = share <==用户访问Samba Server不需要提供用户名和口令, 安全性能较低。 | ||||||||||||||
#修改一下印表机的载入方式 | ||||||||||||||
load printers = no | ||||||||||||||
4、分享的资源设定:将旧的的注释(#或;),新的加入 | ||||||||||||||
#先取消[homes],[printers]的项目 | ||||||||||||||
#针对/tmp的设定,可浏览可写入 | ||||||||||||||
[temp] <==分享资源的名称 | ||||||||||||||
comment = Temporary file space <==对该共享的描述,可以是任意字符串。 | ||||||||||||||
path = /tmp <==实际Linux分享的目录 | ||||||||||||||
writable = yes <==可写入 | ||||||||||||||
browseable = yes <==可浏览 | ||||||||||||||
guest ok = yes <==单纯分享时,让用户随意登入的设定值 | ||||||||||||||
#特别留意,在原本的smb.conf上面就已经有很多预设值了,如果不知道这些预设值的用途,尽量保留预设值,也可以使用man smb.conf去查询该预设值的意义。 | ||||||||||||||
5、检查smb.conf的语法设定是否正确 | ||||||||||||||
testparm | ||||||||||||||
#显示Loaded service file ok. | ||||||||||||||
testparm -v | ||||||||||||||
#查阅完整的参数设定,连同预设值也会显示出来 | ||||||||||||||
6、服务器启动 | ||||||||||||||
/etc/init.d/smb start | ||||||||||||||
/etc/init.d/nmb start | ||||||||||||||
chkconfig smb on | ||||||||||||||
chkconfig nmb on | ||||||||||||||
netstat -tlunp | grep mbd | ||||||||||||||
7、假设自我为用户端的检验 | ||||||||||||||
smbclient -L [//主机或IP] <==-L :仅查阅后面接的主机所提供分享的目录资源。 | ||||||||||||||
smbclient -U [使用者账号] <==-U :以后面接的这个帐号来尝试取得该主机的可使用资源。 | ||||||||||||||
#由于在这个范例当中我们并没有规范使用者的安全等级(share),所以不必使用-U 这个选项 | ||||||||||||||
8、如何使用这个资源:利用mount指令测试 | ||||||||||||||
mount -t cifs //127.0.0.1/temp /mnt | ||||||||||||||
df | ||||||||||||||
cd /mnt | ||||||||||||||
ll | ||||||||||||||
touch zzz | ||||||||||||||
ll zzz /tmp/zzz | ||||||||||||||
cd ; umount /mnt <==测试完毕后,就将这个挂载的资料卸载。 |
三、需帐号密码才可登入的分享
1、设定smb.conf档案 | ||||||||
vim /etc/samba/smb.conf | ||||||||
[global] | ||||||||
#与密码有关的设定 | ||||||||
security = user <==改成user层级 | ||||||||
2、设定smb.conf档案 | passdb backend = tdbsam <==使用的是TDB资料库格式 | |||||||
vim /etc/samba/smb.conf | ||||||||
[global] | ||||||||
comment = Home Directories | ||||||||
browseable = no <==除了使用者自己外,不可被其他人浏览 | ||||||||
writable = yes <==挂载后可读写此分享 | ||||||||
create mode =0664 <==建立档案的权限为664 | ||||||||
directory mode = 0775 <==建立目录的权限为775 | ||||||||
#create mode与directory mode两个设定值(此值可设定也可不理会) | ||||||||
[project】 | ||||||||
comment = smbuser's project | ||||||||
path = /home/project <==实际Linux上面的目录位置 | ||||||||
browseable = yes <==可被其他人所浏览到资源名称 | ||||||||
writable = yes <==可以被写入 | ||||||||
write list = @users | ||||||||
3、每次改完smb.conf都需要检查一下语法是否正确 | ||||||||
testparm | ||||||||
4、设定目录权限 | ||||||||
#因为是要开放给users 群组,而共享群组的权限通常是『 2770 』 | ||||||||
mkdir /home/project | ||||||||
chgrp users /home/project | ||||||||
chmod 2770 /home/project | ||||||||
ll -d /home/project | ||||||||
5、设定可使用Samba 的用户帐号与密码 | ||||||||
useradd -G users smb1 | ||||||||
useradd -G users smb2 | ||||||||
useradd -G users smb3 | ||||||||
echo 1234 | passwd --stdin smb1 | ||||||||
echo 1234 | passwd --stdin smb2 | ||||||||
echo 1234 | passwd --stdin smb3 | ||||||||
6、使用pdbedit指令功能 | ||||||||
pdbedit -L [-vw] <==单纯查看账号咨询 | ||||||||
pdbedit -a|-r|-x -u账号 <==新增/修改/删除账号 | ||||||||
pdbedit -a -m -u机器账号 <==与PDC有关的机器码 | ||||||||
#-L :列出目前在资料库当中的帐号与UID 等相关资讯; | ||||||||
#-v :需要搭配-L 来执行,可列出更多的讯息,包括家目录等资料; | ||||||||
#-w :需要搭配-L 来执行,使用旧版的smbpasswd 格式来显示资料; | ||||||||
#-a :新增一个可使用Samba 的帐号,后面的帐号需要在/etc/passwd 内存在者; | ||||||||
#-r :修改一个帐号的相关资讯,需搭配很多特殊参数,请man pdbedit; | ||||||||
#-x :删除一个可使用Samba 的帐号,可先用-L 找到帐号后再删除; | ||||||||
#-m :后面接的是机器的代码(machine account),与domain model 有关! | ||||||||
7、开始新增使用者 | ||||||||
pdbedit -a -u smb1 | ||||||||
#设置密码 | ||||||||
8、查询目前已经存在的Samba账号 | ||||||||
pdbedit -L | ||||||||
#仅会列出账号与UID而已 | ||||||||
9、修改与删除 | ||||||||
smbpasswd smb1 <==修改密码比较特殊,管理密码参数是使用pdbedit,修改密码得要用smbpasswd | ||||||||
pdbedit -x -u smb1 <==删除账户 | ||||||||
pdbedit -Lw <==查看账户是否已删除 | ||||||||
10、重新启动Samba并进行自我检测 | ||||||||
/etc/init.d/smb restart | ||||||||
/etc/init.d/nmb restart | ||||||||
#匿名登入 | ||||||||
smbclient -L //127.0.0.1 | ||||||||
#使用smb1这个账号登入 | ||||||||
smbclient -L //127.0.0.1 -U smb1 | ||||||||
11、挂载测试 | ||||||||
mount -t cifs //127.0.0.1/smb1 /mnt -o username=smb1 | ||||||||
ll /home/smb1/.bashrc | ||||||||
ls -a /mnt | ||||||||
setsebool -P samba_enable_home_dirs=1 | ||||||||
ls -a /mnt | ||||||||
umount /mnt |
四、参考网址
http://linux.vbird.org/linux_server/0370samba.php#server_share