sudo chown işlemine izin verilmez


8

Burada benzer soruları buldum, ancak bu sorulara verilen cevaplar sorunumu çözmedi.

Eğer yaparsam:

sudo chown <username> main.m

Bir işleme izin verilmemesi hatası alıyorum.

Önceki hataların genel çözümü şuydu:

sudo chflags nouchg main.m

Bir kilit bayrağını silmek için Ancak, bunu yaptıktan sonra dosyayı hala boğamıyorum. Ben de denedim:

chflags noschg main.m

şanssız tek kullanıcı modunda - hataya izin verilmeyen bir işlem alıyorum.

Herhangi birinin bir düşüncesi varsa, ilgilenirim.


Yapmaya çalıştığınız temel şey nedir? Belki de bu dosyanın kilitlenmesinin bir nedeni vardır.
Tom Wijsman

Böylece, kodu hata ayıklamak için fazladan çalışma gerektiren güvenli bir yardımcı araca koymadan test verileri olarak kullanabilirim - bu imkansız değil, ancak dosyanın özniteliklerini değiştirebiliyorsam, bu nedenle güvenli bir yardımcı araç gerekmeyecek kadar can sıkıcıdır Bu işleri biraz daha kolaylaştıracaktı. Bunun sadece oluşturulan test verileri olduğu göz önüne alındığında, kilitlenmesi için artık iyi bir neden yoktur.
ericg

1
Dosya ne tür bir dosya sistemine sahip? Kullanmaya çalışmıyorsun chown NTFS / FAT dosya sisteminde misiniz?
Zoredache

@ ericgorr: Bunların çoğu kafamın üstünde. Güvenli bir yardımcı aracın tam olarak ne olduğunu bilmiyorum. Ancak dediğiniz gibi, sadece oluşturulan test verileridir; Test dosyasını kodunuzda doğru şekilde kapattınız mı?
Tom Wijsman

Bir yardımcı araç, OS X'in ayrıcalıklarını korurken bir uygulamaya yükseltilmiş ayrıcalıklar vermesinin bir yoludur - bir uygulama güvenli bir dosyayı değiştirmek isterse, örneğin (yetkili) yardımcı aracına dosyayı değiştirmesini söyler. Ericgorr'un başvurusunu yükseltmekten kaçınmak veya bununla birlikte gelen ciddi hata ayıklamayı önlemek için bir şeyler yapmak istediğini tahmin ediyorum.
Vervious

Yanıtlar:


8

Mac dosyaları içinde korunabilir dört üç Farkında olduğum farklı yollar:

  1. Standart Unix mülkiyeti ve kullanıcı / grup / ile birlikte gördüğünüz diğerleri için r / w / x gibi izinler ls -l ve ile düzeltmek chown(1) ve chmod(1).
  2. Dosya bayrakları gibi uchg ve schg ile gördüğün ls -lO ve ile düzeltmek chflags(1).
  3. Eski Finder meta verileri, gördüğünüz "Kilitleme biti" GetFileInfo filename. Ayrıca, Finder meta verilerinin varlığını görebilirsiniz, ancak anlamı yoktur. ls -l@. İle düzeltebilirsin SetFile(1). Boşver, bu harita ile eşleştirilir uchg Şimdi işaretleyin.
  4. Birlikte gördüğünüz Erişim Kontrol Listeleri (ACL'ler) ls -le ve ACL ile ilgili argümanlarla düzeltin chmod(1).

Öyleyse, tüm bu bayrakları bir araya getirerek dosyanızda ne olduğunu görelim. ls:

ls -lO@e main.m

# 1 ve # 2 ile nasıl başa çıkacağınızı zaten biliyor gibisiniz.

Bir ACL (# 4) görürseniz, ACL ile ilgili argümanlarla düzeltebilirsiniz. chmod(1).

Hala güdük varsa, Cevabınızı bu birimin çıktısı ile güncelleyin. ls Komut yukarıda önerdim, böylece neler olduğunu görebiliriz.


Sorun ACL'lerde gibi görünüyor. Sudo'nun bu kilitlerin etrafında dolaşmadığını ilginç buluyorum. Ayrıca, chmod -R -a # 0 *, ACL'leri hiyerarşideki dosyaların çoğundan çıkardı, ancak bazılarından kaldıramadı - chmod ile sudo kullanmak yardımcı olmadı.
ericg
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.