Cách cung cấp chia sẻ NFS cho cộng tác nhóm

Tác giả sysadmin, T.M.Hai 30, 2022, 09:03:04 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách cung cấp chia sẻ NFS cho cộng tác nhóm


Trước đây, chúng tôi đã đề cập đến cách cung cấp chia sẻ NFS cho các khách hàng cụ thể, ở đây chúng tôi sẽ mở rộng vấn đề này và đề cập đến cách chia sẻ NFS có thể được chia sẻ với các thành viên trong nhóm vì mục đích cộng tác.

Điều này sẽ được thực hiện chủ yếu với việc sử dụng ID nhóm đã đặt (Đặt GID), vì việc sử dụng này sẽ dẫn đến tất cả các tệp và thư mục được tạo trong phần chia sẻ nhóm được tự động đặt với cùng một chủ sở hữu nhóm như chính phần chia sẻ đó.

1. Môi trường ví dụ

Đây là danh sách các máy chủ của chúng tôi mà chúng tôi sẽ thử nghiệm, cả hai đều đang chạy CentOS 7.

  • Máy khách NFS: 192.168.0.100 – Máy khách Linux này sẽ gắn một thư mục từ máy chủ NFS.
  • Máy chủ NFS: 192.168.0.200 – Máy chủ Linux này sẽ phục vụ một thư mục trên NFS.

2. Cấu hình máy chủ NFS

Hãy bắt đầu bằng cách định cấu hình chia sẻ NFS trên máy chủ NFS.

Mã nguồn [Chọn]
yum install nfs-utils -y
Gói nfs-utils cũng nên được cài đặt trên máy khách, vì nó cần thiết để gắn kết chia sẻ NFS.

Sau khi cài đặt, chúng tôi có thể cho phép máy chủ NFS của mình tự động khởi động dịch vụ NFS cần thiết khi khởi động, chúng tôi cũng sẽ khởi động dịch vụ ngay bây giờ vì nó không chạy theo mặc định sau khi cài đặt.

Mã nguồn [Chọn]
systemctl enable nfs
systemctl start nfs

Để biết thêm thông tin về quản lý dịch vụ cơ bản với systemctl, hãy xem hướng dẫn của chúng tôi tại đây.

Tiếp theo, tường lửa phải được cấu hình để cho phép lưu lượng NFS đi qua một cách chính xác, điều này có thể được thực hiện như minh họa với tường lửa. Thay đổi này sẽ cho phép lưu lượng truy cập NFS cổng TCP 2049 vào máy chủ từ bất kỳ nguồn nào. Cấu hình tường lửa cũng phải được tải lại vì chúng tôi đã đặt một quy tắc vĩnh viễn sẽ không áp dụng cho cấu hình đang chạy.

Mã nguồn [Chọn]
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload

Chúng tôi cũng sẽ tạo thư mục trên máy chủ NFS mà chúng tôi sẽ chia sẻ qua NFS, trong ví dụ này nó sẽ là /root/nfs tuy nhiên thư mục này có thể ở nơi khác.

Mã nguồn [Chọn]
mkdir /root/nfs
Các điểm gắn máy chủ NFS được cấu hình bằng tệp /etc/exports, tệp này liệt kê các thư mục có sẵn để truy cập qua NFS. Ngoài ra, các tệp cấu hình cũng có thể được tạo trong thư mục /etc/exports.d/ miễn là chúng có phần mở rộng.exports.

Dưới đây là một ví dụ về cấu hình NFS trong tệp /etc/exports.

Mã nguồn [Chọn]
[root@server ~]# cat /etc/exports
/root/nfs 192.168.0.100(rw,async)

Sau bất kỳ thay đổi nào đối với tệp /etc/exports, chúng ta cần sử dụng lệnh exportfs để cập nhật bảng hệ thống tệp NFS đã xuất.

Mã nguồn [Chọn]
exportfs -arv
Cờ -a sẽ xuất tất cả các thư mục, cờ -r sẽ xuất lại tất cả các thư mục và xóa mọi mục nhập cũ, trong khi cờ -v cung cấp mức độ chi tiết và sẽ xuất tất cả các lần xuất NFS.

3. Định cấu hình chia sẻ NFS với SetGID

Bây giờ chúng ta đã cấu hình máy chủ NFS với điểm gắn kết NFS cơ bản là /root/nfs, chúng ta cần cấu hình SetGID trên thư mục này như hình bên dưới.

Mã nguồn [Chọn]
chmod 2770 /root/nfs
Điều này cũng đã đặt quyền 770 trên thư mục, vì vậy người dùng root và nhóm được xác định sẽ có đầy đủ quyền. 2 hàng đầu cho phép setgid.

Tiếp theo, chúng tôi tạo một nhóm có tên là 'thử nghiệm' và thay đổi thư mục /root/nfs để chủ sở hữu nhóm là nhóm 'thử nghiệm' này. Chúng tôi cũng chỉ định thủ công GID sẽ được sử dụng cho nhóm là 9999, đây phải là một số miễn phí trên cả máy khách và máy chủ của bạn – Tôi đã chạy groupadd trên cả máy khách và máy chủ, đồng thời tạo một người dùng thử nghiệm trong này tập đoàn.

Mã nguồn [Chọn]
groupadd -g 9999 testing
chgrp testing /root/nfs

Chúng tôi có thể xác nhận rằng setgid đã có sẵn, như được hiển thị bên dưới trong đó bit thực thi cho quyền của nhóm hiển thị là chữ thường s. Điều này sẽ thay đổi thành chữ hoa chữ S nếu nhóm không có quyền thực thi và chỉ có setgid.

Mã nguồn [Chọn]
[root@server ~]# ls -la
2 root testing 29 Aug 30 00:25 nfs

Giờ đây, bất kỳ tệp hoặc thư mục nào được tạo trong /root/nfs sẽ tự động được cấp chủ sở hữu nhóm 'thử nghiệm', về cơ bản cho phép cộng tác nhóm vì bất kỳ người dùng nào trong nhóm 'thử nghiệm' giờ đây sẽ có thể truy cập các tệp do người dùng khác tạo trong nhóm cùng một nhóm trong thư mục /root/nfs.

4. Kiểm tra các nhóm chia sẻ NFS

Bây giờ điểm gắn kết NFS đã sẵn sàng, từ máy khách, chúng tôi gắn kết phần chia sẻ NFS với tư cách là người dùng root.

Mã nguồn [Chọn]
[root@client ~]# mount -t nfs 192.168.1.200:/root/nfs /mnt
Bây giờ nếu bất kỳ người dùng nào truy cập vào thư mục /mnt và tạo một tệp hoặc thư mục, nó sẽ thuộc sở hữu của nhóm 'thử nghiệm'.

Mã nguồn [Chọn]
[root@client mnt]# touch setgid-test
Mã nguồn [Chọn]
[root@server nfs]# ls -la
1 root testing 0 Jan 16 23:09 setgid-test

Theo mặc định, tùy chọn 'sec' cho một NFS mount là 'sys', nghĩa là các số UID/GID được ánh xạ từ máy khách đến máy chủ NFS. Do đó, nhóm 'thử nghiệm' phải được tạo với cùng một ID nhóm trên cả máy khách và máy chủ để nhóm được chuyển chính xác. Ngoài ra, nếu bạn đang sử dụng một thư mục bên ngoài chẳng hạn như IPA, thì việc đặt phương thức sec thành krb5 chẳng hạn sẽ sử dụng các giá trị UID/GID do Kerberos cung cấp thay vì cục bộ.

Bằng cách sử dụng SetGID trên thư mục của chúng tôi đã được xuất bằng NFS, chúng tôi đã có thể cung cấp chia sẻ NFS mà nhiều người dùng trong cùng một nhóm có thể truy cập. Chia sẻ là hoàn hảo cho cộng tác nhóm vì bất kỳ tệp hoặc thư mục nào được tạo bởi người dùng trong nhóm được xác định trên chia sẻ NFS sẽ tự động được sở hữu bởi cùng một nhóm, cho phép những người dùng khác trong nhóm đó cũng truy cập những nội dung này.

Các bước quan trọng đã được thực hiện ở đây là thay đổi quyền sở hữu nhóm của thư mục đóng vai trò chia sẻ của chúng tôi thành nhóm mà chúng tôi muốn chia sẻ nội dung và đặt setgid trên cùng thư mục đó.