Bu belge için geçici dosya oluşturulamıyor: İzin reddedildi


11

[Not: Bu benzer Q aynı bash hata mesajı ile ilgilidir. Bu diğer Q'nun kopyası olarak işaretlendi . Ancak bu hata için çok farklı bir kaynak bulduğum için aşağıda kendi Q'umu cevaplayacağım.]

Bu daha önce çalışan bash komut satırı

while ... do ... done <<< "$foo"

bir gün bu hata mesajını üretmeye başladı:

belge için geçici dosya oluşturulamıyor: İzin verilmedi


Benim durumumda olmama kombinasyonu ile IMA ( ima_policy=appraise_tcbçekirdek parametresi) etkinleştirildi . Ama bu gerçekten yaygın bir durum değil :). /tmptmpfs
pevik

Yanıtlar:


10

Ben umask 777burada dizeden önce eklemişti . Umask kaldırıldıktan sonra hata ortadan kalktı. Böylece öğrenilen ders: here string ( <<<) için oluşturulmuş geçici bir dosya vardır ve bu here here ( <<) ile ilgilidir ve bunların çalışması için uygun bir umask ayarına sahip olmanız gerekir.



Ayrıca ksh93 veya tcsh'yi değil, zsh ve mksh'yi etkiler. Dash, rc, es veya yash değil ama geçici dosyalar yerine pipo kullanmaları nedeniyle.
Stéphane Chazelas

Ksh93 ve tcsh durumunda, dosyayı okuma + yazma modunda yalnızca bir kez açtıkları, verileri yazdıkları ve daha sonra tekrar başladıkları için çalışır.
Stéphane Chazelas

6

Benim durumumda /tmp dizin varsayılan izinlerini (sanırım yanlışlıkla 0777 olarak değiştirdim).

Çözüm /tmp, 1777 sekizli (1 = yapışkan bit, 7 = R + W + X) olan varsayılan izne geri döndürmekti .

Kısacası sudo chmod -R 1777 /tmp sorunu .


Nerede sorunlara yol açacağını görebiliyorum. Evet, yapışkan bit / tmp için önemlidir.
Eliptik görünüm

2
Muhtemelen -Rbayrağı istemiyorsun . Aşağıdaki herkesin dosyalarını herkes /tmptarafından okunabilir-yazılabilir olarak değiştirmek için bir neden yoktur . Bu dosyaların bazıları kullanıcılarınızın güvenliğine duyarlıdır.
keithpjolley

1

Bu sorunla kişisel deneyimim umask@ eliptical-view gibi ikili gösterim ile oldu . Bu yazıyı:

umask 0644 

oluşturduğum dosyalara okuma ve yazma erişimi verir, sorun nedir

Değiştim sonra umaskolmak

umask 0022

hata kayboldu.

Aslında, ikili gösterim ikili bir tamamlayıcı olarak anlaşılmalıdır.

Bu nedenle, dosya sahibi için umaskyazarken aşağıdaki 's maskesinde 0, bu kullanıcı oluşturduğu dosyalara tam erişime sahip olacaktır. Değer 2, 2. bitin maskelenmiş olduğu anlamına gelir, yani bu durumda varsayılan olarak diğer kullanıcıların dosya sahibinin oluşturduğu dosyalara yazmasına izin verilmez.


1
Düzenleme ve düzeltme için teşekkürler, @Paulo Tomé. Gerçekten de, sekizli gösterimi kullanmak normaldir (ve açıktır) umask, çünkü tam olarak üç bit Posix dosya izinlerine dahil olur - sahibi, gruplarından biri ve diğer herkes için.
Hilton Fernandes

Rica ederim. ;)
Paulo Tomé
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.