Как я мог создать своего рода «режим киоска CLI» при запуске системы?

Вы видите каждую сессию ssh со следующей командой:

[root@router ~]# netstat -tnpa | grep 'ESTABLISHED.*sshd'
tcp        0      0 192.168.1.136:22            192.168.1.147:45852         ESTABLISHED 1341/sshd           
tcp        0      0 192.168.1.136:22            192.168.1.147:45858         ESTABLISHED 1360/sshd

O, возможно, это может быть полезно:

[root@router ~]# ps auxwww | grep sshd:
root      1341  0.0  0.4  97940  3952 ?        Ss   20:31   0:00 sshd: root@pts/0 
root      1360  0.0  0.5  97940  4056 ?        Ss   20:32   0:00 sshd: root@pts/1 
root      1397  0.0  0.1 105300   888 pts/0    S+   20:37   0:00 grep sshd:
4
22.10.2015, 23:19
2 ответа

Вы можете настроить автоматический вход в терминал, изменив параметры программы getty ; если вы используете agetty , вы добавляете - autologin , как показано здесь .

Затем вы можете настроить логин для этого пользователя на все, что захотите. Его не следует указывать в / etc / shells , чтобы пользователь не мог изменить его с помощью chsh .Предполагая, что вам нужна защита от доступа пользователя к обычной оболочке (и, таким образом, возможности выполнять произвольные действия), вам необходимо убедиться, что они не могут попасть туда из вашей программы. Если ваша программа является оболочкой входа в систему, то завершение сеанса просто завершит сеанс и вернется к getty (который затем, предположительно, автоматически вернет вас обратно в ту же программу).

3
27.01.2020, 20:55

Вы можете заменить init простой программой, запускающей ваш сценарий. Я установил виртуальную машину Ubuntu 15.04 и написал эту простую программу, сохраненную как init.c :

int main() {
  system("/bin/bash -c /init.sh");
  return 0;
}

и простой скрипт:

#!/bin/bash
echo Start:
while read line; do
  echo -n "Upside down: "
  echo $line | tr '[unbqdphymwaefjg]' '[nuqbpdyhwmeajf6]'
done
init 0

, скомпилировал и установил ее как root ( убедитесь, что вы сделайте это на виртуальной машине, с которой вы сделали снимок, или иным образом знаете, как исправить свою систему ):

gcc init.c -o init
sudo cp init /init
sudo ln -sf /init /sbin/init
sudo cp init.sh /init.sh

и перезагрузили, и я получаю подсказку, и нет простого способа выйти из строя.

enter image description here

Вы должны иметь возможность объединить это с установщиком OEM , удалить кучу ненужного и создать красивый небольшой ISO-образ.

1
27.01.2020, 20:55

Теги

Похожие вопросы