GNU/Linux >> Belajar Linux >  >> Linux

Pemula:Jalankan layanan sebagai pengguna yang tidak memiliki hak istimewa dan skrip pra-mulai sebagai root

upstart tidak memiliki fasilitas yang setara dengan systemd PermissionsStartOnly pengaturan. Semua proses dalam pekerjaan dijalankan sesuai pengaturan pengguna melalui setuid bait, seperti kata Cookbook.

Jadi lakukan hal-hal dengan cara daemontools.

Gunakan setuidgid , setuidgid , s6-setuidgid , chpst , runuid , atau setuidgid di exec bait:

exec \
setuidgid somebody \
unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1

Ngomong-ngomong, itu mekanisme logging yang buruk. Cara daemontools akan memiliki log yang tepat, berputar otomatis, dapat diputar sesuai permintaan, dibatasi ukuran, menggunakan multilog , multilog , s6-log , svlogd , tinylog , atau cyclog . upstart sulit untuk diintegrasikan dengan itu, bagaimanapun, mengingat expect-nya mekanisme.

expect fork
exec \
setuidgid somebody \
unicorn -D -c /opt/posty_api/unicorn.rb --env production 2>&1 | \
/usr/local/bin/chdir /var/log/ \
setuidgid log \
cyclog posty/unicorn/

(chdir ini adalah pemuatan berantai dari nosh paket, dan tidak benar-benar diperlukan. Tapi itu membuat segalanya lebih rapi.)


Linux
  1. Perbedaan Antara Akun Pengguna dan Layanan?

  2. Apakah Mungkin Menjalankan 'unshare -n [program]' Sebagai Pengguna yang Tidak Memiliki Hak Istimewa?

  3. Perbedaan Antara Pengguna Sudo Dan Pengguna Root?

  1. Skrip Init.d Tidak Dijalankan Saat Boot?

  2. Cara Membuat Script Shell Selalu Jalankan Sebagai Root?

  3. Jalankan Script Dengan Argumen Sebagai Pengguna?

  1. Jalankan skrip php sebagai proses daemon

  2. Jalankan perintah Shell di jenkins sebagai pengguna root?

  3. Jalankan bagian dari skrip bash sebagai pengguna yang berbeda