Pada server bersama, saya ingin memiliki beberapa pengguna dengan prioritas sangat rendah sehingga setiap kali pengguna lain (juga tanpa hak akses root) membutuhkan sumber daya, mereka dapat membunuh semua proses pengguna dengan prioritas rendah.
Apakah mungkin untuk membiarkan hal seperti itu?
users
not-root-user
privileges
Aslan986
sumber
sumber
Jawaban:
Berikan izin kepada pengguna lain untuk mematikan proses sebagai pengguna dengan prioritas rendah
Seorang pengguna hanya dapat memberi sinyal proses mereka sendiri, kecuali mereka memiliki hak akses root. Dengan menggunakan
sudo -u
pengguna dengan pengaturan yang benar disudoers
file dapat menganggap identitas pengguna prioritas rendah dan mematikan proses.Sebagai contoh:
Ini akan memungkinkan semua pengguna dalam grup
killers
dijalankan/bin/kill
sebagailowpriouser
.Lihat juga
sudoers
manual di sistem Anda.Pada sistem OpenBSD, hal yang sama dapat dilakukan melalui
doas
utilitas asli dengan konfigurasi sepertiKemudian
Lihat manual untuk
doas
dandoas.conf
.sumber
kill
. Perhatikan juga bahwa saya sarankan menggunakan grup pengguna (killers
), tidak semua pengguna.kill -HUP
, bukan hanyakill -TERM
.lowpriouser
. Jika Anda ingin membatasi sinyalnyaTERM
, tuliskan skrip shell pembungkus/bin/kill
dan izinkan orang untuk menggunakannya/bin/kill
.%killers ALL = (lowpriouser) /bin/kill -(9, 15) [0-9 ]*
Anda seharusnya tidak membunuh proses, jika mereka prioritas rendah mereka akan menghabiskan sedikit sumber daya.
Untuk benar-benar menjadikannya prioritas rendah, ubah prioritasnya secara manual, atau gunakan daemon like
autonice
yang saya tulis untuk DEC OSF / 1 bertahun-tahun yang lalu (c. 1994) yang mencari pekerjaan yang sudah lama berjalan dan semakin mengurangi prioritas mereka semakin lama dijalankan .EDIT ada paket yang disebut
and
yang menawarkan fungsi ini untuk Unites modern.sumber
Saya pikir Anda mendekati masalah dari sudut yang salah: Jika suatu proses dijalankan pada pengaturan prioritas rendah (CPU, I / O) itu seharusnya tidak mempengaruhi banyak proses lain karena itu tidak akan dijadwalkan untuk berjalan. Sedangkan untuk penggunaan memori, jika memori utama ketat dan proses tidak dijadwalkan untuk berjalan dalam waktu yang lama (misalnya karena kendala CPU dan I / O), halaman "bersih" -nya dijatuhkan dan halaman "kotor" -nya dikomit atau bertukar dan tidak lagi mempengaruhi kinerja proses lainnya.
Kesimpulan: dengan pengaturan prioritas yang tepat dan ruang swap yang memadai, tidak perlu membunuh pekerjaan prioritas rendah untuk membuat "ruang" untuk tugas-tugas yang lebih penting; sebaliknya kernel akan berhati-hati untuk menempatkan yang pertama untuk mendukung yang terakhir.
sumber