2015-05-26 52 views
0

有沒有辦法禁止用戶的交互式shell登錄,而是運行預定義的程序?如何通過SSH自動運行單個程序?

在我的情況下,我在服務器上編寫了一個程序,該程序計算到特定的時間。我想創建一個沒有交互式shell的用戶,但可以登錄看這個程序

我不太清楚問題是否清楚?如果你知道這些telnet電影,你可能會明白我想要達到的目標。

-

也許一個例子有所幫助。如果我有下面的C-計劃

#include <stdio.h> 
#include <time.h> 

int main() 
{ 
    time_t rawtime; 
    while(1){ 
     time (&rawtime); 
     printf ("\rCurrent timestamp: %ld", rawtime); 
    } 
    return 0; 
} 

我想有possibilty一個可以無需密碼登錄即可觀看這個節目的輸出,但不能做任何事情。

+2

「觀看程序」或「運行程序」?如果你想讓它在登錄時運行,那麼使該程序成爲用戶的shell。例如將/ etc/passwd中的shell定義更改爲/ usr/bin/yourapp而不是/ bin/sh –

+0

好吧,我知道如何運行一個程序,也許這個問題還不清楚。將Shell更改爲Programm似乎強制用戶僅使用該程序。 – JHnet

+0

不能真的繞過密碼提示,但你可以創建一個沒有密碼的帳戶(例如,只需按回車鍵),如果你編譯的二進制顯示時間是用戶的shell,他們會在密碼行輸入密碼後輸入滾動的時間。 –

回答

0

的可行的目標和方法是: 1.當運行程序,重新導向其輸出到某些文件

  • 設置一個ssh帳戶「強制命令」。詳細信息請查看ssh手冊。基本上,您正在爲該帳戶設置發佈密鑰身份驗證,以便不需要密碼,並且在登錄後指定允許的命令以「自動運行」。在你的情況下,該命令將有點像「tail -f the_log_file」
  • 相關問題