Linux - buat layar sebagai pengguna lain

1

Saya mencoba membuat yang baru screendi server saya (CentOS 5.11), tetapi alih-alih memulainya dengan pengguna saya, saya lebih suka menggunakan pengguna lain dengan izin terbatas, hanya untuk berada di sisi yang aman.

Jadi, setelah membaca sedikit tentang alasan skrip layar di dalam ini tampak mudah:

  1. sudo su - <user> bash
  2. script /dev/null
  3. screen -c .screenrc -d -m -S testN ping google.com
  4. exit

dan semuanya bekerja dengan baik. Saya dapat mengaksesnya bahkan dengan screen -x <user>/testN(dimaksudkan untuk digunakan oleh 3 atau 4 pengguna mesin). Jadi, semua dalam satu baris harus ...

sudo su - <user> bash -c 'script -c "screen -c .screenrc -d -m -S testN ping google.com; exit;" /dev/null'

tapi (sekarang) untuk beberapa alasan, ketika saya melakukan sudo su - <user> bash -c 'screen -ls'layar mati dan saya tidak dapat memasang layar itu seperti sebelumnya.

Ada layar di: 24120.testN (Mati ???) Hapus layar mati dengan 'layar -wipe'.

Adakah yang mengalami masalah serupa? Setiap ide tentang cara yang lebih mudah, akan diterima.

My .screenrchanyalah konfigurasi yang mengatur layar agar dapat diakses oleh pengguna lain, tampaknya tidak memiliki hubungan dengan masalah tersebut.

Oktal
sumber

Jawaban:

1

Ini adalah kondisi balapan yang lucu. Saat mengatur sesi layar Anda, fork layar. Orang tua keluar, anak mengatur sesi, menjalankan perintah dan sebagainya. Tetapi, atas perintah Anda, setelah orangtua keluar, seluruh rantai leluhurnya selesai dan keluar. Sepanjang jalan, terminal pengendali ditutup, yang mengirimkan a SIGHUPke kelompok proses latar depan: satu-satunya proses di sana adalah proses layar anak. Karena itu belum tentu memiliki waktu untuk mengatur penanganan sinyalnya, pengendali default untuk SIGHUPeksekusi: proses keluar.

Anak itu cenderung selalu kalah dalam balapan itu, karena ia pertama kali menghabiskan waktu melakukan banyak akses sistem file untuk mengatur soket komunikasi, yang semuanya adalah titik-titik interupsi di mana kaskade keluar dari orang tua dapat berjalan.

Berita baiknya adalah, jika Anda mencoba memulai ini hanya untuk secara interaktif melekat pada sesi dengan pengguna lain, hampir semua baris perintah yang Anda gunakan tidak perlu (perintah "skrip" tidak menambahkan apa pun - pertanyaan yang Anda tautkan menyebutkan "masalah" tidak spesifik, tetapi kecuali Anda memiliki salah satu dari itu, jangan mem-kargo-nya, Anda juga tidak memerlukan "su -" barang, tidak ada pengaturan yang diperlukan untuk proses layar awal, dan segala sesuatu yang peduli membutuhkannya diatur oleh layar toh).

sudo -u $OTHERUSER screen -c /path/to/screenrc -d -m -S testN ping google.com
Gabe
sumber