Saya ingin dapat memeriksa progres dan output dari screen
sesi saya yang ada , tetapi dengan cara read-only, untuk mencegah sesuatu dari kesalahan karena kesalahan pengguna. Apakah ada cara untuk melakukan ini?
sumber
Saya ingin dapat memeriksa progres dan output dari screen
sesi saya yang ada , tetapi dengan cara read-only, untuk mencegah sesuatu dari kesalahan karena kesalahan pengguna. Apakah ada cara untuk melakukan ini?
Sayangnya, saya pikir jawabannya tidak. Penanya pertanyaan ini beralih ke tmux secara khusus karena memiliki fitur tersebut (Anda memberikan -r
tanda saat melampirkan), jadi jika Anda memiliki opsi untuk beralih multiplexer, mungkin itu pilihan terbaik Anda.
Anda dapat mencoba:
aclchg username -w "#"
jika Anda menjalankan screen
dalam mode multi-pengguna (tapi saya tidak perlu melakukan sesuatu yang khusus untuk membuatnya berfungsi ketika mengujinya sebagai pengguna tunggal yang dilampirkan). Jika Anda perlu masuk ke mode multiuser, gunakan multiuser on
.
Anda dapat menggunakan *
nama pengguna untuk mempengaruhi semua pengguna.
Menggunakan +w
alih-alih -w
mengaktifkan mode tulis.
Dari man screen
:
aclchg nama pengguna mengizinkan daftar
chacl nama pengguna mengizinkan daftarUbah izin untuk daftar pengguna yang dipisahkan koma. Bit izin direpresentasikan sebagai 'r', 'w' dan 'x'. Awalan '+' memberikan izin, '-' menghapusnya. Parameter ketiga adalah daftar perintah dan / atau jendela yang dipisahkan koma (ditentukan berdasarkan angka atau judul). Daftar khusus '#' mengacu pada semua jendela, '?' untuk semua perintah. jika nama pengguna terdiri dari satu '*', semua pengguna yang dikenal akan terpengaruh. Perintah dapat dieksekusi ketika pengguna memiliki bit 'x' untuk itu. Pengguna dapat mengetik input ke jendela ketika ia memiliki bit 'w' dan tidak ada pengguna lain yang mendapatkan writelock untuk jendela ini. Bit lain saat ini diabaikan. Untuk menarik writelock dari pengguna lain di jendela 2: 'aclchg username -w + w 2'. Untuk mengizinkan akses hanya baca ke sesi: 'aclchg nama pengguna -w "#"'. Segera setelah nama pengguna diketahui untuk disaring, ia dapat melampirkan ke sesi dan (per default) memiliki izin penuh untuk semua perintah dan jendela. Izin eksekusi untuk perintah acl, `at 'dan yang lainnya juga harus dihapus atau pengguna mungkin bisa mendapatkan kembali izin tertulis. Hak nama pengguna khusus tidak ada yang tidak dapat diubah (lihat perintah "su"). 'Chacl' adalah sinonim dengan 'aclchg'. Mode multi-pengguna saja. dan yang lainnya juga harus dihapus atau pengguna mungkin bisa mendapatkan kembali izin menulis. Hak nama pengguna khusus tidak ada yang tidak dapat diubah (lihat perintah "su"). 'Chacl' adalah sinonim dengan 'aclchg'. Mode multi-pengguna saja. dan yang lainnya juga harus dihapus atau pengguna mungkin bisa mendapatkan kembali izin menulis. Hak nama pengguna khusus tidak ada yang tidak dapat diubah (lihat perintah "su"). 'Chacl' adalah sinonim dengan 'aclchg'. Mode multi-pengguna saja.
screen
baca di mana saja sesi layar terpasang yang terlihat berbeda dari apa yang diminta OP.aclcng
perintah tersebut dapat menentukan pengguna tertentu, perintah tertentu dan / atau jendela tertentu sehingga itu granularity cukup baik. Jadi itu bukan "di mana-mana".Saya telah menemukan solusi yang cukup sederhana yang memungkinkan seseorang untuk memantau output dengan aman.
Jalankan perintah berikut segera setelah memasuki sesi layar:
Lepaskan sesi dengan Ctrl-A ddan ikuti output skrip, misalnya:
sumber
Solusi saya saat ini adalah mengatur Tampilan Terminal menjadi ReadOnly .
Mungkin terlalu jelas. Namun, pertanyaan itu tidak membutuhkan solusi dengan
screen
sendirinya.sumber
saya menulis skrip php yang dipanggil
readscreen
untuk ... melampirkan ke sesi layar dalam mode read-only. simpan/usr/bin/readscreen
dan jalankanchmod 0555 /usr/bin/readscreen
, dan pastikan php-cli diinstal dengan ekstensi php-pcntl, dan Anda dapat menulisreadscreen
diikuti dengan perintah apa pun yang akan Anda gunakan untuk terhubung dengan layar normal, misalnya:dan Anda akan terhubung ke sesi foo dengan cara baca-saja . Perhatikan bahwa ini tidak diuji secara luas, tetapi tampaknya berfungsi dengan baik. kode sumber layar baca:
sumber