学习总结所用《 Linux就该这么学 》
# yum install samba
配置文件去掉多余注释
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
# cat /etc/samba/smb.conf
[global]
workgroup = MYGROUP #工作组名称
server string = Samba Server Version %v #服务器介绍信息,参数%v为显示SMB版本号
log file = /var/log/samba/log.%m #定义日志文件的存放位置与名称,参数%m为来访的主机名
max log size = 50 #定义日志文件的最大容量为50KB
security = user #安全验证的方式,总共有4种:
#share:来访主机无需验证口令;比较方便,但安全性很差
#user:需验证来访主机提供的口令后才可以访问;提升了安全性
#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#domain:使用域控制器进行身份验证
passdb backend = tdbsam #定义用户后台的类型,共有3种:
#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#ldapsam:基于LDAP服务进行账户验证
load printers = yes #设置在Samba服务启动时是否共享打印机设备
cups options = raw #打印机的选项
[homes] #共享参数
comment = Home Directories #描述信息
browseable = no #指定共享信息是否在“网上邻居”中可见
writable = yes #定义是否可以执行写入操作,与“read only”相反
[printers] #打印机共享参数
comment = All Printers
path = /var/spool/samba #共享文件的实际路径(重要)
browseable = no
guest ok = no #是否所有人可见,等同于"public"参数
writable = no
printable = yes
# id yanji
uid=1000(yanji) gid=1000(yanji) groups=1000(yanji)
# pdbedit -a -u yanji
new password: (输入该账户在Samba服务数据库中的密码)
retype new password: (再次确认密码)
Unix username: yanji
NT username:
Account Flags: [U ]
User SID: S-1-5-21-464225859-96889490-2454274357-1000
Primary Group SID: S-1-5-21-464225859-96889490-2454274357-513
Full Name: yanji
Home Directory: \\localhost\yanji
HomeDir Drive:
Logon Script:
Profile Path: \\localhost\yanji\profile
Domain: LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Wed, 25 Sep 2019 21:56:52 CST
Password can change: Wed, 25 Sep 2019 21:56:52 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
pdbedit
命令用于管理SMB服务程序的账户信息数据库,其参数以及作用:
参数 | 作用 |
---|---|
-a 用户名 | 建立Samba用户 |
-x 用户名 | 删除Samba用户 |
-L | 列出用户列表 |
-Lv | 列出用户详细信息的列表 |
# mkdir /home/database
# chown -Rf yanji:yanji /home/database
# semanage fcontext -a -t samba_share_t /home/database
# restorecon -Rv /home/database
restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0
# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
# setsebool -P samba_enable_home_dirs on
# vim /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[homes]
comment = Home Directories
path = /home/database
browseable = no
writable = yes
# vim /etc/samba/smb.conf
# vim /etc/samba/smb.conf
# systemctl restart smb
# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
# iptables -F
RedHat6.8
安装支持文件共享服务的软件包(cifs-utils)# yum install cifs-utils
# vim auth.smb
username=yanji
password=yanji123
domain=MYGROUP
/etc/fstab
文件,确保共享挂载信息在服务器重启后依然生效# echo "//192.168.40.131/yanji /database cifs credentials=/root/auth.smb 0 0" >> /etc/fstab
# mount -a
# ll /database/
总用量 4
-rwxr--r-- 1 1000 1000 10 9月 25 23:08 test.txt
# cat /database/test.txt
test
test
/etc/exports
,默认情况下里面没有任何内容用于配置NFS服务程序配置文件的参数:
参数 | 作用 |
---|---|
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
# yum install nfs-utils
# mkdir /nfsfile
# chmod -Rf 777 /nfsfile
# echo "This is NFS" > /nfsfile/readme
/nfsfile
目录共享给192.168.40.0/24
网段内的所有主机NFS客户端地址与权限之间没有空格
# vim /etc/exports
/nfsfile 192.168.40.*(rw,sync,root_squash)
# systemctl restart rpcbind
# systemctl enable rpcbind
# systemctl start nfs-server
# systemctl enable nfs-server
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'
# showmount -e 192.168.40.131
Export list for 192.168.40.131:
/nfsfile 192.168.40.*
showmount
命令中可用的参数以及作用:
参数 | 作用 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况NFS资源的情况 |
-v | 显示版本号 |
服务器的IP地址
、服务器上的共享目录
、要挂载到本地系统(即客户端)的目录
# mkdir /nfsfile
# mount -t nfs 192.168.40.131:/nfsfile /nfsfile
# cat /nfsfile/readme
This is NFS
# echo "192.168.40.131:/nfsfile /nfsfile nfs defaults 0 0" >> /etc/fstab
autofs
服务程序是一种Linux系统守护进程
,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统# yum install -y autofs
# vim /etc/auto.master
...
/media /etc/iso.misc
/misc /etc/auto.misc
...
# vim /etc/auto.master
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
/media
目录中也没有iso子目录,cd
到iso
子目录时,光盘设备被立即自动挂载,顺利查看到了光盘的内容# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.1G 15G 18% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 84K 994M 1% /dev/shm
tmpfs 994M 8.9M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
# cd /media/
# ls
# cd iso
# ls
addons EULA images LiveOS Packages repodata RPM-GPG-KEY-redhat-release
EFI GPL isolinux media.repo release-notes RPM-GPG-KEY-redhat-beta TRANS.TBL
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.1G 15G 18% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 84K 994M 1% /dev/shm
tmpfs 994M 8.9M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/sr0 3.5G 3.5G 0 100% /media/iso