看板 Linux 關於我們 聯絡資訊
※ 引述《aubr3 ()》之銘言: : 想請問一下 : 最近在重新學習linux : 之前學的時候常苦於不知道哪些配置檔要修改哪些不用(在編譯某些程式的時候) : 編譯後如果失敗了(有些設定選錯或設錯) 有研究 VM 的 snapshot 嗎?修改前 snapshot ,錯了把 snapshot 倒回來 如果不是用 VM 架 linux ... 那當我沒說 : 可是由於某些設定檔沒有移除 : 所以重新編譯還是一樣的結果 : 這次想要用samba配合git來學習 : 監控所有的檔案 : 目前有兩台虛擬機 : debian 6.0.5 : 皆是全新安裝 : 1台是samba主機 主要是用來學習用 : 1台是git主機 主要是用來監控用 : 現在samba和git皆安裝好可以連線 : 可是常常出現某個檔案權限不足 : 所以git沒辦法add(我git的能力只有把檔案commit然後監控而已) : 問題是 : 1.請問我要如何設定smb.conf才可以讓git主機可以看到samba主機所有的東西呢? : (P.S.以最小權限的方式,雖然我也不知道如何全開,我用的皆是預設再開一些必要的) 你的 smb.cnf 最末段有 #[homes] # comment = Home Directories # path = / # browseable = no # valid users = @users # writable = no # create mask = 0700 # directory mask = 0700 把註解拿掉, 應該就可以了,但礙於你的權限 (eve) 可能有很多目錄是進不了的 : 2.還是說有個好的方法可以達到這樣子的目的? 目的? 以要重新學習 linux 為目的,我看不出架 samba server 及 git server 的必要 (反而提高不少複雜度,尤其是 samba) 主要是在處理權限的時候,除了原本 linux 的權限外,你還要計算 samba 的權限 (尤其是權限還有繼承的觀念要處理) 比如 file -rwxr--r-- eve users samba 裡面如果設 read only,那你透過 samba share 去修改 file 一樣會得到 permission denied 的訊息 所以,我比較建議的是你就直接做 local git 就好,不要做 remote git 也就是說,不要同時架 samba 及 git server 反之,直接架 samba server ,然後在修改 smb.cnf 共享資料夾後,馬上 git add smb.cnf / git commit 這時候,由於你是用 root 身份修改 smb.cnf ,所以 .git 一定是放在 /etc/.git 事情會單純很多,也比較不會有挫敗感 不過底下的事件滿有趣的,所以還是試著來看一下 : 以下是兩台主機的設定以及登入方式 : smb.conf設定檔 : https://nofile.io/f/q3dThuS5ghr/smb.conf : -----------------------------------samba----------------------------------- : $apt-get install vim samba : You will see the following questions: : Workgroup/Domain Name: <– WORKGROUP : Enter a workgroup nam : $vim /etc/samba/smb.conf : activate the line security = user : $usermod -G users eve : $smbpasswd -a eve : $/etc/init.d/samba restart 看起來你就是共用了一個 home 的資料匣,然後是 user 層級的安全性,並且有正確啟用 smbpasswd ,到目前為止都沒有問題 : -----------------------------------smbfs----------------------------------- : $apt-get install smbfs git vim : You will see the following questions: : Workgroup/Domain Name: <– WORKGROUP : Enter a workgroup nam : $smbmount -o username="eve",password="xxxx" //192.168.1.24/eve : /home/eve/git/root 這邊開始我就有疑問了 如果你是把 /192.168.1.24/eve 掛載到 /home/eve/git/root 底下的資料匣結構會和你講的不一樣 : $mkdir git /home/eve/git/root/git : $cd git pwd: /home/eve/git/root/git : $git init 產生 /home/eve/git/root/git/.git : $mkdir root /home/eve/git/root/git/root : $git add . git 把目前 /home/eve/git/root/git/root 加進去 不合理的地方 : 怎麼會出現 etc ? (在你的錯誤訊息裡有) 我的感覺是,你應該有試著掛載 //192.168.0.24/home (home 實際上是遠端的 /) 這樣子講就比較合理,因為你 samba 裡對於遠端的 / 所設定的共用權限是不可寫入 這樣底下的 permission denied 就合理了,因為你的 eve 使用者沒有權限寫入遠端的 /etc : 之後就會出錯 : error: open("root/etc/.pwd.lock"): Permission denied : error: unable to index file root/etc/.pwd.lock : fatal: adding files failed : --------------------------------------------------------------------------- : 我寫了個script來加入ignore這些檔案 script 的部份和問題無關就跳過了 (正規表示法應該花了不少時間) : 不過已經弄四天了 : 而且抓到三千多個沒辦法加入的檔案 : 這個script還有一些錯誤吧! : 目前沒有掌握到的情況為 : 有檔案出現又消失 : 所以git抱怨檔案不見了 : 這種情況沒掌握到 : 我看了一下子似乎都是暫存檔所以就沒管他 : https://nofile.io/f/K3csreYjRTX/gitAddAll.sh.txt : 有什麼不清楚的我可以再補 : 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.20.129.1 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1514882347.A.BBB.html ※ 編輯: aeolus0829 (211.20.129.1), 01/02/2018 16:48:54
aubr3: 您好有的快照那個僅限於前幾個指令,有時候是好幾個月前, 01/02 17:24
aubr3: 某個指令的設定不同或是錯誤而不自知 01/02 17:25
aubr3: 對了我將home多加了一個 path = / 01/02 18:15