SAMBA 群組權限建立的目錄,其他使用者無權限進入 [論壇 - Ubuntu基本設定]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



SAMBA 群組權限建立的目錄,其他使用者無權限進入
會員二級
註冊日期:
2011/3/27 22:52
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 167
MP : 25 / 4813
EXP: 71
離線
SAMBA
PCD資料匣設定PCD群組可讀寫
其它使用者設定可讀
但~~~問題來了
環境
WINDOWS 系統 USER帳號使用
當USER進入使用PCD帳號登入PCD資料匣時
建立檔案都沒啥問題
但新增資料匣時問題就來了
其它的使用者無法進入
我到Ubuntu系統觀看PCD帳號建立的權限發現
其它的使用者變成"只能列出檔案"
這樣要如何解決啊
總不能USER建立一個資料匣我就要去更改一次權限吧@@
附上的SAMBA設定方式
[PCD]
path = /media/sdb1/PCD
writable = yes
create mode = 0764
directory mode = 0764

2011/5/24 13:29
應用擴展 工具箱
訪客
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
Anon:訪客
當公司環境使用 samba,建議使用「群組」觀念去管理

create mode = 0660
directory mode = 2770

/media/sdb1/PCD
權限:2770
擁有者: root
擁有群組:pcd

------------------------------------------------

說明:

unix 系統下,不論檔案或目錄,都有一個「擁有者」和「群組擁有者」。

擁有者是個人的,通常是管理員。

群組是一群人的集合。例如:生產部、人事部....

比如:
小美 隸屬 人事部
小明 隸屬 人事部
小華 隸屬 生產部
........
每個人都有個人的帳號,但是帳號同時可以加入一個「群組」。



unix 權限簡寫系統:
4=讀取
2=寫入
1=可執行(指 unix 系統下的可執行檔,windows 的 exe 擋不受影響)

6=可讀、可寫
7=可讀、可寫、可執行

create mode = 新增檔案時,檔案的權限
660 = 檔案擁有者、檔案群組擁有者,可讀+寫,其餘人不可讀寫

directory mod = 新增目錄時,目錄的權限
2770=目錄擁有者、目錄群組擁有者,可讀+寫+進入,其餘人無任何權限

特別說明 2770 前面那個 2,那是指當目錄底下新增檔案或目錄,該檔案或目錄的「群組」會自動變成頂層的群組。以此例子來說,就是群組會自動變成 pcd。



samba 帳號,基本上和 windows 帳號無關,也和 Linux 帳號無關,它是獨立的帳密系統。

當然你可以將其整合起來,就是把 samba 帳號,設成和windows 登入帳號密碼一樣,但即便如此,samba 帳號密碼系統還是獨立的,互不相干。


至於如何將每位 samba 帳號,加入特定群組?

建議使用 webmin 去管理(使用者帳密那邊),較省事。


Linux 的四位數字權限系統,基本上公司環境就夠用了,關鍵是要懂「群組」的觀念。若這樣還不夠用,可用 acl (進階控管權限),一般是用不到啦,除非老闆提出很無理的要求。acl 比較複雜這邊就不提了,有興趣自行 google。

---------------------------------------------------

以上說明若看不懂,建議花些時間去 K 一下鳥哥網站的 Linux 權限系統的教學文章。

因為 unix 系統有很多思維,是不能用 windows 的觀點去思考的,建議學習一下 unix 系統的觀念,對管理 unix-like 的系統會很有幫助。

2011/5/24 14:47 | 7ab5d 1b103 42c8a 3099a
應用擴展 工具箱
訪客
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
Anon:訪客
再提一下 2770 前面那個 2,那個很有學問的!

我以前花很多時間才明白這個道理,才搞定 samba 用於公司環境....

Linux 的權限系統,實際上有 4位數
第一位通常省略,省略則為 0,不具意義

第一位是「特殊權限」,目錄 和 檔案 各有不同意義


目錄特殊權限:
----------------
2=新增創建子目錄、檔案時,子目錄或檔案的群組,會自動改成和頂層父目錄相同。(set GID)

1=該目錄底下的檔案、目錄,僅有擁有者和 root 可刪除。/tmp 就是這種權限。

你可以做個實驗:
sudo chmod 2770 /media/sdb1/PCD
sudo chown root:pcd /media/sdb1/PCD
cd /media/sdb1/PCD
mkdir test
ls -d /media/sdb1/PCD/test

觀察新增的那個 test 目錄,其群組擁有者為何?
為何群組擁有者會變成那樣子?


檔案的特殊權限:
1=執行此檔案時,不論執行者是誰,暫時變身檔案擁有者的權限去執行。(set UID)

2=執行此檔案時,不論執行者是誰,暫時變身群組擁有者的權限去執行。(set GID)


---------------------------------------------------

另外說一下 samba 在 windows 端那邊要如何用才會方便:

在桌面,新增「捷徑」
目標:\\ sabma 的 IP
例如:\\192.168.0.253

這個叫做 UNC 網址,注意是兩個「反斜線」,在鍵盤 enter 上方那個反斜線。

然後點這個捷徑,就可以通到 samba,這樣用起來比較方便、快速。

當然你也可以將捷徑拖到工作列,或改變捷徑的圖案,讓它看起來更像一台網路磁碟機。

samba 的帳號的和 windows 登入,互不相干
但你可以將其設相同
若帳號、密碼都相同,登入 samba 時就不必打帳號、密碼
windows 會自動以自己登入的帳密、嘗試登入 samba

若密碼不同也無所謂,因為 windows 登入 samba,帳號密碼是可以記憶的。

---------------------------------------

在你測試帳密系統的時候,可能經常需要登入、登出,更換帳號,以便測試帳密的權限可靠性。

但是 windows 只要登入一次網路芳鄰,它就會自動記憶住,此時該如何不重開機,來測試別的帳號?

如何清除已經記憶的「網路芳鄰帳密」?
開啟 cmd 命令提示字元:
net use * /delete

2011/5/24 15:10 | 7ab5d 1b103 42c8a 3099a
應用擴展 工具箱
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
會員二級
註冊日期:
2011/3/27 22:52
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 167
MP : 25 / 4813
EXP: 71
離線
歐~~~原來特殊權限的1跟2是這麼一回事啊
之前不清楚1跟2的用途
一直沒有去理會

剛剛修改了smb.conf設定
[PCD]
path = /media/sdb1/PCD
write list = @PCD
create mode = 0764
directory mode = 2764

使用PCD的權限進入
但~~~~~新建的資料匣權限還是無法繼承PCD資料匣的權限
是我哪裡設定錯誤嗎??

用途於PCD群組可"讀""寫"
其餘帳號只可"讀"

2011/5/24 19:27
應用擴展 工具箱
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
會員二級
註冊日期:
2011/3/27 22:52
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 167
MP : 25 / 4813
EXP: 71
離線
剛剛在smb.conf設定
改成
[PCD]
path = /media/sdb1/PCD
write list = @PCD
create mode = 0765
directory mode = 0765
使用PCD的權限進入
新建的資料匣其他的權限已可變成存取

但雍有者會變更為PCD
2=新增創建子目錄、檔案時,子目錄或檔案的群組,會自動改成和頂層父目錄相同。(set GID)
??????????
是我哪裡設定錯誤嗎
PCD資料匣使用PCD權限登入
所建立的資料匣無法繼承PCD權限?????

2011/5/24 19:52
應用擴展 工具箱
訪客
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
Anon:訪客
建議樓主乾脆說明想要什麼效果,直接貼給你看好了,這樣比較快

比如:
pcd 是一個部門或群組的目錄,只有這個群組或部門的人,可以進入觀看、新增刪除檔案、寫入(修改)檔案....


[PCD]
comment = PCD #鼠標移到上面時出現的註解
path = /media/sdb1/PCD
writable = yes
public = no
browseable = yes
create mode = 0660
directory mode = 2770


那個 write list = @PCD 是多餘的
因為 2770 其餘人(非該群組的人)就無法進入了

---------------------------------------------------

為什麼 create mode = 0660 ?而不是 0764

因為 7 是擁有者可執行的意思
雖然擁有者大部分會設定為 root(管理者)
但你並沒有要執行裡面檔案(比如 .sh 或 Linux 的執行檔)
所以 6 就好了

other 用 0,而不是 4,因為那是限制群組才能使用的目錄

------------------------------------------------------

上面的設定
create mode = 0660
directory mode = 2770

這是指:samba 新建檔案、目錄的時候,會變成這種權限

但是,你硬碟裡頭,原先就有的目錄和檔案,怎麼辦?

手動去更改權限!

空目錄可以這樣子(底下沒有東西)
sudo chmod 2770 /media/sdb1/PCD


底下有東西的話,要這樣子:

# 找所有子目錄,更改為 2770
sudo find /media/sdb1/PCD -type d -print0 | xargs -0 chmod 2770

# 找目錄裡頭所有檔案(包含子目錄),改為 660
sudo find /media/sdb1/PCD -type d -print0 | xargs -0 chmod 660


# 此外,記得修改 /media/sdb1/PCD 的擁有者和群組
sudo chown root:pcd /media/sdb1/PCD

語法:chown 擁有者:擁有群組 [目錄或檔案]


------------------------------------------

ps.
修正一下前篇說的,有一個小錯誤
一個帳號並不是只能加入「一個群組」
一個帳號,實際上可以加入「多個群組」

比如:
小明是研發部的人,同時他也是生產部的人
所以他有兩個群組:pcd、pcc (這只是舉例)

小華是總經理,他有所有部門群組的權限,可進入任何部門的目錄...

諸如此類
一個員工,他只有一個唯一的帳號
但是這個員工帳號,可以加入多個「群組」,假如有需要的話


-----------------------------------

為什麼要用 webmin 管理才方便?

如下圖:

[img]https://lh6.googleusercontent.com/_9YfJJsAyxPw/Tduh29rjTVI/AAAAAAAAA64/RyneojlhhU8/s800/webmin-samba001.png[img]

首先,samba 帳號要與 Linux 帳號 同步!
這樣才方便編輯,也才方便與 emial 或 webmail 服務整合

由於不需要 ssh 遠端登入,shell 用 nologin 就好,避免資安漏洞

[img]https://lh4.googleusercontent.com/_9YfJJsAyxPw/Tduh2kYuPsI/AAAAAAAAA60/h7bXN_PpMGg/s800/webmin-samba002.png[img]

用這個加入「群組」是非常方便的
左邊的現有群組,直接拉到右邊即可

[img]https://lh5.googleusercontent.com/_9YfJJsAyxPw/Tduh042O_cI/AAAAAAAAA6s/lmllfMa1sNY/s800/webmin-samba003.png[img]

當然的,你要先新增「群組」
才有的選

[img]https://lh4.googleusercontent.com/_9YfJJsAyxPw/Tduh2WPTKII/AAAAAAAAA6w/2bB-Qzf5gDo/s800/webmin-samba004.png[img]

另外建議把員工中文姓名都打上去,這樣才知道誰是誰

因為帳號通常都英文的
不然叫 john、jay、alice、play....有的沒的
鬼才知道這些人是誰
中文姓名打上去,才方便知道這帳號是誰的...

--------------------------------------

至於:


但雍有者會變更為PCD
2=新增創建子目錄、檔案時,子目錄或檔案的群組,會自動改成和頂層父目錄相同。(set GID)
??????????
是我哪裡設定錯誤嗎
PCD資料匣使用PCD權限登入
所建立的資料匣無法繼承PCD權限?????


擁有者當然是建立該檔案、目錄的人
unix 新建檔案、目錄,不會繼承擁有者
因為這樣子才可以知道該檔案、目錄是誰創的

但那不是重點,擁有者是誰完全不重要
重點是「群組」可以繼承,會繼承 pcd

不信的話,請再看仔細一點
該新建的檔案、目錄,群組是不是 pcd?

而一個目錄、檔案,就算擁有者不是自己
只要自己的群組和它的群組相同,就有權限去讀寫!

這是一開始就說明的:用「群組」去管理的概念

一個檔案、目錄
除了「擁有者」還有一個「擁有群組」

加油囉!多實驗測試幾遍,就會融會貫通了
這完全是 unix 觀念問題,所以才建議先去看看教學

2011/5/24 20:31 | 7ab5d 1b103 42c8a 3099a
應用擴展 工具箱
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
會員二級
註冊日期:
2011/3/27 22:52
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 167
MP : 25 / 4813
EXP: 71
離線
用途於PCD資料匣
PCD群組可"讀""寫"
其餘帳號只可"讀"

而外需求
PCD群組新增的資料匣
其餘帳號要可進入的權限

2011/5/24 21:44
應用擴展 工具箱
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
會員二級
註冊日期:
2011/3/27 22:52
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 167
MP : 25 / 4813
EXP: 71
離線
群組的確有繼承
但其他other我需要繼承
我是把
directory mode = 2775
other才有繼承的
因為我需要其他的人可讀取
由PCD群組建立的資料匣

2011/5/24 22:04
應用擴展 工具箱
訪客
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
Anon:訪客

用途於PCD資料匣
PCD群組可"讀""寫"
其餘帳號只可"讀"

而外需求
PCD群組新增的資料匣
其餘帳號要可進入的權限


[PCD]
comment = PCD #鼠標移到上面時出現的註解
path = /media/sdb1/PCD
writable = yes
public = no
browseable = yes
create mode = 0664
directory mode = 2775


/media/sdb1/PCD 目錄本身的權限
擁有者:root
擁有群組:pcd
權限:2775


不過看起來樓主的 sdb1 應該是掛載的
權限也會和檔案系統有關
ext2、3、4...之類的,才能使用 unix 權限
FAT32、NTFS 的,不支援權限管理

也就是說:如果 sdb1 是 FAT32、NTFS
那就沒權限功能了,怎麼設都沒有效果

2011/5/25 15:31 | 7ab5d 1b103 42c8a 3099a
應用擴展 工具箱
回覆: SAMBA 群組權限建立的目錄,其他使用者無權限進入
會員二級
註冊日期:
2011/3/27 22:52
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 167
MP : 25 / 4813
EXP: 71
離線
歐~~~了解
我sdb1有使用ext4格式
至於其他格式以前有用過NTFS使用過
慘狀~~~馬上出現~~~哈

2011/5/25 19:12
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.