Phân vùng NFS được gắn dưới dạng chỉ đọc


7

(Tuyên bố miễn trừ trách nhiệm: Tôi đã đọc " Chia sẻ NFS chỉ đọc " và tôi nghĩ đó không phải là vấn đề tương tự)

Tôi vừa thiết lập NFS trên mâm xôi (Raspbian) và tôi đang cố gắng truy cập nó từ OSX. Cho đến nay rất tốt, tôi có thể gắn kết phân vùng nhưng tiếc là nó chỉ đọc . Một số thông tin thêm:

Khách hàng (OSX)

➜  ~ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
192.168.1.102:/export/data on /media (nfs)

➜  ~  ls -ld /media    
drwxr-xr-x  3 root  wheel  4096 Mar  8 15:57 /media

Máy chủ (Raspbian)

pi@raspberrypi ~ $ cat /etc/exports 

/export       192.168.0.0/16(rw,fsid=0,insecure,no_subtree_check,async)
/export/data  192.168.0.0/16(rw,nohide,insecure,no_subtree_check,async)

pi@raspberrypi ~ $ cat /etc/idmapd.conf 
[General]

Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
# Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

Như tôi đã nói, vấn đề xảy ra khi cố gắng tạo một tệp trong thư mục được gắn kết:

➜  /media  touch foo
touch: foo: Permission denied
➜  /media  sudo touch foo
Password:
touch: foo: Permission denied

Lưu ý rằng tôi có thể tạo một tệp từ máy chủ , vấn đề phải nằm ở ngàm nfs.

(BTW Tôi đã làm theo hướng dẫn này để thiết lập toàn bộ)

Thông tin bổ sung (chỉnh sửa):

Đây là cách tôi gắn phân vùng trên osx:

sudo mount -t nfs -o rw 192.168.1.102:/export/data /media


Làm thế nào bạn đang gắn kết? Bạn có thể chỉ cho chúng tôi dòng liên quan /etc/fstab(hoặc tương đương OSX) không?
terdon

Thông thường nên gắn kết chia sẻ NFS cục bộ trên chính hệ thống trong một thư mục khác trước đó, để xác nhận nó hoạt động.
slm

@terdon Đã chỉnh sửa để hiển thị cách tôi đang cài đặt, chưa có / etc / fstab (osx không sử dụng một mặc định và tôi muốn đảm bảo rằng việc gắn kết là đúng trước khi thêm một)
Pablo Fernandez

@slm làm thế nào được? gắn nó như là một nfsphân vùng quá? Chỉ cần cố gắng gắn kết cục bộ bằng cách sử dụng mountlệnh tương tự như đối với osx (xem chỉnh sửa) và nó vẫn chỉ đọc, thậm chí cục bộ.
Pablo Fernandez

mount -o nfs sever:/export /mnt.
slm

Câu trả lời:


3

Điều này trông giống như một vấn đề quyền đối với tôi hơn là một hệ thống tập tin chỉ đọc.

Từ số pi, bạn có thể tạo thư mục / export / data tạm thời có thể ghi được không? Nếu vậy, bây giờ bạn có thể viết từ khách hàng? Khi bạn tạo một tập tin theo cách này, ai là chủ sở hữu?

Không có no_root_squash, người dùng root của bạn được ánh xạ tới không ai. Nếu không, bạn sẽ cần ánh xạ người dùng từ máy khách sang người dùng trên pi.


Tôi gặp phải vấn đề này và có thể khắc phục bằng cách sử dụng all_squashtùy chọn, mở tất cả các quyền trên thư mục chia sẻ và đặt chủ sở hữu của chia sẻ thành không có ai.
TD Smith

0

Tôi đã thấy vấn đề này với CentOS 6.5. Tôi không biết nếu Raspbian sử dụng NetworkManager nhưng nếu có, đó có thể là vấn đề của bạn. Có vẻ như phiên bản mới nhất của Trình quản lý mạng đã cản trở rpcbind và sẽ không để nfs xác thực trong một số trường hợp. Bạn có thể tìm thấy điều này một cách nhanh chóng bằng cách thực hiện một dpkg --get-selections | grep -i NetworkManagerRaspbian của bạn. Trên CentOS, bạn có thể xóa nó mà không ảnh hưởng đến thiết lập mạng của bạn. Hy vọng điều này có thể giúp đỡ.


Tôi thậm chí không thể tạo ra một nfs đọc-ghi trên cùng một raspbian, làm thế nào quản lý mạng có liên quan ở đây?
Pablo Fernandez

nfs sử dụng dịch vụ RPC để xác thực người dùng. Nếu rpcbind không thể liên kết dịch vụ với cổng thì nfs không thể xác thực người dùng. Nếu người dùng không được xác thực, nfs mặc định chỉ đọc.
dùng62700

0

Đây là một cái gì đó để làm với NFSv4. Nếu bạn sử dụng -o vers=3, nó trở nên hạnh phúc. Tôi chắc chắn có một tùy chọn NFSv4 để cho phép root phá hoại cổ phần NFS của bạn, nhưng tôi đã ngừng tìm kiếm sau khi tôi làm cho nó hoạt động.

# mount -o soft,rw server:/exports/share /mnt/test
# touch /mnt/test/foo
touch: cannot touch '/mnt/test/foo': Permission denied
# umount /mnt/test
# mount -o soft,rw,vers=3 server:/exports/share /mnt/test
# touch /mnt/test/foo
# ls /mnt/test/foo
/mnt/test/foo
# rm /mnt/test/foo
# umount /mnt/test

0

Tôi thấy rằng giả của bạn là /export:

/ xuất 192.168.0.0/16(rw,fsid=0,insecure,no_subtree_check,async)

và chia sẻ phụ của bạn /mediadưới /export:

/ xuất / dữ liệu 192.168.0.0/16(rw,nohide,insecure,no_subtree_check,async)

Thay vì gắn cho đường dẫn tuyệt đối:

sudo mount -t nfs -o rw 192.168.1.102:/export/data / media

Bạn đã thử gắn kết đưa ra đường dẫn liên quan đến giả hành:

sudo mount -t nfs -o rw 192.168.1.102:/data /media

?

Đó là cách nó hoạt động với cài đặt của tôi (máy chủ CentOS 7 NFSv4, máy khách Fedora).

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.