Многозадачные системы обрабатывают несколько процессов и потоков независимо от количества процессоров или ядер, установленных в системе, и количества «потоков», которые они обрабатывают. Многозадачность работает с использованием квантования времени: ядро и каждый запущенный процесс или поток должны потратить некоторое время на выполнение, а затем система переключается на следующий исполняемый поток. Переключения происходят очень часто, что создает впечатление, что все работает параллельно, даже если это не так.
Все это происходит без каких-либо изменений в API и т. Д. Многоядерные системы в любом случае должны иметь возможность запускать больше потоков, чем они физически поддерживают, одноядерный случай - лишь пример этого.
Описание ЦП как однопоточного относится к одновременной многопоточности (SMT или гиперпоточность в мире Intel), а не к способности ЦП запускать несколько потоков (или процессов, или задач). Добавление функций SMT к процессору не добавляет никаких инструкций, помогающих запускать потоки, оно просто позволяет лучше использовать оборудование в некоторых обстоятельствах.
Предоставление им всем доступа к одной и той же фиктивной учетной записи звучит неразумно. Даже если вы заблокируете его, чтобы не иметь доступа ни к чему, НО smbpasswd
они все равно могут менять пароли друг друга. И всегда есть возможность атаки злонамеренного повышения привилегий.
По сути, это звучит так, как будто вы хотите, чтобы они могли запускать ТОЛЬКО команду smbpasswd
из своей собственной учетной записи пользователя, при этом имея эквивалент учетной записи nologin
.
Этого можно добиться с помощью параметра «ForceCommand» в конфигурации sshd _.
Попробуйте это:
Предоставьте каждому пользователю с учетной записью Samba членство в одной и той же группе. Для нашего примера скажем "sambaOnly":
#From Root
groupadd sambaOnly
usermod -a -G sambaOnly Joe
Затем мы хотим изменить наш конфигурационный файл sshd _, чтобы он имел следующее:
#From Root
cat << EOF >> /etc/ssh/sshd_config
Match Group sambaOnly
ForceCommand smbpasswd
EOF
Престо. Из моего понимания (и краткого тестирования )это означает, что когда они входят в систему через SSH, они автоматически запускают команду smbpasswd
и получают соответствующий запрос. У них никогда не будет возможности получить доступ к оболочке. После завершения команды они автоматически отключаются, снова не получая доступа к оболочке.
Я не уверен на 100%, что удаленный доступ к машине будет удален. Например, если вы используете другой SSH-сервер на том же компьютере, который их не ForceCommand
, они могут войти через него в зависимости от его конфигурации управления доступом.
Кроме того, если у них есть возможность физического доступа к терминалу, они могут войти в систему.
Однако я думаю, что в большинстве ситуаций это достаточно сильный контроль доступа.