Làm cách nào để thiết lập thư mục sao cho mọi thứ được tạo trong đó đều được thừa hưởng quyền?


18

Tôi có một thư mục / dữ liệu (thực sự là một phân vùng) cho tất cả dữ liệu mà tất cả người dùng có thể truy cập được (trong trường hợp này là thành viên gia đình). Tất cả chúng ta đều có tài khoản người dùng cá nhân và thường được đăng nhập bất cứ lúc nào trên một PC này.

Làm cách nào tôi có thể thiết lập quyền để tất cả chúng ta giữ quyền truy cập vào các tệp ở đó bất kể ai tạo ra chúng, bao gồm các thư mục mới? Nếu tôi tạo một thư mục, nó sẽ nhận được người dùng và nhóm của tôi, vì vậy không ai khác có thể viết thư cho nó.


cho các du khách. Nếu bạn chỉ muốn tên nhóm được kế thừa chmod -R g+s /parentdir. Lưu ý: chạy chmod -R trước phần này nếu cần
Thamme Gowda

1
Lưu ý ở trên: -Rcờ chmodrất hiếm khi hữu ích vì chúng tôi hiếm khi muốn các thư mục (luôn cần một số quyền thực thi) và các tệp thông thường (hiếm khi cần bất kỳ quyền thực thi nào) để có cùng quyền
Zanna

Câu trả lời:


17

Một cách tiếp cận khác là sử dụng Danh sách điều khiển truy cập, một siêu quyền của tệp.

Trước hết, chúng ta phải cài đặt gói acl Cài đặt acl :

sudo apt-get install acl

Trước Ubuntu 14.04 , phân vùng phải được gắn với tùy chọn aclđể các mục sau hoạt động. Nó có thể được thêm vào /etc/fstab, như trong

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

hoặc cho một hệ thống tập tin đã được gắn

sudo mount -o remount,acl /media/shared

Tiếp theo, bạn nên tạo một nhóm mới, tất cả người dùng được phép truy cập vào chia sẻ trong chế độ đọc / ghi sẽ được thêm vào. Tôi gọi nó usershare. Một nhóm đã tồn tại có thể được sử dụng.

sudo addgroup usershare

Bây giờ chúng tôi thêm người dùng enzotibsteevcvào nhóm đó:

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(có hiệu lực ở lần đăng nhập tiếp theo).

Sau đó, chúng tôi thêm ACL với rwxquyền cho nhóm usersharevào tất cả các tệp đã có trong/media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

Cuối cùng, chúng tôi thêm một ACL mặc định có rwxquyền cho nhóm usersharecho tất cả các tệp được tạo từ bây giờ bên trong/media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

Bây giờ tất cả người dùng của usersharenhóm có quyền đầy đủ trên tất cả các tệp bên dưới /media/shared. Quyền của mỗi người dùng trên các thư mục nhà của anh ấy và của người khác không bị ảnh hưởng.

Tôi đã thử nghiệm giải pháp này và có vẻ hiệu quả, nhưng đề xuất và chỉnh sửa đều được chào đón.

Lưu ý : các tệp và thư mục mới được tạo trong thư mục được xem xét sẽ có quyền ghi cho usersharenhóm, nhưng các tệp được sao chép hoặc di chuyển trong thư mục sẽ giữ quyền ban đầu của chúng. Nếu người dùng, theo tôi hiểu, chỉ yêu cầu quyền truy cập ghi vào các thư mục mới được tạo, đây không phải là vấn đề. Nếu không, nó nên sửa đổi quyền bằng tay. Xem câu trả lời này về cách khắc phục điều này bằng cách xác định ô của người dùng 002.


Tôi không biết rõ về acl, bạn có thể kiểm tra và sao chép một tệp có quyền như rw-r - r-- từ thư mục nhà của bạn sang thư mục dùng chung và xem các quyền có thay đổi thành rwx mặc định của bạn cho usersharenhóm không?
sắp xếp

@arrange: không, nó không hoạt động như dự định. Đi để chỉ ra trong câu trả lời. Cảm ơn bạn
enzotib

Tôi sẽ thêm rằng /etc/fstab/ remountbước là không bắt buộc, bởi vì ext4nên được gắn với acltùy chọn hoạt động theo mặc định.
enzotib

8
  1. Tạo thư mục.

    Ví dụ:

    mkdir /mnt/family
    

    Nếu bạn cần phân vùng gắn kết với chúng ... nếu ext4, tất cả những gì bạn cần /etc/fstab

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. Tạo nhóm myfam.

    addgroup myfam
    
  3. Thêm một số người dùng vào nhóm đó

    adduser papa myfam  
    adduser mom myfam
    
  4. Bây giờ lấy và cho phép.

    Tôi nghĩ bạn nên bắt đầu, từ thay đổi umask.

    Quyền truy cập hệ thống tập tin mặc định và quyền truy cập trong 12.04

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    Bây giờ quan trọng nhất. Dòng đó tạo setgidbất cứ thứ gì bạn tạo trong thư mục đó có người dùng của bạn là chủ sở hữu và nhóm myfam. Điều đó cho phép hệ thống ghi đè nhóm chính người dùng.

    chmod -R g+s /mnt/family   
    

3

Điều đơn giản nhất mà bạn nghĩ đến là thêm từng người dùng vào nhóm của tất cả người dùng khác.

Sau đó thay đổi ô của mỗi người dùng từ 022 đến 002, điều này có thể được thực hiện /etc/profile.

Biên tập

Bước đầu tiên có thể được thay thế bằng cách sau: làm cho tất cả người dùng thuộc usersnhóm là nhóm chính.

Edi2

Như @James_Henstridge đã đề xuất, có thể thuận tiện để đặt bit setgid trên thư mục chính, do đó các tệp và thư mục mới được tạo sẽ có cùng một nhóm, tùy theo người dùng. Bằng cách này, bạn có thể tránh tập hợp userslàm nhóm chính cho người dùng.


Bạn có thể muốn chỉnh sửa câu trả lời của mình để đề xuất cài đặt bit setgid trên tất cả các thư mục /datađể các tệp mới kế thừa quyền sở hữu nhóm.
James Henstridge

edit3 :) Nếu bạn sao chép một tập tin vào /datathư mục, các quyền không được kế thừa, vì vậy các tập tin cũ với quyền gw sẽ không thể sửa đổi bởi người khác. edit4: thiết lập userslàm nhóm chính của bạn và umask0002 chắc chắn không phải là ý tưởng hay vì bất kỳ ai trong nhóm đó cũng có thể sửa đổi bất kỳ tệp nào bạn vừa tạo.
sắp xếp

@arrange: liên quan đến edit4 của bạn, tôi đề nghị chỉ đưa vào usersnhóm những người dùng được phép có quyền truy cập rw vào chia sẻ. Đó là một vấn đề thuận tiện, nó cũng có thể tạo ra một nhóm khác cho điều đó. Về edit3 của bạn, nó không đúng, sao chép tập tin có được nhóm thư mục.
enzotib

@enzotib: để nhắc lại quan điểm của tôi bằng các từ khác: edit4 - nếu userslà nhóm chính của tôi và có nhiều người dùng hơn trong nhóm này thì họ có thể sửa đổi các tệp của tôi ngay cả ngoài thư mục dùng chung; chỉnh sửa 3 - Tôi đã viết quyền , nhóm thư mục KHÔNG.
sắp xếp

@arrange: quan điểm của bạn là chính xác, tôi chỉ viết một câu trả lời khác, có thể thú vị khi nghe ý kiến ​​của bạn.
enzotib

2

Điều này nghe có vẻ như một công việc cho ACL. Gilescâu trả lời rất kỹ lưỡng trên trang web SE Unix và Linux đã giúp tôi giải quyết vấn đề tương tự.


1
Điều đó đã làm việc! Tôi đã thấy các câu trả lời khác bằng ACL, nhưng đây là câu trả lời duy nhất tôi thấy thay đổi quyền của không chỉ các tệp và thư mục mới được tạo trong thư mục dùng chung, mà cả các tệp được sao chép hoặc di chuyển vào đó.
ダ ン ボ

0

Tôi không hiểu, tất cả linux-linux, linux-windows, linux - ???, sử dụng Samba?, SSH?, Pigeons?; dù sao bạn cũng cần đưa những người khác vào Nhóm với tên người dùng của mình (Nhóm của bạn) và họ sẽ có được quyền như bạn.


Đây là nhiều người dùng trên một PC. Tôi chắc chắn phải có một cách để có được quyền mặc định thành thứ gì đó hữu ích.
steevc

0

Tôi đã gặp câu hỏi này trong khi tìm kiếm câu trả lời cho vấn đề PERMISSION NHÓM của tôi. Tôi đã đọc câu hỏi và có vẻ như tôi đã thực hiện những gì câu hỏi cố gắng thực hiện.

Vì vậy, tôi bận tâm để trả lời nó.

Tôi đã thiết lập chia sẻ cho tất cả người dùng trên mạng của mình chỉ bằng cách đọc và thực thi và chỉ tài khoản của tôi mới có quyền ghi vào các thư mục được chia sẻ.

Tôi có một máy chủ đa năng trên lan của mình sử dụng phiên bản máy tính để bàn Ubuntu 12.04 LTS. Tôi có một máy khách kết hợp của linux và windows.

Đây là cách tôi đã thiết lập nó:

1. Trên máy chủ của tôi, tôi có tài khoản người dùng được đặt tên adminclientone

Các admintài khoản là tài khoản được tạo ra khi tôi cài đặt ubuntu và clientonetài khoản là tài khoản được tạo ra bằng cách sử dụng tài khoản người dùng menu trong ubuntu. Nó chỉ có sự cho phép tiêu chuẩn, không có quyền quản trị viên và nó được thêm vào usersnhóm. Tất nhiên bạn có thể làm những điều này chỉ bằng cách sử dụng thiết bị đầu cuối. Thêm nhiều tài khoản người dùng bổ sung cho các máy khách của bạn.

2. Phân vùng / thư mục dùng chung được tự động hóa trong fstab chỉ sử dụng tùy chọn mặc định.

3. Mạng của tôi là trong một môi trường nhóm làm việc, và đó là trên mylannhóm làm việc.

Tất cả các máy trong lan của tôi được đặt để sử dụng mylannhóm làm việc.

4. Thư mục chia sẻ của tôi có tên sharedđã có tập tin trong đó. Vì vậy, tôi thay đổi chủ sở hữu và nhóm cho nó đệ quy bằng cách sử dụng lệnh dưới đây.

 sudo chown -Rv admin:users /shared

5. Tôi cũng thiết lập quyền thư mục và tệp cho /sharedthư mục theo cách đệ quy bằng lệnh

 sudo chmod -Rv 750 /shared

máy khách trong mylannhóm làm việc của tôi không có quyền truy cập vào chia sẻ bằng chmod 750

bạn có thể sử dụng

 sudo chmod -Rv 755 /shared

Tất cả các tài khoản người dùng trong tương lai trong usersnhóm chỉ có quyền đọc thực thi.

6.Trong máy khách của tôi một (windows xp) Tôi thiết lập một tài khoản người dùng có tên clientone. Tên người dùng và mật khẩu giống như tên được tạo trong máy chủ Ubuntu của tôi. Tài khoản thứ hai có tên clienttwocũng được tạo trong máy chủ Ubuntu và đó là cùng một tài khoản người dùng được sử dụng trong máy thứ hai của tôi (linuxmint 15).

7. Trong máy khách của tôi một khi đăng nhập bằng clientonetài khoản, tôi vào lệnh chạy rồi nhập

 //192.168.10.254/shared

192.168.10.254là địa chỉ IP của máy chủ /sharedubfox của tôi, là thư mục được chia sẻ trong máy chủ ub Ubuntu của tôi Trong máy khách của tôi hai (linuxmint 15), tôi đi tới Menu> Mạng và trong thanh hộp thoại Location: tôi đã nhập:

 smb://192.168.10.254/shared

Nếu bạn được nhắc nhập mật khẩu, hãy nhập mật khẩu của người dùng của bạn. Và cả mật khẩu khóa của bạn nếu KEYRING được bật trong các máy linux của bạn.

Điều này làm việc cho tôi trong thiết lập mạng riêng của tôi. Máy chủ của tôi là một máy chủ đa mục đích phục vụ như máy chủ mực, máy chủ xbmc và mediatomb và máy chủ amahi.

Tôi vẫn đang tìm cách cải thiện phần chia sẻ tệp trong thiết lập của mình. Các hướng dẫn ở trên không phải là một giải pháp chống đạn, mua bạn có thể thử nó. Tôi kiểm tra và thử điều ACL kèm theo với các thư mục chia sẻ tự động gắn. Vì yêu cầu chia sẻ thư mục của bạn trở nên phức tạp, hướng dẫn trên sẽ không đảm bảo cho bạn thành công.

Thông tin đã thêm:

Tôi đã cài đặt Amahi Server trong máy chủ của mình, tôi cũng đã sử dụng nó để tạo tài khoản người dùng mà tôi muốn có quyền truy cập vào các thư mục được chia sẻ. Tôi cũng đã sử dụng nó để tạo chia sẻ thư mục mới.

Khi bạn muốn cấp phép người dùng phức tạp hơn cho những người dùng khác nhau, ACL là thứ bạn nên dùng.


0

Tôi có các tệp video trên tên của mình, nhưng khi tôi đăng nhập bằng tên con gái, tài khoản của cô ấy không thể xem các tệp video. Vì vậy, những gì tôi đã làm là vào tài khoản người dùng, mở khóa (trên cùng bên phải), sau đó thay đổi loại tài khoản của cô ấy từ "tiêu chuẩn" thành "quản trị viên (đó là tài khoản của tôi), và bây giờ tất cả các tệp video, thực sự là tất cả, hiển thị khi đăng nhập dưới tài khoản của mình.

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.