1、今天發現用samba掛載開發過程中,發現別人的權限和我的經常不一致,導致提交git的時候都被提交了,心想應該有哪里有一個統一設置的可以設置用戶的默認權限,后來百度之后找到下面的文章,以后創建文件和復制文件都可以是自己設置的默認權限了,感覺不錯
通過Samba服務器實現windows和Linux之間的文件共享,相信是絕大多數人的選擇。通常我們都會使用Samba的缺省配置,這樣,每次通過Samba從Windows向Linux中拷貝文件時,文件都會被加上”可執行”的屬性。這是很讓人頭疼的問題,每次都要通過chmod去修改文件的權限很是麻煩。
今天仔細看了一下Samba的手冊,發現只要把下面的配置加入/etc/samba/smb.conf就可以解決這個問題:
- create mode = 0644
- force create mode = 0644
- directory mode = 0755
- force directory mode = 0755
下面簡單介紹一下這幾個參數的含義:
- create mode – 這個配置定義新創建文件的屬性。Samba在新建文件時,會把dos文件的權限映射成對應的unix權限,在映射后所得的權限,會與這個參數所定義的值進行與操作。然后再和下面的force create mode進行或操作,這樣就得到最終linux下的文件權限。
- force create mode – 見上面的描述。相當於此參數所設置的權限位一定會出現在文件屬性中。
- directory mode – 這個配置與create mode參數類似,只是它是應用在新創建的目錄上。Samba在新建目錄時,會把dos–>linux映射后的文件屬性,與此參數所定義的值相與,再和force directory mode相或,然后按這個值去設置目錄屬性。
- force directory mode – 見上面的描述。相當於此參數中所設置的權限位一定會出現在目錄的屬性中。
說明一點,上面的create mode和create mask參數是同義詞,用哪個都可以;而directory mode和directory mask參數是相同的。
當你發現Samba中新建的目錄/文件權限不正確,例如無法訪問某個目錄、無法更改文件,就需要檢查上面幾個值的設置。
另外需要說明的是,上面幾個配置項,會和security mask、force security mode、directory security mask、force directory security mode這幾個配置項相互作用。這幾個帶”security”的配置項會影響Windows NT/2000的ACL功能,一般我們不需要設置。