Các tệp Chmod để đệ quy cấp cho nhóm quyền như người dùng


15

Có một lệnh unix để cung cấp cho nhóm các quyền giống như người dùng hiện có trên cơ sở từng tệp theo cách đệ quy cho cây thư mục không? Tức là nếu một tập tin là người dùng có thể ghi thì nó sẽ trở thành nhóm có thể ghi được, nếu không thì nó không thể được ghi vào nhóm và cứ thế.

chmod 

Câu trả lời:


24

Kudos đến jamessan đã cho chúng ta thấy g = u. Trên hệ thống của tôi, điều này dường như hoạt động:

chmod -R g=u dir

1
Điều đó cũng thay đổi quyền của các thư mục. Các câu hỏi ban đầu chỉ định các tập tin.
jamessan

@jamessan, thư mục nào.
Mike Graham

@Mike, chỉ vì * nix cho phép bạn coi hầu hết mọi thứ là một tệp, không có nghĩa là các thư mục thực sự là các tệp. Ngay cả khi người ta thừa nhận rằng chúng giống nhau, có một sự khác biệt về chức năng giữa việc thay đổi quyền của tất cả các tệp trong cây thư mục và thay đổi quyền của tất cả các tệp & thư mục trong cây thư mục.
jamessan

Một lần nữa có giải pháp đơn giản cho vấn đề của tôi. Tại sao tôi không ngạc nhiên?
rzetterberg


0

Tôi không thể nghĩ ra một cách dễ dàng để làm điều đó với các lệnh hiện có. Có lẽ một kịch bản như thế này sẽ giúp:

#!/bin/bash

DIR="$1"

find "$DIR" -ls | while read a b perm c d e f g h i file; do
   uperm=${perm:1:3}
   uperm=$(echo "$uperm" | tr -d '-')
   chmod g=$uperm "$file"
done

Ngoài ra, hãy nhớ rằng một số perm cho người dùng có thể không áp dụng cho các nhóm và ngược lại.


0

Tôi không biết nếu một lệnh như vậy tồn tại, nhưng sử dụng tìm và gọi nó một vài lần bạn có thể đạt được
những gì bạn đang cố gắng làm, ví dụ

Ví dụ:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

Lệnh trên đi qua thư mục hiện tại ".", Tìm tất cả các tệp có quyền ghi cho
người dùng nhưng không quyền ghi cho nhóm và thay đổi có quyền ghi thành nhóm.

Tương tự, bạn sử dụng biến thể trên lời gọi để thay đổi quyền truy cập tệp cho chế độ đọcthực thi cho nhóm.

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.