Итак, как оболочка узнает, где находится мой / other_user?
Не знает. Вы просто неправильно проводите эксперимент. Как видно из руководства по оболочке C, команда cd
изменяет значение переменной home
, если она не указана без аргументов. Если эта переменная не установлена, она не знает, куда сменить каталог, и выводит сообщение об ошибке:
machine:~> set home=/ machine:/home/user> cd machine:~> unset home machine:/> cd cd: No home directory machine:/>
Вы сбросили неправильную переменную. Это не HOME
, переменная среды, это home
внутренняя переменная оболочки C (инициализируется значением первой при запуске оболочки, но в остальном является самостоятельной независимой переменной. Правильно).
используйте эту команду:
sudo iptables -I INPUT -p tcp --dport 4242 -j ACCEPT
последняя строка вашей цепочки suse INPUT
:
0 0 DROP all -- any any anywhere anywhere
что означает DROP
все INPUT
пакет, с помощью этой команды
sudo iptables -I INPUT -p tcp --dport 4242 -j ACCEPT
мы я
вставляем новое правило для принятия входящего пакета вверху и перед запуском DROP
правило
и это правило не работает для нового соединения:
ACCEPT all -- any any anywhere anywhere ctstate ESTABLISHED
, потому что статистика УСТАНОВЛЕНА
означает:
СВЯЗАННЫЙ - соединение новое, но связано с другим соединением, уже разрешенным. УСТАНОВЛЕНО - соединение уже установлено .