tidak dapat mengakses / dev / null: Izin ditolak, meskipun crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 / dev / null

11

Pada postgres pengguna:

$ ls -l /dev/null
ls: cannot access /dev/null: Permission denied

Dipikirkan pada root pengguna, izinnya benar:

# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 /dev/null

Saya telah mencoba membuatnya kembali:

# rm /dev/null && mknod -m 0666 /dev/null c 1 3

Tetapi hasilnya sama. Saya menggunakan VPS dengan debian 7 dan kernel 2.6.32 pada x86_64

lalebarde
sumber

Jawaban:

18

Masalahnya berasal dari izin ke / dev:

# ls -ld /dev
drwx------ 3 root root 4096 Sep 21 12:12 /dev

Jadi / dev tidak dapat diakses oleh pengguna.

# chmod a+x /dev
# chmod a+r /dev

Memecahkan masalah.

lalebarde
sumber
Jadi saya ingin tahu mengapa itu memiliki izin tersebut. Anda mungkin ingin menginstal ulang. Semua yang ada di / dev adalah kernel yang dikelola dan aneh untuknya memiliki izin yang salah.
cripto
tidak, semua yang ada di / dev bukan "kernel managed".
tlund
@tlund silakan tinjau buku kernel favorit Anda. "/ direktori dev mencerminkan keadaan kernel saat ini" doc.opensuse.org/products/draft/SLES/SLES-admin_sd_draft/…
cripto
@ user1048138: Saya juga ingin tahu. Saya mulai dari setup debian 7 otomatis dari penyedia VPS saya. Kemudian saya memperbarui, meningkatkan, hanya menggunakan apt-get. Ditambah satu paket dengan "tangan" dengan wget some_domain / some_package.deb ; dpkg -i some_package.deb; apt-get -f install. Pada satu titik, / dev / null diubah menjadi file standar, dan / dev izin berubah. Saya tidak tahu lagi.
lalebarde
1

Saya memiliki masalah yang sama, dan datang ke sini dengan mencari gejalanya, tetapi solusinya tidak sesuai dengan kasus saya. Jadi saya ingin menambahkan alasan lain yang mungkin bahkan jika itu tidak sesuai dengan OP.

Dalam kasus khusus saya, saya menggunakan proot( chrootpembungkus yang bagus ). Tetapi izin itu benar /dev/nulldan /devsendiri.

Kebetulan itu adalah mount chrootdirektori, yang saya lakukan thunarsebagai pengguna biasa. Jadi, dalam hal ini mount tidak memiliki izin yang benar.

Anda memiliki waktu yang buruk untuk menemukan ini, karena Anda tidak melihat izin ini, ketika hanya melihat file.

Jalur solusi umum akan mulai memeriksa kondisi di lokasi masalah ( /dev/null) dan melangkah ke tingkat berikutnya (), ( /dev), kemudian mount, sistem file dll, apa pun yang terjadi berikutnya.

Pada setiap langkah Anda mungkin memiliki beberapa prasyarat, masing-masing memiliki tingkat luar sendiri. Misalnya, pengguna dapat berada dalam grup yang salah, yang mengarah ke file konfigurasi grup, yang dapat memiliki izin yang salah, dll.

Jelas, Anda harus mengikuti jenis pohon secara umum.

Harald
sumber
0

Saya tidak bisa menyelesaikan yang ini sendiri, jadi inilah yang saya lakukan:

mycommand.sh | echo -n

The echoperintah tidak memperhatikan masukan standar, sehingga akan dibuang. Dan itu -nadalah agar baris baru yang tidak berguna tidak dicetak ke stdout.

Mark Stewart
sumber
1
Meskipun ini mungkin menjawab pertanyaan, itu akan menjadi jawaban yang lebih baik jika Anda bisa memberikan beberapa penjelasan mengapa ia melakukannya.
DavidPostill
1
Ya, tetapi bagaimana cara menjawab pertanyaan "tidak dapat mengakses / dev / null: Izin ditolak, meskipun crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 / dev / null"?
DavidPostill
1
Itu tidak menjawab pertanyaan. Tapi itu memberikan solusi. Terkadang tidak ada jawaban langsung yang ideal.
Mark Stewart
0
chmod a+rw /dev/null /dev/random /dev/urandom /dev/ptmx /dev/tty /dev/zero /dev/full /dev/fuse /dev/net/tun

inilah yang memecahkan masalah saya di VPS. Harap perhatikan, bahwa setelah Anda me-reboot server Anda - Anda telah menjalankan perintah ini lagi

zore
sumber