Samba - Tạo cổ phần thư mục con với quyền của riêng họ


9

Tôi có một chia sẻ Samba chứa nhiều thư mục như thế này:

share
  - folderA
  - folderB
  - folderC
  - folderD

Có khoảng 20 người dùng truy cập vào các chia sẻ đó. Mọi người dùng có thể có quyền truy cập riêng vào một số thư mục, ví dụ Ben có thể truy cập thư mụcA và thư mụcC, nhưng không truy cập thư mụcB và thư mụcD. Jenny có thể truy cập thư mụcB và thư mụcC, v.v.

Tôi không muốn người dùng gắn kết từng thư mục họ cần. Tôi muốn họ gắn kết thư mục "chia sẻ" có chứa tất cả các thư mục con. Việc truy cập sau đó bị hạn chế bằng cách thiết lập quyền linux.

Tôi đã tạo một nhóm cho mọi thư mục con và thêm người dùng vào các nhóm đó. Kiểm soát truy cập hoạt động hoàn hảo cho các tập tin hiện có. Nhưng bất cứ khi nào người dùng tạo một tệp trong thư mục con, nó sẽ bị từ chối cho mọi người dùng khác có quyền truy cập đọc / ghi trong thư mục đó. Để giải quyết điều này, tôi đã chơi xung quanh với mặt nạ samba nhưng không thể làm cho nó hoạt động.

Samba conf của tôi trông như thế này:

guest ok = no

[global]
workgroup = WORKGROUP
security  = user
encrypt passwords = yes

[Share]
path        = /var/samba
valid users = @everybody
read only   = no
writeable   = yes

[folderA]
path        = /var/samba/folderA
valid users = @users_folderA
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderA

[folderB]
path        = /var/samba/folderB
valid users = @users_folderB
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderB

[folderC]
path        = /var/samba/folderC
valid users = @users_folderC
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderC

[folderD]
path        = /var/samba/folderD
valid users = @users_folderD
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderD

Vì vậy, rõ ràng mọi người dùng đều ở trong nhóm mọi người, vì vậy họ có thể gắn kết chia sẻ với các thư mục con. Truy cập cho mỗi thư mục con đang hoạt động hoàn toàn tốt. Nhưng bất cứ khi nào Ben tạo một tệp trong thư mụcC, tệp sẽ có quyền truy cập tệp -rwxr - r-- nhưng nó phải là -rwxrwx ---

Tôi nghĩ rằng các chia sẻ cho các thư mục riêng lẻ hoàn toàn không hoạt động vì tôi đã cố gắng đặt writizable = no và chỉ đọc = có để kiểm tra nó. Đã khởi động lại smbd và nmbd và chia sẻ lại mạng chia sẻ (trong Windows 10). Người dùng đã có thể tạo tập tin và sửa đổi của riêng họ.

Điều này chạy trên một pi mâm xôi với raspbian. Ổ cứng với các tệp được định dạng là ext4 và được gắn qua fstab.


Để buộc quyền truy cập mong muốn đối với các tệp, hãy sử dụng force create mode = 770câu lệnh trong folderCphần cấu hình của bạn.
Oleg Bolden

Cảm ơn, điều đó thực sự không giải quyết được vấn đề nhưng tôi nhận thấy tôi có khoảng trắng trong các đường dẫn của smb.conf thực sự của tôi: [thư mụcA] path = / var / samba / một số thư mục có khoảng trắng. Tôi đã giải quyết vấn đề này bằng cách đặt đường dẫn với "(" / var / samba / một số thư mục có dấu cách "). Các cài đặt trong đoạn [thư mụcA] chỉ được sử dụng khi người dùng gắn trực tiếp [thư mụcA], nhưng cài đặt không sử dụng khi gắn kết người dùng [share] và điều hướng vào folderA các thiết lập của [share] được sử dụng cho folderA Làm thế nào tôi có thể bỏ qua các [share] cài đặt cho folderA mà không cần lắp folderA trực tiếp nhưng truy cập nó từ [share]..?
Soner

Câu trả lời:


5

Hãy thử cấu hình này (cho các phần chia sẻ):

[Share]
path        = /var/samba
valid users = @everybody
force group = +everybody
writeable   = yes
create mask = 0660
force create mode = 0110
directory mask = 0770

[folderA]
path        = /var/samba/folderA
valid users = @users_folderA
force group = +users_folderA
browseable = no

[folderB]
path        = /var/samba/folderB
valid users = @users_folderB
force group = +users_folderB
browseable = no

[folderC]
path        = /var/samba/folderC
valid users = @users_folderC
force group = +users_folderC
browseable = no

[folderD]
path        = /var/samba/folderD
valid users = @users_folderD
force group = +users_folderD
browseable = no

Đừng quên kiểm tra cấu hình và khởi động lại samba:

# testparm
# service smbd restart
# service nmbd restart

Đặt quyền:

chown root:everybody /var/samba
chmod 770 /var/samba
chown root:users_folderA /var/samba/folderA
chmod 2770 /var/samba/folderA
chown root:users_folderB /var/samba/folderB
chmod 2770 /var/samba/folderB
chown root:users_folderC /var/samba/folderC
chmod 2770 /var/samba/folderC
chown root:users_folderD /var/samba/folderD
chmod 2770 /var/samba/folderD

Cách này truy cập trực tiếp vào các thư mục nội bộ không được phép. Hơn nữa, chúng hoàn toàn không hiển thị và chỉ có thể được truy cập thông qua thư mục mẹ.


Cảm ơn, điều này đã làm việc. Bây giờ chúng tôi có một vấn đề khác là Excel 2016 không thể lưu tệp lớn hơn 13 KB vào Samba. Nhưng đó là một chủ đề khác. Cảm ơn bạn rất nhiều vì đã giúp đỡ!
soner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.