Когда выполняется процедура по умолчанию (Default Login script) и что она делает?
Когда выполняется процедура по умолчанию (Default Login script) и что она делает?
Процедура по умолчанию выполняется для пользователя, у которого отсутствует личная процедура регистрации. Она не редактируема (записана в теле утилиты LOGIN.EXE) и выполняет следующие действия:
Приветствует пользователя - Good Morning, SUPERVISOR:
WRITE "Good %GREETING_TIME, %LOGIN_NAME."
MAP DISPLAY OFF
MAP ERRORS OFF
Подавляет сообщения о планировании и ошибках:
MAR DISPLAY OFF
MAR ERRORS OFF
Планирует первый сетевой драйв в корневой каталог тома SYS: (и это правильно).
MAP *1: = SYS:
Пытается перепланировать его же в личный подкаталог пользователя, считая, что он в корневом каталоге тома SYS: (а если пользователей 250 или 1000, неужели они все будут там?):
MAP *1: = SYS:%LOGIN_NAME
Для администратора первый драйв перепланируется в SYS:SYSTEM (у них Norton Commander платный, а команду CD SYSTEM еще и вспомнить надо!):
IF "%1" = "SUPERVISOR" THEN MAP *1: = SYS:SYSTEM
Для NetWare 4.x эта строка имеет вид:
IF "%1" = "ADMIN" OR "%1" = "SUPERVISOR" THEN MAP *1: = SYS:SYSTEM
Аккуратно вставляет каталог с утилитами в начало пути PATH:
MAP INS S1: = SYS:PUBLIC
Пытается включить каталог с утилитами DOS в путь, но мало кто заводит каталог SYS:IBM_PC/MSDOS/6.22 и помещает в него утилиты:
MAP INS S2: = S1:%MACHINE/%OS/%OS_VERSION
Выводит полученные назначения на экран
MAP DISPLAY ON
MAP
Отменить ее выполнение можно созданием хотя бы фиктивных процедур, пускай содержащих один символ - пробел, но для ясности лучше символ комментария "*" или ";". Можно также в конце системной (контейнерной или профильной) процедуры поставить EXIT, но тогда не будет выполняться ни одна личная процедура.
Начиная с версии 3.65, утилита LOGIN поддерживает команду NO_DEFAULT, нейтрализующую эту заботливость системы