File Chmod untuk secara rekursif memberikan grup izin yang sama dengan pengguna

12

Apakah ada perintah unix untuk memberikan grup izin yang sama seperti yang dimiliki pengguna saat ini berdasarkan file per file secara rekursif untuk pohon direktori? Yaitu jika sebuah file dapat ditulisi oleh pengguna, file tersebut harus dapat ditulisi grup, jika tidak file tersebut tidak dapat ditulisi grup dan seterusnya.


sumber

Jawaban:

21

Kudos to jamessan karena menunjukkan kepada kita g = u. Di sistem saya, ini sepertinya berfungsi:

chmod -R g=u dir
Joey Adams
sumber
1
Itu juga mengubah izin direktori. Pertanyaan asli menentukan file.
jamessan
@ jamessan, direktori mana.
Mike Graham
@ Mike, hanya karena * nix memungkinkan Anda memperlakukan hampir semua hal sebagai file, tidak berarti direktori sebenarnya adalah file. Bahkan jika orang mengakui bahwa mereka sama, ada perbedaan fungsional yang berbeda antara mengubah izin semua file di pohon direktori dan mengubah izin semua file & direktori di pohon direktori.
jamessan
Sekali lagi ada solusi langsung untuk masalah saya. Kenapa aku tidak terkejut?
rzetterberg
9
find dir -type f -exec chmod g=u '{}' \+
jamessan
sumber
0

Saya tidak bisa memikirkan cara mudah untuk melakukan itu dengan perintah yang ada. Mungkin skrip seperti ini akan membantu:

#!/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

Perlu diingat juga bahwa beberapa izin untuk pengguna mungkin tidak berlaku untuk grup, dan sebaliknya.

ℝaphink
sumber
0

Saya tidak tahu apakah perintah seperti itu ada tetapi menggunakan find dan menjalankannya beberapa kali Anda dapat mencapai
apa yang Anda coba lakukan, misalnya

Sebagai contoh:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

Perintah di atas melintasi direktori saat ini "", menemukan semua file yang memiliki write izin untuk
pengguna tetapi tidak ada write izin untuk kelompok dan perubahan ada izin untuk dapat ditulis kelompok.

Demikian pula Anda menggunakan varian doa di atas untuk mengubah izin file untuk mode baca dan eksekusi untuk grup.

sateesh
sumber