最近研究了一下Linux使用者權限和Samba檔案共享,為了便于學習,通過一個執行個體來實作檔案共享功能。
假設一個場景,某小微企業共有6人,其中4人為普通員工(user1-user4),2人為管理者(manager1,manager2)。為了便于工作,建立一個基于Centos7 的檔案共享伺服器,伺服器上進行檔案存儲、交換和釋出。具體要求為:
1、 每個使用者(user、manager)都有自己獨立的檔案夾,隻能自己通路,其他人不能通路;
2、 建立一個互動檔案夾,用于檔案互動,每個人都可以上傳、下載下傳、删除;
3、 建立一個檔案釋出檔案夾,使用者文檔釋出,所有人都能通路、下載下傳,但隻有manager使用者隻能上傳。
Smba需求設計
具體實作方法為:
1、 安裝samba
# yum -y install samba
2、 在伺服器上建立相應的目錄
#mkdir smb 将所有檔案放在/home/smb/下
#cd smb/
#mkdir sharedocs publish user1 user2 user3 user4 manager1 manager2
3、 添加使用者組
我們将普通員工放在Group_user組裡,管理者放在Group_manager組裡
# groupadd Group_manager
# groupadd Group_user
4、 添加使用者
adduser -g Group_user -d /home/smb/user1 -s /sbin/nologin user1
注:-g 添加使用者的所屬組
–G 指定一個或多個擴充使用者組
-d 指定家目錄位置
-s 所用的SHELL,/sbin/nologin是特殊的SHELL,表示該使用者不能用于登陸系統
以上實作添加使用者user1到組Group_user裡,并且禁止登陸系統,以此類推添加其他使用者
5、 添加samba使用者,并設定密碼
# smbpasswd -a user1
New SMB password:在這裡添加user1的密碼
Retype new SMB password:重複秘密
以此類推添加其他使用者密碼
6、 配置相關目錄的權限和歸屬
#chmod -R 777 /home/smb/sharedocs
#chmod -R 777 /home/smb/publish
檢視權限
#ls -ald !$ 注意!$表示上一條指令中最後一個參數
ls -ald /home/smb/sharedocs
drwxrwxrwx. 2 root root 6 6月 27 12:39 /home/smb/sharedocs
7、 配置smb.conf
vim /etc/samba/smb.conf 在smb.conf中添加以下内容
[sharedocs]
comment=Sharedocs
path=/home/smb/sharedocs
readonly=yes
write list = @Group_user,@Group_manager
create mask = 0775
directory mask = 0775
[publish]
comment=Publish
path=/home/smb/publish
write list =@Group_manager
8、 關閉selinux和防火牆
# setenforce 0 臨時關閉selinux
#systemctl stop firewalld.service 停止防火牆
#systemctl disable firewalld.service禁用防火牆
9、 Windows下登陸
登陸
如圖,登陸samba伺服器位址,然後輸入使用者名和密碼,即可登陸。
登陸成功
另,測試中一旦用Windows登陸Samba,下次在登陸時仍保持上一次的使用者名,可使用
net use * /del /y 清除Samba登陸資訊