Linux下samba實現多用戶組/多類型用戶共享,分別訪問

//系統
CentOS Linux release 7.7.1908 (Core) 3.10.0-1062.4.3.el7.x86_64
//firewall設置
# firewall-cmd --zone=public --permanent --add-service=samba
# firewall-cmd --reload
//SELinux 關閉
//samba要求(要實現的目標)
1、服務採用用戶驗證的方式,每個用戶可以訪問自己的宿主目錄,並且只有該用戶能訪問宿主目錄,並具有完全的權限,而其他人不能看到你的宿主目錄
2、建立一個dev的文件夾,希望devA組和devopsA組的人能看到,用戶net1也可以訪問(有讀權限),但只有用戶dev1有讀寫的權限
3、建立一個work的目錄,只有workA組的人可以訪問並讀寫,用戶net1也可以訪問(有讀權限),但外人看不到那個目錄
4、建立一個文件交換目錄exchange,所有人都能讀寫,包括guest用戶,但每個人不能刪除別人的文件。
5、建立一個公共的只讀文件夾public,所有人只讀這個文件夾的內容。
//準備工作
# groupadd devA && groupadd devopsA && groupadd workA && groupadd netA
# mkdir /home/samba/dev -p && mkdir /home/samba/work && mkdir /home/samba/devops && mkdir /home/samba/net && mkdir /home/samba/exchange && mkdir /home/samba/public
# chmod 777 -R /home/samba/
# chmod -R 1777 /home/samba/exchange/
# useradd dev1 -M -g devA -s /sbin/nologin && useradd devops1 -M -g devopsA -s /sbin/nologin && useradd work1 -M -g workA -s /sbin/nologin && useradd net1 -M -g netA -s /sbin/nologin

//目錄結構
# tree /home/samba/
/home/samba/
├── dev
├── devops
├── exchange
├── net
├── public
└── work

//用戶 與 組
# id dev1 && id devops1 && id net1 && id work1
uid=1001(dev1) gid=1001(devA)=1001(devA)
uid=1002(devops1) gid=1002(devopsA)=1002(devopsA)
uid=1004(net1) gid=1004(netA)=1004(netA)
uid=1003(work1) gid=1003(workA)=1003(workA)

//安裝包
# yum -y install samba samba-client samba-common

//分別使用smbpasswd命令爲用戶添加密碼,把用戶添加到samba
# smbpasswd -a dev1
# smbpasswd -a devops1
# smbpasswd -a work1
# smbpasswd -a net1

//配置samba服務,後附smb.conf詳細
# vim /etc/samba/smb.conf

//檢查samba配置文件的語法
# testparm

//啓動/開機自啓服務
# systemctl start smb.service
# systemctl start nmb.service
# systemctl enable smb.service
# systemctl enable nmb.service
//samba配置文件
# cat /etc/samba/smb.conf

[global]
    workgroup = SAMBA
    server string = samba file server
    security = user

    passdb backend = tdbsam
    log file = /var/log/samba/log.%m
    max log size = 50

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

[homes]
    comment = Home Directories
    valid users = %S
    browseable = No
    writable = Yes
    create mode = 0664
    directory mode = 0775

[dev]
    comment = devA
    path = /home/samba/dev
    public = No
    valid users = @devA,@devopsA,net1
    write list = dev1
    printable = No

[work]
    comment = workA
    path = /home/samba/work
    public = No
    valid users = @workA,net1
    write list = @workA
    printable = No

[exchage]
    comment = exchange file directory
    path = /home/samba/exchange
    public = Yes
    writable = Yes

[public]
    comment = read only public
    path = /home/samba/public
    public = Yes
    read only = Yes

//測試 windows系統
//可以在我的電腦地址欄裏輸入 \\[sabma服務器ip]訪問;也可按 windows+R 輸入\\[sabma服務器ip],登錄後可以右擊映射到本地驅動器

//爲了便於測試,在CMD中使用 net use 命令,該命令可以刪除用戶憑證,在下次登陸時重新輸入新的帳密
> net use * /delete

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章