Конфиденциальность как обычный пользователь против root?

chown на самом деле возвращает ноль при запуске под fakeroot. Таким образом, согласно errno(3):

Его значение имеет значение только в том случае, если возвращаемое значение вызова указывает на ошибку (т.е. -1 от большинства системных вызовов; -1 или NULL от большинства библиотечных функций); функции, которая преуспела, разрешается изменять errno.

Значение в errno не является значимым, и chown на самом деле не завершился неудачей.

Как уже обсуждалось в комментариях, вывод strace содержит EPERM и нефейковые uid/gid, как и ожидалось, поскольку strace трассирует ниже библиотеки fakeroot LD_PRELOAD. Печать uid/gid из программы показывает правильный (faked) вывод.

1
06.06.2018, 15:53
2 ответа

Con ssh puede ejecutar el script en un sistema remoto y reenviar su salida a su máquina segura local:

ssh regularuser@inesecure.host "/path/to/the/script/on/remotehost.sh" > /file/on/your/local/system.txt
1
27.01.2020, 23:32

La raíz tiene todos los privilegios en la máquina, por lo que no hay forma de proteger la salida estándar de la raíz.

Si los datos solo tuvieran que transitar por la máquina (p. a través de una interfaz de red ), una solución sería cifrarlo en la fuente, pero dado que los datos se generan en la misma máquina, el usuario raíz puede modificar fácilmente el script para recuperar los datos sin cifrar.

Como regla general, si no confía en una máquina, no ejecute nada en ella.

Además, hay una contradicción en la oración "Este script genera datos muy confidenciales en la salida estándar" --si se trata de datos muy confidenciales, no debe volcarlos en la salida estándar, a menos que sea el único usuario en la máquina.

1
27.01.2020, 23:32

Теги

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