Chmod dosyaları, kullanıcıya tekrar tekrar aynı izinleri vermek için dosyalar


16

Gruba, bir dizin ağacı için kullanıcının dosya bazında özyinelemeleri ile aynı izinleri vermek için bir unix komutu var mı? Bir dosya kullanıcı tarafından yazılabilir ise, grup tarafından yazılabilir olmalı, aksi takdirde grup tarafından yazılabilir olmamalıdır.

chmod 

Yanıtlar:


25

Kudosan bize g = u gösterdiği için jamessan. Sistemimde, bu işe yarıyor gibi görünüyor:

chmod -R g=u dir

1
Bu aynı zamanda dizinlerin izinlerini de değiştirir. Orijinal soru belirtilen dosyalar.
jamessan

@jamessan, hangi dizinler.
Mike Graham

@Mike, * nix'in hemen hemen her şeyi bir dosya olarak ele almanıza izin verdiği için, dizinlerin aslında dosya olduğu anlamına gelmez. Biri aynı olduklarını kabul etseler bile, bir dizin ağacındaki tüm dosyaların izinlerini değiştirme ile bir dizin ağacındaki tüm dosya ve dizinlerin izinlerini değiştirme arasında belirgin bir işlevsel fark vardır.
jamessan

Bir kez daha sorunuma basit bir çözüm var. Ben niye şaşırmadım?
rzetterberg


0

Mevcut komutlarla bunu yapmanın kolay bir yolunu düşünemiyorum. Belki böyle bir senaryo yardımcı olabilir:

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

Ayrıca, kullanıcılar için bazı izinlerin gruplara uygulanamayabileceğini ve bunun tersini de unutmayın.


0

Böyle bir komutun var olup olmadığını bilmiyorum, ancak bulmayı kullanmak ve birkaç kez çağırmak
, yapmaya çalıştığınız şeyi başarabilirsiniz , örneğin

Örneğin:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

Yukarıdaki komut, geçerli "." Dizinini geçer , kullanıcı için yazma iznine sahip
olan ancak grup için yazma iznine sahip olmayan tüm dosyaları bulur ve grup tarafından yazılabilir olma iznini değiştirir.

Benzer şekilde , grubun okuma ve yürütme modu için dosya izinlerini değiştirmek üzere çağrının üzerindeki varyantı kullanırsınız .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.