Điểm:1

Sự cố về quyền với thiết bị RAID1

lá cờ tn

Tôi đang gặp một số sự cố với máy chủ gia đình (Ubuntu 20.04.3) mà tôi đã cài đặt.

Cấu hình của tôi: 1 Phần mềm RAID1 (mdadm) được gắn qua fstab vào /media/altocasa/NetDisk1

Tôi cũng đã kích hoạt chia sẻ samba để chia sẻ thư mục trên đĩa đó. Các thư mục khác trên đĩa được dành riêng cho các dịch vụ khác nhau: -owncloud -truyền tải -tầm cỡ -kodi

Vấn đề của tôi là về... quyền! Đó là bởi vì ngay cả khi tôi đã quản lý để gắn thư mục với nhóm "dữ liệu" chứa mọi người dùng cần R/W trên đĩa đó và ngay cả khi các quyền được đặt thành drwxrwxrwx, thì mọi dịch vụ tôi cố gắng sử dụng đều báo cáo rằng họ không' không có đủ quyền để ghi vào bất kỳ thư mục nào bên trong đĩa.

Của tôi mdadm.conf

# mdadm.conf
#
# Vui lòng tham khảo mdadm.conf(5) để biết thông tin về tệp này.
#

# theo mặc định (tích hợp sẵn), quét tất cả các phân vùng (/proc/partitions) và tất cả
# vùng chứa cho siêu khối MD. cách khác, chỉ định thiết bị để quét, sử dụng
# ký tự đại diện nếu muốn.
#DEVICE vùng chứa phân vùng

# thiết bị tự động tạo với quyền tiêu chuẩn của Debian
TẠO chủ sở hữu = nhóm gốc = chế độ đĩa = 0777 tự động = có

# tự động gắn thẻ các mảng mới thuộc về hệ thống cục bộ
CHỦ NHÀ <hệ thống>

# hướng dẫn daemon giám sát nơi gửi thông báo qua thư
MAILADDR [email protected]

# định nghĩa về mảng MD hiện có

# Tệp này được tạo tự động vào Thứ tư, ngày 02 tháng 11 năm 2016 00:28:16 +0100
# bởi mkconf $Id$

ARRAY /dev/md0 metadata=1.2spars=1 name=altocasa.alto:0 UUID=abf104eb:c48a9898:e19f5e29:b810dc85

Của tôi fstab

# /etc/fstab: thông tin hệ thống tập tin tĩnh.
#
# Sử dụng 'blkid' để in mã định danh duy nhất trên toàn cầu cho một
# thiết bị; điều này có thể được sử dụng với UUID= như một cách mạnh mẽ hơn để đặt tên cho thiết bị
# hoạt động ngay cả khi thêm và xóa đĩa. Xem fstab(5).
#
# <hệ thống tập tin> <điểm gắn kết> <loại> <tùy chọn> <kết xuất> <vượt qua>
# / đã bật /dev/mmcblk0p2 trong khi cài đặt
UUID=0051b1ea-f028-4e24-852e-60f0e14deba5 / lỗi ext4=remount-ro 0 1
# /boot/efi bật /dev/mmcblk0p1 trong khi cài đặt
UUID=3AC6-9820 /boot/efi vfat umask=0077 0 1
/swapfile không trao đổi sw 0 0
#điểm gắn đột kích /dev/md0
#UUID=abf104eb:c48a9898:e19f5e29:b810dc85 /media/altocasa/NetDisk1 auto nosuid,nodev,nofail,silent,permissions,x-gvfs-show umask=000,utf8 0 0
#UUID=1EFCAB415200A4AB /media/altocasa/NetDisk1 auto nosuid,nodev,users,nofail,x-gvfs-show,uid=1000,gid=1001 0 0
#UUID=abf104eb:c48a9898:e19f5e29:b810dc85 /media/altocasa/NetDisk1 auto nosuid,rw,nodev,nofail,x-gvfs-show,users,uid=1000,gid=1001,permissions,utf8 0 0
/dev/md0 /media/altocasa/NetDisk1 auto nosuid,rw,nodev,nofail,x-gvfs-show,users,uid=1000,gid=1001,permissions,utf8 0 0

Của tôi Tệp cấu hình Samba

#
# Tệp cấu hình mẫu cho bộ Samba dành cho Debian GNU/Linux.
#
#
# Đây là tập tin cấu hình chính của Samba. Bạn nên đọc
# smb.conf(5) trang hướng dẫn để hiểu các tùy chọn được liệt kê
# đây. Samba có một số lượng lớn các tùy chọn có thể định cấu hình, hầu hết trong số đó 
# không được hiển thị trong ví dụ này
#
# Một số tùy chọn thường đáng để điều chỉnh đã được đưa vào như
# ví dụ đã nhận xét trong tệp này.
# - Khi các tùy chọn như vậy được nhận xét bằng ";", cài đặt được đề xuất
# khác với hành vi Samba mặc định
# - Khi nhận xét bằng "#", cài đặt được đề xuất là mặc định
# hành vi của Samba nhưng tùy chọn được coi là quan trọng
# đủ để được đề cập ở đây
#
# LƯU Ý: Bất cứ khi nào bạn sửa đổi tệp này, bạn nên chạy lệnh
# "testparm" để kiểm tra xem bạn chưa thực hiện bất kỳ cú pháp cơ bản nào 
# lỗi. 

#======================== Cài đặt chung =========

[toàn cầu]
    ánh xạ tới khách = người dùng xấu
    nhóm làm việc = nhóm làm việc
    ghi nhật ký = tập tin
    bí danh netbios = altoserver,altocasa
    tùy chọn ổ cắm = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=131072 SO_RCVBUF=131072
    tên netbios = AltoServer
    tệp nhật ký = /var/log/samba/log.%m
    mật khẩu chương trình = /usr/bin/passwd %u
    phụ trợ passdb = tdbsam
    mặc định = NetDisk1
    tuân theo các hạn chế pam = có
    hành động hoảng loạn = /usr/share/samba/panic-action %d
    cấp hệ điều hành = 20
    dịch vụ tự động = NetDisk1
    kích thước nhật ký tối đa = 1000
    vai trò máy chủ = máy chủ độc lập
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Nhập lại\snew\s*\password:* %n\n *password\supdated\ssuccessfully* .
    chia sẻ người dùng cho phép khách = có
    đồng bộ hóa mật khẩu unix = có
    đổi mật khẩu pam = có
    chuỗi máy chủ = %h máy chủ (Samba, Ubuntu)
    

## Duyệt/Nhận dạng ###

# Thay đổi tên này thành nhóm làm việc/tên miền NT mà máy chủ Samba của bạn sẽ là một phần của

# chuỗi máy chủ tương đương với trường Mô tả NT

#### Mạng ####

# Bộ giao diện / mạng cụ thể để liên kết với
# Đây có thể là tên giao diện hoặc địa chỉ IP/mặt nạ mạng;
# tên giao diện thường được ưu tiên
; giao diện = 127.0.0.0/8 eth0

# Chỉ liên kết với các giao diện và/hoặc mạng được đặt tên; bạn phải sử dụng
# tùy chọn 'giao diện' ở trên để sử dụng tùy chọn này.
# Bạn nên bật tính năng này nếu máy Samba của bạn
# không được bảo vệ bởi tường lửa hoặc bản thân nó là tường lửa. Tuy nhiên, điều này
# tùy chọn không thể xử lý chính xác các giao diện động hoặc không phát sóng.
; chỉ liên kết giao diện = có



#### Gỡ lỗi/Kế toán ####

# Điều này yêu cầu Samba sử dụng tệp nhật ký riêng cho từng máy
# kết nối

# Giới hạn kích thước của các tệp nhật ký riêng lẻ (tính bằng KiB).

# Chúng tôi muốn Samba chỉ đăng nhập vào /var/log/samba/log.{smbd,nmbd}.
# Nối thêm syslog@1 nếu bạn cũng muốn các tin nhắn quan trọng được gửi tới nhật ký hệ thống.

# Làm điều gì đó hợp lý khi Samba gặp sự cố: gửi cho quản trị viên một dấu vết lùi


####### Xác thực #######

# Vai trò máy chủ. Xác định chế độ nào Samba sẽ hoạt động. Khả thi
# giá trị là "máy chủ độc lập", "máy chủ thành viên", "chính cổ điển
# bộ điều khiển miền", "bộ điều khiển miền dự phòng cổ điển", "hoạt động
# bộ điều khiển miền thư mục". 
#
# Hầu hết mọi người sẽ muốn "máy chủ độc lập" hoặc "máy chủ thành viên".
# Chạy dưới dạng "bộ điều khiển miền thư mục hoạt động" trước tiên sẽ yêu cầu
# chạy "cung cấp miền công cụ samba" để xóa cơ sở dữ liệu và tạo một
# tên miền mới.


# Tham số boolean này kiểm soát xem Samba có cố gắng đồng bộ hóa Unix hay không
# mật khẩu với mật khẩu SMB khi mật khẩu SMB được mã hóa trong
# mật khẩu đã thay đổi.

# Để đồng bộ hóa mật khẩu Unix hoạt động trên hệ thống Debian GNU/Linux, hãy làm như sau
# tham số phải được đặt (nhờ Ian Kahan <<[email protected]> cho
# gửi kịch bản trò chuyện chính xác cho chương trình passwd trong Debian Sarge).

# Boolean này kiểm soát liệu PAM có được sử dụng để thay đổi mật khẩu hay không
# khi được yêu cầu bởi ứng dụng khách SMB thay vì chương trình được liệt kê trong
# 'mật khẩu chương trình'. Mặc định là 'không'.

# Tùy chọn này kiểm soát cách ánh xạ các nỗ lực xác thực không thành công
# đến kết nối ẩn danh

########## Tên miền ###########

#
# Các cài đặt sau chỉ có hiệu lực nếu 'vai trò máy chủ = chính
# bộ điều khiển miền cổ điển', 'vai trò máy chủ = bộ điều khiển miền dự phòng'
# hoặc 'đăng nhập tên miền' được đặt 
#

# Nó chỉ định vị trí của người dùng
# thư mục hồ sơ từ quan điểm của khách hàng) Sau đây
# yêu cầu chia sẻ [hồ sơ] để được thiết lập trên máy chủ samba (xem
# phía dưới)
; đường dẫn đăng nhập = \%N\profiles\%U
# Một lựa chọn phổ biến khác là lưu trữ hồ sơ trong thư mục chính của người dùng
# (đây là mặc định của Samba)
# đường dẫn đăng nhập = \%N\%U\profile

# Cài đặt sau chỉ có hiệu lực nếu 'đăng nhập miền' được đặt
# Nó chỉ định vị trí của thư mục chính của người dùng (từ ứng dụng khách
# quan điểm)
; ổ đĩa đăng nhập = H:
# đăng nhập trang chủ = \%N\%U

# Cài đặt sau chỉ có hiệu lực nếu 'đăng nhập miền' được đặt
# Nó chỉ định tập lệnh để chạy trong khi đăng nhập. Kịch bản phải được lưu trữ
# trong chia sẻ [netlogon]
# LƯU Ý: Phải được lưu trữ theo quy ước định dạng tệp 'DOS'
; tập lệnh đăng nhập = logon.cmd

# Điều này cho phép người dùng Unix được tạo trên bộ điều khiển miền thông qua SAMR
# ống RPC. Lệnh ví dụ tạo tài khoản người dùng với Unix bị vô hiệu hóa
# mật khẩu mở khóa; vui lòng thích ứng với nhu cầu của bạn
; thêm tập lệnh người dùng = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

# Điều này cho phép các tài khoản máy được tạo trên bộ điều khiển miền thông qua 
# Ống SAMR RPC.  
# Điều sau đây giả sử có một nhóm "máy" trên hệ thống
; thêm tập lệnh máy = /usr/sbin/useradd -g máy -c "%u tài khoản máy" -d /var/lib/samba -s /bin/false %u

# Điều này cho phép các nhóm Unix được tạo trên bộ điều khiển miền thông qua SAMR
# ống RPC.  
; thêm tập lệnh nhóm = /usr/sbin/addgroup --force-badname %g

############ Khác ############

# Sử dụng dòng sau cho phép bạn tùy chỉnh cấu hình của mình
# trên cơ sở mỗi máy. %m được thay thế bằng tên netbios
# máy đang kết nối
; bao gồm = /home/samba/etc/smb.conf.%m

# Một số giá trị mặc định cho winbind (đảm bảo bạn không sử dụng các phạm vi
# cho cái gì khác.)
; cấu hình idmap *: phụ trợ = tdb
; cấu hình idmap *: phạm vi = 3000-7999
; idmap config YOURDOMAINHERE : phụ trợ = tdb
; cấu hình idmap YOURDOMAINHERE : phạm vi = 100000-999999
; vỏ mẫu = /bin/bash

# Thiết lập tùy chọn chia sẻ người dùng để cho phép người dùng không phải root chia sẻ thư mục
# bằng lệnh net usershare.

# Số lượng người dùng tối đa. 0 có nghĩa là tính năng chia sẻ người dùng bị vô hiệu hóa.
# lượt chia sẻ tối đa của người dùng = 100

# Cho phép người dùng đã được cấp đặc quyền chia sẻ người dùng để tạo
# lượt chia sẻ công khai, không chỉ lượt xác thực

#======================== Chia sẻ định nghĩa =========

# Bỏ bình luận sau (và điều chỉnh các cài đặt khác bên dưới cho phù hợp)
# để bật chia sẻ thư mục chính mặc định. Điều này sẽ chia sẻ mỗi
# thư mục chính của người dùng là \server\username
;[nhà]
; bình luận = Trang chủ Thư mục
; có thể duyệt = không

# Theo mặc định, các thư mục chính được xuất ở dạng chỉ đọc. Thay đổi
# tham số tiếp theo thành 'không' nếu bạn muốn có thể viết thư cho họ.
; chỉ đọc = có

# Mặt nạ tạo tệp được đặt thành 0700 vì lý do bảo mật. Nếu bạn muốn
# tạo tệp có quyền nhóm=rw, đặt tham số tiếp theo thành 0775.
; tạo mặt nạ = 0700

# Mặt nạ tạo thư mục được đặt thành 0700 vì lý do bảo mật. Nếu bạn muốn
# tạo thư mục. với quyền nhóm = rw, hãy đặt tham số tiếp theo thành 0775.
; mặt nạ thư mục = 0700

# Theo mặc định, bất kỳ ai cũng có thể kết nối chia sẻ tên người dùng \máy chủ\
# với quyền truy cập vào máy chủ samba.
# Bỏ bình luận tham số sau để đảm bảo rằng chỉ có "tên người dùng"
# có thể kết nối với \máy chủ\tên người dùng
# Điều này có thể cần điều chỉnh khi sử dụng các lược đồ xác thực bên ngoài
; người dùng hợp lệ = %S

# Bỏ bình luận sau và tạo thư mục netlogon cho Đăng nhập tên miền
# (bạn cũng cần định cấu hình Samba để hoạt động như một bộ điều khiển miền.)
;[netlogon]
; bình luận = Dịch vụ đăng nhập mạng
; đường dẫn = /home/samba/netlogon
; khách ok = vâng
; chỉ đọc = có

# Bỏ bình luận sau và tạo thư mục hồ sơ để lưu trữ
# hồ sơ người dùng (xem tùy chọn "đường dẫn đăng nhập" ở trên)
# (bạn cũng cần định cấu hình Samba để hoạt động như một bộ điều khiển miền.)
# Đường dẫn bên dưới phải được ghi bởi tất cả người dùng để họ
# thư mục hồ sơ có thể được tạo lần đầu tiên họ đăng nhập
;[hồ sơ]
; bình luận = Hồ sơ người dùng
; đường dẫn = /home/samba/profile
; khách ok = không
; có thể duyệt = không
; tạo mặt nạ = 0600
; mặt nạ thư mục = 0700

# [máy in]
# bình luận = Tất cả máy in
# có thể duyệt = không
# đường dẫn = /var/spool/samba
# có thể in được = có
# khách ok = không
# chỉ đọc = có
# tạo mặt nạ = 0700

# Máy khách Windows tìm kiếm tên chia sẻ này như một nguồn có thể tải xuống
# trình điều khiển máy in
#[in$]
# bình luận = Trình điều khiển máy in
# đường dẫn = /var/lib/samba/máy in
# có thể duyệt = có
# chỉ đọc = có
# khách ok = không
# Bỏ ghi chú để cho phép quản trị từ xa các trình điều khiển in Windows.
# Bạn có thể cần phải thay thế 'lpadmin' bằng tên nhóm của bạn
# quản trị viên là thành viên của.
# Xin lưu ý rằng bạn cũng cần đặt các quyền Unix phù hợp
# vào thư mục trình điều khiển để những người dùng này có quyền ghi trong đó
; viết danh sách = root, @lpadmin

 

    
[Chia sẻ]
    đường dẫn = /media/altocasa/NetDisk1/Được chia sẻ
    có thể ghi = có
    chế độ thư mục = 777
    chế độ tạo = 777
    công khai = có

Ngoài ra, nếu tôi cố gắng sử dụng chmod hoặc chown trên điểm gắn kết (/media/alto...), lệnh sẽ thực thi mà không có bất kỳ thay đổi hiệu quả nào.

ls của đĩa:

drwxrwxrwx 1 dữ liệu altocas 4096 ngày 15 tháng 8 năm 2018 TRÌNH ĐIỀU KHIỂN
-rwxrwxrwx 1 dữ liệu altocas 9401704 ngày 2 tháng 12 năm 2019 DTTarget2.1.0.0072.exe
drwxrwxrwx 1 dữ liệu altocas 8192 Ngày 14 tháng 4 năm 2021 PHIM
-rwxrwxrwx 1 dữ liệu altocasa 12218104 Ngày 22 tháng 3 năm 2021 'Fusion 360 Client Downloader.exe'
drwxrwxrwx 1 dữ liệu altocas 4096 ngày 4 tháng 10 16:03 ISO
-rwxrwxrwx 1 dữ liệu altocas 1091 Ngày 12 tháng 5 năm 2019 ObstacleAvoidV1.py
drwxrwxrwx 1 dữ liệu altocas 0 ngày 28 tháng 10 năm 2016 Chương trình
drwxrwxrwx 1 dữ liệu altocas 4096 ngày 12 tháng 2 năm 2017 'Thông tin khối lượng hệ thống'
drwxrwxrwx 1 dữ liệu altocas 4096 Ngày 8 tháng 4 năm 2021 Torrent
drwxrwxrwx 1 dữ liệu altocas 264 ngày 2 tháng 2 20:03 KHÔNG CÔNG KHAI
drwxrwxrwx 1 dữ liệu altocas 4096 Ngày 23 tháng 3 năm 2021 Vpn
drwxrwxrwx 1 dữ liệu altocas 4096 ngày 27 tháng 1 15:01 html
drwxrwxrwx 1 dữ liệu altocas 4096 ngày 27 tháng 1 15:02 openrsd

Tôi thực sự không còn lựa chọn nào khác. Có ai biết tại sao người dùng (dữ liệu www) bên trong nhóm dữ liệu không thể đọc ghi trên thư mục sở hữu dữ liệu không?

Cảm ơn bạn!

Điểm:1
lá cờ in

Đây rất có thể là sự cố liên quan đến AppArmor. Theo mặc định, Apache không thể ghi vào các địa điểm bên ngoài /var/www bất kể quyền gì dữ liệu www tài khoản có thể có. Điều này nhằm đảm bảo rằng một trang web không thể ghi tệp vào các vị trí tùy ý trên máy chủ của bạn.

Nhìn chung có hai lựa chọn ở đây:

  1. Gắn thiết bị vào một vị trí phía trong /var/www (dễ dàng)
  2. Sửa đổi chính sách AppArmor của bạn cho Apache, cho phép rw truy cập vào /media/altocasa/NetDisk1 (ít dễ dàng hơn)

Đối với nhiều máy chủ của tôi, tôi sử dụng tùy chọn đầu tiên và gắn thiết bị lưu trữ vào /var/www/tệp. Bên trong vị trí này sẽ là các thư mục cho từng trang web (NextCloud, RoundCube, v.v.).

FicusMacrophylla avatar
lá cờ tn
Cảm ơn bạn! Di chuyển đến var/www đã giải quyết nó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.