-bash: / dev / null: İzin reddedildi


30

Centos 6 sisteminde yeni bir kullanıcı oluşturmaya çalışıyorum.

İlk ben yaparım

useradd kevin

Sonra bu kullanıcı olarak komut çalıştırmayı denedim.

su - kevin

Ancak, aşağıdaki hata iletilerini alıyorum

-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
[kevin@gazelle ~]$

Ve bu kullanıcı kadar yapamam.

Aşağıdaki izinler /dev/nullaşağıdaki gibidir:

-rwxr-xr-x  1 root root           9 Jul 25 17:07 null

Neredeyse Mac'imdekilerle aynı.

crw-rw-rw-   1 root   wheel         3,   2 Jul 25 14:08 null

Bu mümkün , ama gerçekten olası değil, Dev'e dokundum.

Kök kullanıcı kevinolarak rootgruba eklemeye çalıştım :

usermod -a -G root kevin

Ancak yine de /dev/nullhataları reddedildi izin alıyorum .

Yeni kullanıcı neden yazamıyor /dev/null?
Yeni kullanıcı hangi grupların parçası olmalı?
Kullanıcıyı doğru şekilde taklit etmiyor muyum?
Linux'ta kullanıcı / izin ayarlama konusunda yeni başlayanlar var mı?


1
Görünüşe göre / dev / null 9 bayt uzunluğunda sıradan bir dosyaya dönüştü; bir aygıt dosyası olması gerekiyordu (dosya türü / izin bitleri alanının başında 'c'). Eğer öyleyse cat /dev/null, son zamanlarda kullandığın bir şeye benziyor mu?
Mark Plotnick,

Ah. Evet yaptı. "* usta". Bunu cevap olarak eklemek ister misiniz? Ben işaretleyeceğim?
Kevin Burke

Yeniden başlatabilirsiniz ve / dev / null geri alınacak, fakat / dev / null dosyasını bir dosyada değiştirenin ne olduğunu biliyor musunuz? Tekrar olsaydı acı olurdu.
Mark Plotnick,

1
Tahminim, "git dalının" çıktısını yazmak yerine / dev / null değerine taşıdım ya da kötü bir senaryo ya da başka bir şey vardı
Kevin Burke

Yanıtlar:


56

Birisi açıkça düzenli bir dosyayı / dev / null 'a taşıdı. Yeniden başlatma işlemi yeniden başlatacak veya yapacak

rm -f /dev/null; mknod -m 666 /dev/null c 1 3

@Flow, bir yorumda da belirtildiği gibi, bunu rootyapmak zorunda olmalısınız .


12
Eğer "birisi" derken "ben" demek istiyorsan, evet :) :)
Kevin Burke

Ben bile int aynı sunucuda koştu. Ubuntu 14.04 LTS. Ancak izinleri değiştirmedim. Hangi sürecin izinleri değiştirdiğini izleyebileceğim herhangi bir olasılık var mı?
Mani

@Mani Linux varsayılan olarak bu kadar küçük değişiklikler yapmaz, ancak artık onları görebilmek için denetimi açabilirsiniz. Bir dosyanın Linux
chmodunda nasıl algılanır

1
Çözüm sorunu düzeltir ancak sorun tekrarlanır. Niye ya?
Abhishek Soni,


13

Bu sorunu (root olarak) düzeltmelidir:

rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null

2
Bu da Mac / BSD üzerinde çalışıyor
redolent

3

Mark tarafından önerilen çözüm OpenBSD üzerinde çalışmadı. ancak

mknod -m 666 /dev/null -c 2 2

hile yaptım. Bunu OpenBSD 5.6'da test ettim. Kabul edilen cevap çalıştırıldığında / dev / null, okuduğunuz herhangi bir kodun okunmasını engeller ve bozar.


OP, OpenBSD yerine CentOS kullanmadı mı?
ott--

3
Ne yazık ki, farklı işletim sistemleri için farklı büyük / küçük sayılar kullanır /dev/nullve standart değildir. OP CentOS 6. Linux kullandı sorulduğunda 1,3için / dev / null FreeBSD'de en az 2001 kadar uzanan, gördüm 0,6, 15,0, 17,0, ve 20,0. OpenBSD kullanır 2,2. OpenBSD'de aslında rakamları bilmek zorunda değilsiniz; koşabilirsin # cd /dev; ./MAKEDEV std.
Mark Plotnick 16:15

İşletim sistemleri arasında büyük ve küçük sayılar taşınamaz. Linux'ta çalışanlar genellikle * BSD veya Mac OS X'te (veya Solaris, AIX, HP-UX,…) ve tam tersi şekilde çalışmaz. mknodKomutta kullanmak için doğru numaraları , kılavuzları inceleyerek (eğer şanslıysanız, orada bilgi varsa) veya çekirdek başlıkları inceleyerek bulmanız gerekir.
Jonathan Leffler

1

Bu, Ubuntu uygulamasındaki pencerelerde, yazılan bir betiği çalıştırmaya çalışırken başıma geldi /dev/null. İzinler her ikisi için doğruydu /devve /dev/null.

Sorunun komut dosyasındaki windows newlines olduğu ortaya çıktı. Koşu:

dos2unix.exe c:\path\to\script.sh

Bu sorunu benim için çözdü.


0

Mac OS X yanıtını gelecek nesillere gönderme ...

sudo su \
&& rm -rf /dev/null \
&& mknod /dev/null c 3 2 \
&& chmod 666 /dev/null
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.