-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
switch from using ~/.far2l/tmp to /tmp or /var/tmp #131
Comments
Wanted to report and always forgot :) Basically set to $TMP or how environment variable is called. |
Its not so easy. In order to avoid data leak new directory should be created in temp with denied 'everyone' read access. Also necessary to handle pre-existing directory again in some secure manner - verify its mode&ownership, and don't use it if its incorrect. |
not sure if it is far2l's problem to handle this. |
It's not far concern definitively. If you need to avoid data leakage, mount your own tmp eventually even in tmpfs. |
In mult-user system there can be many users using system together. And unless they're roots, each user should not see data and even file names that another user opens at same moment. Possible attacks include cases when malicious user creates directories/files with names matching to autogenerated by app, running under victim's account. |
Since far targets single-user-desktops at the moment it's not an issue.
It will be even more secure, then simply in $home/.far2l/tmp, because home is accessible for the group and for others!
|
I dont say its too difficult, just need some hustling |
using ~/.far2l/tmp as temporary files storage is not suiteble for SSD users that mount /tmp as tmpfs to save write cycles of device. |
maybe ~/.cache/far2l is the better place for temporary storage then ~./far2l/tmp anyway? and ~/.config/far2l for all other files from ~/.far2l, maybe? https://debian-handbook.info/browse/stable/sect.filesystem-hierarchy.html
this is how google chrome behaves, for example, comparing to mozilla, who inexplicably store everything except cache in ~ (but still store cache inside ~/.cache) |
cache has completely different purpose, it stores data, which are relevant throughout multiple runs and instances. For browser it's for example cached images. On the other hand data in tmp are needed only once at the moment, for example, extracted files from an archive. |
ok, that about moving from ~/.far2l to ~/.config/far2l as suggested by debian recommendations? |
Yep, the ~/.config directory is the right choice for all of the configs. I would create another ticket for it. |
systemd is capable to manage personal tmp's per service, using folders like |
I wouldn't make far2l dependable on systemd. It's too big dependency and there is no reason to use it. If you would like to put some large dependencies, then I'd go with boost (and massively refactor far to use it.)
Or use basic solution as I've described earlier: create directory inside of the $TMP, name should contain "far2l", userid and pid, set it's permissions to 700 and it's done. |
Ненадо boost, прошу. Я уже поимел секс собирая fastuidraw на некоторых устройсвах, по мне так это похуже systemd зависимость, на некоторых девайсах даже systemd есть, а с бустом проблемы. Посмотрел я сорсы unique_path(); в бусте, просто рандомные чиселки генерит, и из-за этого весь буст подключать? |
Большая часть boost'а - header library, потому с ней проблем быть не должно нигде. Мы его вот тоже в эмбеддед используем и отлично. И не только из-за unique_path. Там куча всего хорошего - работа с симлинками и путями, например. |
+1 |
Тем не менее не вся header library, тот же boost::filesystem без либы не взлетит. Основные проблемы начинаются когда рассчитывали на одну версию буста, а в репозитарии другая (ну или совсем нет). А для эмбебеда вы его сами собирали или он там уже был? И так всем теперь придется собирать, и если не повезет (в больших проектах обычно так и есть), собирать именно ту версию на которую было рассчитано. |
Вот утилка https://gist.github.com/lieff/843cf9d2c13f2139e3e2da7db2da6617 которая даунгрейдит необходимую версию glibc. После этого бинарь пойдет вообще везде. |
Тэкс, немного наврал. Статический boost где то есть где-то нет, просто везде есть so и по дефолту везде линкуется с ними, чтобы подключить статические, не сломав остальную линковку надо еще попотеть. Для stdc++ специально на этот случай предусмотрен -static-libstdc++ и c++_static. |
Чем не устраивает динамический boost из репозиториев - не понятно. Все равно под новую систему - собирать надо и не морочить голову. |
Naivly considered myself the most active issue flooder here :) |
Я же написал чем - бинарь становится гораздо менее совместима. Так можно сделать один deb\rpm и он пойдет почти везде, а с бустом мало того что на меньшем количестве дистров пойдет из-за несовместимости версий в репах, так еще и в рамках одного дистра при обновлении буста придется обновлять и deb фара, при этом еще и код менять в некоторых случаях. |
No description provided.
The text was updated successfully, but these errors were encountered: