作者aeolus0829 (阿洽)
看板Linux
標題Re: [問題] samba和git
時間Tue Jan 2 16:39:04 2018
※ 引述《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