Tôi không thể có được samba để thiết lập quyền thích hợp trên các thư mục đã tạo


17

Tôi có một máy chủ Ubuntu chia sẻ một số thư mục bằng samba. Khi khách hàng tạo thư mục hoặc tệp mới, các quyền không được đặt theo cài đặt trong smb.conf.

Cài đặt hiện tại của tôi cho một chia sẻ cụ thể:

[share]
    path = /mnt/share
    browsable = yes
    guest ok = no
    writable = yes
    read only = no
    create mask = 0774
    directory mask = 0774
    write list = netuser

Khi ứng dụng khách samba (hộp windows 7) sử dụng tài khoản 'netuser' để tạo tệp hoặc thư mục, quyền sẽ trở thành

drwxr-sr-- 2 netuser sambashare      4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare         0 2012-01-22 21:07 New Text Document.txt

Thư mục mẹ có cờ id nhóm được đặt, do đó, chủ sở hữu nhóm sambashare. Ý tưởng là cả người dùng samba và người dùng máy chủ đều thuộc nhóm sambashare và do đó có thể chỉnh sửa, xóa và tạo tệp và thư mục. Tuy nhiên, vì các thư mục đã tạo không có cờ ghi cho nhóm, người dùng máy chủ không thể tạo tệp hoặc thư mục mới trong các thư mục đó mà không có sudo.

Tôi đã thử nghiệm thêm và loại bỏ mặt nạ thư mục, chế độ thư mục lực lượng, chế độ bảo mật thư mục và chế độ bảo mật thư mục lực lượng, nhưng các hành vi vẫn còn. Các tệp và thư mục mới được tạo không nhận được sự cho phép 774, nhưng thay vào đó là 764 và 754.

Tôi đang thiếu gì? Tại sao samba không đặt quyền chính xác?

Câu trả lời:


19

Tôi nghĩ bạn cần sử dụng các tham số sau:

# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664

# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775

Tôi đang tìm kiếm một lời giải thích hay về cách các cài đặt này hoạt động, nhưng không thể tìm thấy bất cứ điều gì tốt hơn sau đó người đàn ông smb.conf

Bạn sẽ phải cuộn xuống một chút cho các tùy chọn đó.

Về cơ bản, tóm lại, các quyền của windows không giống như unix (linux) và hơi lạ khi samba ánh xạ quyền.


1
Vâng, đó dường như là cùng một trang quản trị như samba.org/samba/docs/man/manpages-3/smb.conf.5.html mà tôi đã xem xét, vấn đề là dường như không có vấn đề gì với bát phân Các giá trị tôi đặt, tôi vẫn nhận được các quyền tương tự được đặt trên tệp hoặc thư mục đã tạo.
Zaz

Bạn đã thiết lập tất cả các tùy chọn tôi đưa cho bạn? Nếu vậy, xin vui lòng cập nhật bài viết đầu tiên của bạn và tại thời điểm đó tôi sẽ đề nghị bạn nộp báo cáo lỗi.
Panther

1
Nó đã nói .. nhưng khi kiểm tra và thử nghiệm kỹ hơn, thêm 2 vào mặt nạ thư mục đã khắc phục vấn đề. Cảm ơn nhiều. : D
Zaz

Tuyệt vời, cảm ơn bạn đã đánh dấu đây là câu trả lời được chấp nhận, nó giúp những người khác có vấn đề tương tự.
Panther

Cấu hình Samba quá phức tạp và thực sự khó hiểu. Ví dụ, sự khác biệt logic giữa lực tạo và chỉ tạo ... không có ý nghĩa gì. Gợi ý của bạn là một cứu tinh mặc dù - cảm ơn bạn!
Matthias Hryniszak

8

Sau rất nhiều thử nghiệm và sai sót, đây là mã chính xác để chia sẻ samba dir bằng cách sử dụng các nhóm SGID và unix. Nếu người dùng kết nối ẩn danh, anh ta sẽ nhận được r / o, nếu anh ta đăng nhập và là thành viên của nhóm được chỉ định, anh ta sẽ nhận được r / w.

Tôi có nhóm có tên 'admin' được đặt làm nhóm chính cho người dùng có quyền ghi, mọi người khác chỉ được quyền đọc.

Tôi buộc người dùng không được ai, vì vậy những người khác nhau làm việc trên cùng một tệp không can thiệp lẫn nhau.

Tôi đặt chmod 2755 trên thư mục dùng chung, vì vậy nó kế thừa các thư mục đã tạo với cùng một nhóm 'quản trị viên'

$ chmod -R 2755 /home/shares/test

Kiểm tra xem tất cả có tốt không:

$ stat /home/shares/test
Access: (2755/drwxr-sr-x)  Uid: (65534/  nobody)   Gid: ( 1001/   admin)

Phần có liên quan của /etc/samba/smb.conf:

[test]
        comment = test
        path = /home/shares/test
        force user = nobody
        read only = No
        create mask = 0664
        force create mode = 0664
        directory mask = 02775
        force directory mode = 02775

Bài đăng này đưa tôi đi đúng hướng, nhưng testparm đã tiết lộ 4 chỉ thị không chính xác, vì vậy tôi đang chia sẻ cấu hình cố định ở đây. Trong samba, càng ít chỉ thị bạn chỉ định càng tốt.


6

Tôi có cùng một vấn đề, nhưng mọi thứ như chỉ thị mặt nạ không hiệu quả với tôi (Samba 4.3.11):

 create mask = 0664
 force create mode = 0664
 directory mask = 02775
 force directory mode = 02775

Tùy chọn duy nhất hoạt động là trong phần [toàn cầu] hoặc chia sẻ:

 inherit permissions = yes

Chỉ cần thay đổi tất cả các quyền của thư mục và tệp theo nhu cầu của bạn, vì vậy các thư mục và tệp trong tương lai sẽ kế thừa các quyền tương tự.


Tôi đang sử dụng Samba phiên bản 4.7.6-Ubuntu. Và điều này cũng làm việc cho tôi.
Andi S.

Câu trả lời đúng đối với 4.8.11trên freebsd, quá :)
jitter

3

Có một vấn đề rất giống khi kết nối từ các thiết bị Unix / Linux / OSX / MacOS khác: tất cả các cài đặt đều bị bỏ qua trừ khi bạn chỉ định

[global]

unix extensions = no

Và kết nối với smb://<serverhost>thay vì cifs://<serverhost>.


0
 Here add this code to the sudo nano smb.conf
 and restart sudo service smbd restart  and access from another local PC/computer using connect with smb://<serverhost>  to create or edit files/folder   html is folder name 

 [html]
   comment = admin access
   path = /var/www/html
   browsable = yes
   guest ok = no
   writable = yes
   valid users = @admin
   create mask = 664
   force create mode = 664
   security mask = 664
   force security mode = 664
   directory mask = 2775
   force directory mode = 2775
   directory security mask = 2775
   force directory security mode = 2775
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.