Setelah saya membaca Daftar semua pengguna manusia, saya perhatikan ada akun pengguna bernama 'tidak ada' di sistem Ubuntu saya.
Saya juga memperhatikan bahwa saya dapat masuk di akun ini dari terminal menggunakan perintah berikut dan kata sandi saya:
sudo su nobody
Saya sama sekali tidak keberatan, tetapi saya ingin tahu apa tujuan dari pengguna ini? Apakah ini dibuat secara default pada instalasi baru Ubuntu atau dibuat dengan menginstal paket tertentu?
users
username
switch-user
Radu Rădeanu
sumber
sumber
sudo su nobody
kembali Akun ini saat ini tidak tersedia. karena shell untuk penggunanobody
diatur ke/usr/sbin/nologin
(getent passwd nobody
).root_squash
itu akan memetakan root ke siapa pun di sistem jarak jauh. Ini kira-kira kebalikan dari apa yang dinyatakan oleh jawaban iniJawaban:
Itu ada untuk menjalankan hal-hal yang tidak memerlukan izin khusus. Biasanya dicadangkan untuk layanan yang rentan (httpd, dll) sehingga jika mereka diretas, mereka akan memiliki kerusakan minimal pada sisa sistem.
Bandingkan ini dengan menjalankan sesuatu sebagai pengguna nyata, jika layanan itu dikompromikan (server web kadang-kadang dieksploitasi untuk menjalankan kode arbitrer), itu akan berjalan sebagai pengguna itu dan memiliki akses ke semua yang dimiliki pengguna. Dalam kebanyakan kasus, ini sama buruknya dengan mendapatkan root.
Anda dapat membaca sedikit lebih banyak tentang pengguna yang tidak ada di Wiki Ubuntu:
Untuk menjawab tindak lanjut Anda:
Mengapa saya tidak dapat mengakses akun ini
su nobody
?sudo grep nobody /etc/shadow
akan menunjukkan kepada Anda bahwa tidak ada yang tidak memiliki kata sandi dan Anda tidak bisasu
tanpa kata sandi akun. Cara terbersih adalahsudo su nobody
sebaliknya. Itu akan membuat Anda dalamsh
cangkang yang cukup terpencil .Bisakah Anda memberikan contoh tertentu ketika ditunjukkan untuk menggunakan akun ini?
Ketika izin tidak diperlukan untuk operasi program. Ini paling penting ketika tidak akan ada aktivitas disk apa pun.
Contoh dunia nyata dari hal ini adalah
memcached
(cache / basis data / memori dalam nilai kunci), duduk di komputer saya dan server saya berjalan di bawah akun siapa pun. Mengapa? Karena itu tidak memerlukan izin dan untuk memberikannya akun yang memang memiliki akses tulis ke file hanya akan menjadi risiko yang tidak perlu.sumber
su nobody
dan 2) dapatkah Anda memberikan contoh tertentu ketika ditunjukkan untuk menggunakan akun ini?su
sebagai pengguna biasa, Anda harus memberikan kata sandi pengguna target. Cobalahsudo -i
kemudiansu nobody
dari shell root (yang tidak akan meminta password).Network File System
petaroot
kenobody
root lokal sehingga tidak dapat mengakses segala sesuatu seperti root remote.nobody
sebenarnya / terutama digunakan oleh NFS sebagai status linuxstandardbase .Informasi diambil dari http://en.wikipedia.org/wiki/Nobody_(username) .
sumber
nobody
hanya untuk NFS dan tidak boleh digunakan oleh layanan lain dan tentunya tidak oleh administrator sistem. Terima kasih.Tidak ada pengguna yang dikhususkan untuk NFS saja.
Jawaban di atas agak salah, karena mereka menganggap itu
nobody
adalah id pengguna gaya anonim / tamu "generik".Dalam model kontrol akses UNIX / Linux, gaya pengguna anonim / gaya id tamu tidak ada dan ini adalah saran buruk:
nobody
, terutama server, untuk membatasi kerusakan yang dapat dilakukan oleh pengguna jahat yang mendapatkan kendali atas mereka. " karena hal-hal berikut: " Namun, kegunaan teknik ini berkurang jika lebih dari satu daemon dijalankan seperti ini, karena dengan mendapatkan kendali satu daemon akan memberikan kendali atas mereka semua ".memcached
(cache / database / memori dalam nilai kunci), berada di komputer saya dan server saya berjalan di bawahnobody
akun. Mengapa? Karena itu tidak memerlukan izin apa pun dan untuk memberikannya akun yang memang memiliki akses tulis ke file hanya akan menjadi risiko yang tidak perlu. "Nama
nobody
pengguna dengan id pengguna 65534 dibuat dan dicadangkan untuk tujuan tertentu dan harus digunakan hanya untuk tujuan itu: sebagai pengganti bagi pengguna "id" yang belum dipetakan dan id pengguna dalam ekspor pohon NFS.Yaitu, kecuali jika pemetaan pengguna / id diatur untuk ekspor NFS tree, semua file dalam ekspor tersebut akan tampaknya dimiliki oleh
nobody
. Tujuannya adalah untuk mencegah semua pengguna pada sistem impor mengakses file-file tersebut (kecuali jika mereka memiliki izin "lainnya"), karena tidak satu pun dari mereka (kecualiroot
) yang dapat / menjadinobody
.Oleh karena itu adalah ide yang sangat buruk untuk menggunakan
nobody
untuk setiap tujuan lain, karena tujuannya adalah untuk menjadi pengguna nama / user id untuk file yang tidak boleh diakses oleh siapa pun.Entri Wiki juga sangat salah.
Praktik UNIX / Linux adalah membuat akun baru untuk setiap "aplikasi" atau area aplikasi yang membutuhkan domain kontrol akses terpisah, dan untuk tidak pernah menggunakan kembali di
nobody
luar NFS .sumber
root_squash
on,root
dipetakan ke penggunanobody
, jadi file yang memiliki pemiliknobody
tidak masuk akal. Selain itu pernyataan bahwa file yang dimiliki oleh siapa pun dimaksudkan tidak dapat diakses oleh siapa pun tidak masuk akal, karena izin file terpisah dari kepemilikan di UNIX. Saya tidak mengatakan bahwa segala sesuatu dalam jawaban itu salah, hanya saja unsur-unsurnya sedikit atau tidak masuk akal bagi saya :)nobody
. Ia memberi tahu Anda bahwanobody
NFS dapat digunakan saat memetakan izin, dan itulah poin terpenting bagi saya. Bagaimana NFS menggunakannobody
kurang menarik daripada kenyataan bahwa ia tidak menggunakannobody
. Terima kasih.man exports
, ia mungkin sangat bingung.The
nobody
pengguna dibuat secara default pada instalasi baru (diperiksa pada Ubuntu Desktop 13.04).sumber
tidak ada yang merupakan akun pengguna dan grup khusus. Karena itu adalah nama pengguna sebenarnya (dan nama grup) dan dapat digunakan oleh proses dan bahkan pengguna, itu bukan siapa-siapa . Sebagai contoh, beberapa konfigurasi Apache tidak memiliki siapa pun sebagai pengguna / grup yang memiliki file dan direktori situs web. Masalahnya muncul ketika beberapa proses mungkin menggunakan pengguna yang tidak ada, seperti direktori NFS dan server web.
sumber
Koreksi kecil pada ' Tidak ada pengguna yang dicadangkan hanya untuk NFS. jawaban The
nobody
pengguna juga digunakan untuk wadah unprivileged dengan mengikat tunggangan saat ini.Ini diambil dari systemd-nspawn, khususnya opsi --bind mount:
systemd-nspawn
sumber