[redhat] comment = redhat 's files path = /var/redhat public = no valid users = tom @redhat /*設定有效用戶為tom或者是redhat組的用戶*/ 保存退出,重啟smb服務 這裡有必要提到samba用戶帳戶映射這具概念,出於帳號安全考慮,為防止samba 用戶通過samba帳號來猜測系統用戶的信息,所以,就出現了 samba用戶映射,如 ,將上面的tom帳戶映射成其他的名稱,然後用其他的名稱如jack、rhood都可以 登錄,其權限及登錄密碼都與tom一樣。 實現帳戶映射的方法:先在/etc/samba/smb.conf中的帳戶映射服務打開,方法很 簡單,找到username map = /etc//samba/smbusers這一行,將其前面的;去掉即 可(linux中;表示關閉,#表示注釋,注意與freebsd中的#號概念區別開來),然 後修改/etc/samba/smbusers vi /etc/samba/smbusers 在裡面添加一行 tom = jack rhood 保存退出,重啟smb服務,然後就可以用jack及rhood登錄redhat共享目錄,其權 限及登錄密碼與tom完全一致。5、samba服務器的權限設定我們用一個samba的配置文件的例子來說明這個問題
[redhat] comment = redhat 's files path = /var/redhat public = no valid = tom @redhat /*有效用戶*/ write list = tom @redhat /*具有寫權限的用戶*/ create mask = 0660 /*能夠創建文件的權限,這裡是660,即rw-rw----權限,即 屬主和同組人有可讀可寫權限*/ Directory mask = 0660 /*對目錄的控制權限,這裡亦是660權限*/ [補充一下權限方面知識:r=讀,八進制中是4 w=寫,八進制代碼是2 x=執行,八 進制代碼是1,在上面的rw-rw----中,9個字符劃為三份,前三個字符為文件屬主 的權限(即rw-,可讀可寫),中間三個字符為同組人的權限(rw-,可讀可寫), 後面則是其他人的權限(---,不可讀不可寫不可執行),換成八進制,r+w+- =2+1+0=6 ,所以構成了mask = 0660 之類的格式,至於770,775之類的權限,大 家可以自行去想了]6、舉例場景:tom和jack為sales組的成員,rhood和joeys是技術部的成員,公司要求組 建samba服務器,每個人都有自己的samba帳戶,分別有sales組和tech二個組,各 組成員不得跨組訪問,不給成員分配shell 分析後的所需做的工作為:
1、為所有用戶建立samba帳號
2、建sales和tech二個組,並為組分配權限
3、為所有成員設定不分配shell
4、將各自的文件共享出來
操作:
groupadd sales /*建組sales*/
groupadd tech
useradd -g sales -s /bin/false tom
/*將tom加入sales組(-g sales),並不分
配shell權限(-s /bin/false) */
useradd -g sales -s /bin/false jack
smbpasswd -a tom
smbpasswd -a jack
useradd -g tech -s /bin/false rhood
useradd -g tech -s /bin/false joeys
smbpasswd -a rhood
smbpasswd -a joeys
mkdir /home/sales /home/tech /*分別為sales和tech建立目錄*/
chgrp sales /home/sales /*改變目錄的屬主*/
chgrp tech /home/tech
chmod 770 /home/sales /*改變目錄的權限,為rwxrwx---*/
chmod 770 /hoem/tech
chmod g+s /home/sales /*為目錄增加進程屬主,
這一操作是為了確保該目錄永
遠地屬於屬主*/
chmod g+s /home/tech
ls -ld /home/sales /home/tech /*查看目錄的權限*/
然後編輯samba的配置文件,將目錄共享出來
vi /etc/samba/smb.conf
先將[global]裡的security安全級別設為user
security = share
然後按shift+g到配置文件的末尾設置目錄的共享
[sales]
comment = sales
path = /home/sales
public = no
valid users = @sales
write list = @sales
create mask = 0770
directory mask = 0770
[tech]
comment = tech
path = /home/tech
public = no
valid users = @tech
write list = @tech
create mask = 0770
directory mask = 0770
保存退出
用tail -f /etc/samba/smb.conf
來確認一下剛才修改的配置
確認正確,然後重啟smb服務
service smb restart