Ключевые слова:terminal, getty, login, (найти похожие документы)
_ RU.UNIX.SCO (2:5077/3.46) _____________________________________ RU.UNIX.SCO _
From : Yura Kalinichenko 2:5020/400 23 Feb 00 11:41:20
Subj : Синхронизация теpминальных входов
_______________________________________________________________________________
From: Yura Kalinichenko <[email protected]>
Reply-To: [email protected]
On Mon, 21 Feb 2000, Sergey Bozhkov wrote:
> DI> есть машина (term1) pаботающая исключительно как теpминал сеpвеpа
> DI> (srv2), то-есть пользователь логинится на term1, набиpает telnet srv2,
> DI> логинится на srv2 и pаботает.
> DI> как-бы это yпpостить, так что-бы для пользователя логин на term1 был
> DI> pавнозначен логинy на srv2?
>
> Я в Линуксе извращался таким образом:
[skip]
Действительно, мсье знает толк в извращениях ;-))
Любой _нормальный_ getty (agetty, getty, mgetty) можно настроить
штатными средствами на использование вместо /bin/login любой другой
программы. Как - описано в документации к соответствующим getty.
Программа, получающая login name и екзекающая rlogin или telnet
на нужный хост, пишется левой ногой за пять минут. Hапример:
-------------------------cut----------------------------------
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define HOST "192.168.2.1"
main(argc,argv)
int argc;
char **argv;
{
register int i;
char buf[80];
#ifdef DEBUG
printf("argc=%d\n", argc);
for (i=0; i< argc; i++) printf("argv[%d] = %s\n", i, argv[i]);
#endif
if ((i=open("/bin/telnet", O_RDONLY)) != -1) {
close(i);
execl("/bin/telnet", "telnet", "-8", "-l",
argv[argc-1], HOST, NULL);
}
else if ((i=open("/bin/rlogin", O_RDONLY)) != -1) {
close(i);
execl("/bin/rlogin", "rlogin", "-8", "-l",
argv[argc-1], HOST, NULL);
}
else {
fprintf(stderr, "\nNo such files: /bin/rlogin or /bin/telnet\n");
exit(1);
}
}
----------------------------------------------------------------------
SY,
--
Yura Kalinichenko | Telephone
Support Engineer of KRON Ltd | voice: (0432) 43-71-60
600-letyja 68, off.27 | fax: (0432) 43-90-83
Vinnitsa, Ukraine | URL: http://www.kron.vinnica.ua--- ifmail v.2.15dev4 * Origin: Kron Ltd. (2:5020/400)
_ RU.UNIX.SCO (2:5077/3.46) _____________________________________ RU.UNIX.SCO _
From : Nickolay Parfenov 2:5053/44.1 23 Feb 00 12:27:35
Subj : теpминал
_______________________________________________________________________________
Hi, Alex Shinkarenko !
Alex Shinkarenko wrote:
DI>> есть машина (term1) pаботающая исключительно как теpминал сеpвеpа
DI>> (srv2), то-есть пользователь логинится на term1, набиpает telnet srv2,
DI>> логинится на srv2 и pаботает.
DI>> как-бы это yпpостить, так что-бы для пользователя логин на term1 был
DI>> pавнозначен логинy на srv2?
AS> Можно завести на term1 пользователя с именем и паpолем таким же как и на
AS> srv2; внести term2 в файл .rhosts этого пользователя на srv2 и вставить
AS> командy rlogin srv2 в .profile на term2. Вpоде как должно pаботать.
Можно еще проще, чтобы вообще не делать домашний каталог и .profile
пользователей на term1, пишется маленькая программка на C (проверки добавить
по вкусу ;) :
#include <unistd.h>
#include <strings.h>
main(int argc, char **argv)
{
char *host, *user;
user = rindex(argv[0], '.');
*user++ = '\0';
host = rindex(argv[0], '.');
*host++ = '\0';
execl("/usr/bin/rlogin", "rlogin", "-8El", user, host, NULL);
}
После чего делаются линки newshell.srv2.user1, newshell.srv2.user2, ... и
эти линки ставятся в /etc/passwd на term1 в качестве шелла соответствующим
пользователям.
P.S. А на term1 пользователи ходят модемом? Если да, то все делается через
mgetty (login.config) без прописывания пользователей на term1.
SY, Hиколай
--
Nickolay N. Parfenov (8452) 24-08-93 24-09-53 EastSoft Ltd.
E-mail: [email protected] FidoNet: 2:5053/44.1
--- ifmail v.2.15 * Origin: EastSoft Ltd. (2:5053/44.1@fidonet)