Нет!
Основная проблема в том, что .profile
читается только после успешного входа в систему! В этот момент уже запущена полная оболочка, а большинство оболочек создано для обслуживания пользователя, а не для того, чтобы помешать ему делать то, что ему нравится.
Давайте посмотрим, например:
# echo -en "echo byebye; exit" > ~foo/.profile
# ssh foo@localhost
foo@localhost's password:
[...]
byebye
Connection to localhost closed.
Но я все еще могу сказать оболочке сделать что-то совершенно другое. (Например, запустить другую оболочку.)
# ssh foo@localhost -t "/bin/sh"
foo@localhost's password:
$ id
uid=1001(foo) gid=1001(foo) groups=1001(foo)
Вы могли бы изменить оболочку пользователя на что-то более ограниченное, программу, предназначенную только для запроса OTP и последующего запуска оболочки. Но это затруднит выполнение любых действий, требующих запуска другой оболочки. Кроме того, все, что делается в домене пользователя, может быть изменено им обратно, а это не то, чего обычно хотят при аутентификации.
Пожалуйста, делайте аутентификацию там, где ей и место, а это PAM в большинстве Linux.
Аргумент df
-h
является расширением.
Из POSIX: http://pubs.opengroup.org/onlinepubs/007904975/utilities/df.html
реализация UNIX не требуется для реализации -h
. Фактически этого варианта нет в списке.
На самом деле также LSB не определяет -h
, поэтому дистрибутиву «не нужно» его реализовывать: https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB -Core-generic / LSB-Core-generic / df.html
Просто используйте df -k
(размер отображения в килобайтах), который должен иметь одинаковый вывод на обеих платформах.
В разных вариантах Unix используются разные утилиты. Есть кое-что общее (например, все они имеют утилиту df
), но некоторые детали различаются (например, точный формат вывода и доступность определенных параметров, таких как -h
). Linux поставляется с GNU coreutils , который имеет более удобные для пользователя параметры, чем те же самые утилиты в большинстве других вариантов, например, параметр -h
.
Вы можете установить GNU coreutils во многих других вариантах Unix, но я не знаю о NCR, это не совсем современно или широко распространено.
Если NCR не слишком древний, вы можете по крайней мере использовать все параметры, стандартизированные POSIX , который для df
включает -k
для отображения в кБ, а не 512Б, и -P
для отображения тех же столбцов, что и в GNU / Linux df
.
Чтобы узнать, какие параметры поддерживает ваша версия df
, используйте man df
.
Для команд администрирования полезен Rosetta Stone для Unix . Я не знаю аналогичного документа для пользовательских команд, но спецификация POSIX / Single Unix дает представление.