發表文章

目前顯示的是 11月, 2016的文章

[*nix] share TCL by Tmux

這本來是我原本列出的實踐標之一,起初以為只有 screen 指令可以達到,但要使用到 root 權限(才能讓兩個不同人連線),一時還以為要自己造輪子,感覺蠻困難的。直到最近,在學校主機玩 tmux 時,調 terminal type 調半天,東搞西搞,找資料,加上靈光一閃,竟想起了這以前解決不了的問題,便以 tmux 為關鍵字索性一找。 起初找到的 教程 ,只有說同個 group 才能用同一個 session。我對 session 產生出來的的檔案( 就是一個 socket 檔),看了看權限,果然,other 沒有權限,那把它 chmod 如何?結果一不小心就成功了啊喂?!我馬上在教程底下留言,不知道作者啥時才會看到。 由於要加的 flag 有點多,我就把它寫成了 script =>  C program  了,個人覺得這不算多此一舉,因為 session 的命名,flag 要加哪些等,臨時要跟另一個人溝通太麻煩,不如一行指令簡潔。 還有一點要考慮,那就是安全性。其中 tmux attach 有提供 -r flag 以便被分享者以唯讀模式 attach,但這個 flag 要被分享者自己加。所以我想這方面可以由程式改善。因為 attach 要指定 target session 的名稱。我的想法是兩者要分享螢幕時,session名稱可以不公開,把我寫成 script 的這段長長的指令改用 c system() 實現,執行 tmux 順便將 target session name 嵌在裡面,如果需要唯讀, -r flag 也寫進去。 如此要分享的話,他只能也只要執行那個執行檔就好,還不用加 session 的名字,當然執行檔的權限不可以設定 r 給被分享者啦,給 x 就好了。那個執行檔還可以寫成用過就自己刪掉,顆顆。 至於誰可以執行程式呢?怕閒雜人等來干擾,就用個 setfacl ,指定使用者給予執行權限就可以了。 目前我只有寫個簡單的 script 去簡化下 flag 的過程,要再加一層 C 程式去包裝還沒做。好像是第一次寫動態產生執行檔的程式呢!