Конфиденциальность при удаленном подключении к ubuntu?
Всем привет. Если я создам 2 супер пользователя в систему убунту. Например: user1 и user2.
И когда будучи залогинен в системе под user1 позволю подключиться к своему пк удаленно, то сможет ли человек подключенный удаленно перейти с одного моего профиля убунту на другой если не знает пароля?
в sudoers можно запретить некоторые команды. В вашем случае нужно запретить passwd и su
Anonymous, так не работает. Потому что система разрешений у sudo чисто текстовая, а никто не запрещает создать ссылку на нужную программу с другим именем и запускать из-под sudo её, или запускать скрипт, который делает нужные действия.
jcmvbkbc, Сейчас проверил, да. Символьная ссылка обходит правила sudoers.
Спросил все-таки у ChatGPT - он говорит, что нужен SELinux или AppArrmor.
Правда насчет этого я не очень уверен
Если пользователь создаст символьную ссылку и переименует программу su, то это может обойти ограничение, которое вы установили. Один из способов предотвратить это - использовать механизмы контроля целостности файловой системы, такие как SELinux или AppArmor. Эти механизмы позволяют определить правила, которые контролируют доступ к определенным файлам и программам на более низком уровне, чем права sudo.
SELinux и AppArmor позволяют задать политику безопасности, которая ограничивает доступ к определенным файлам и программам даже для пользователей с правами sudo. При попытке обойти ограничения, создавая символьную ссылку и переименовывая программу, эти механизмы могут обнаружить такое поведение и запретить доступ к измененной программе.
Подробности о настройке и использовании SELinux или AppArmor зависят от вашей операционной системы и дистрибутива. Рекомендуется обратиться к документации вашей операционной системы или к администратору системы для получения более подробной информации о том, как настроить и использовать эти механизмы безопасности для предотвращения обхода ограничений доступа к программам.
jcmvbkbc, остается один вариант - запретить все команды и разрешить только определенные. То есть делать не блэклист, а вайтлист.
Но это заморочно, конечно же.
UPD. Подумал хорошенько, а ведь мы вряд-ли будем запрещать cp или ln... можно взять удалить бинарник какой-то программы из вайтлиста и поставить переименнованную запрещённую программу под видом программы из вайтлиста....
Везде лазейки есть...
Уж тогда вообще не давать права sudo
И то, мне кажется что даже никакой SELinux и AppArmor не спасет, так как можно собрать исходники программы тем самым переименовав ее везде и поменять некоторые фрагменты кода. И все, правила ты обошел. Тоже лазейка есть.
Anonymous, нет, не везде. Можно разрешать sudo по полному пути неинтерактивным исполняемым файлам которые пользователь не может менять. Ну и надо понимать, что эти исполняемые файлы делают, в частности, что их нельзя заставить вызвать какой-нибудь шелл или что-нибудь типа того.
Господа, вы бредите? Суперюзер (с UID 0) - это пользователь, для которого, если не принимать некоторых мер, не действует система защиты линуха. Два суперпользователя будут иметь полный доступ к системе, в том числе и к профилям друг друга.
CityCat4, все-таки sudoer != root, по крайней мере команды под sudo в логах отображаются как команды от имени этого пользователя, а если делать что-то от рута (хотя бы через sudo su), то в логах будет именно root (впрочем это чуть-ли не единственное отличие и никто не мешает подменить логи).
К стати, а через selinux нельзя сделать "недосудоера", который не сможет менять настройки безопасности и других пользователей?
суперпользователь в линуксе один, это тот у которого UID=0
то есть ваши два суперпользователя не имеют суперюзерских прав. они видимо просто имеют доступ к sudo чтобы стать рутом.
А рут может просто выполнить su и стать другим юзером даже без пароля.