přístupnost proměnné prostředí v linuxu
<p>možná je to triviální otázka, ale jak dostupné jsou proměnné prostředí v linuxu mezi různými uživateli?</p><p>např. pokud alice popraví</p><pre><code>export favorite\_food=`cat /home/alice/fav\_food.txt` </code></pre><p>může eva říct, jaké je alice oblíbené jídlo? (za předpokladu, že alice a eva jsou normální uživatelé, a eva nemá přístup ke čtení pro uživatele <code>/home/alice/fav\_food.txt</code>)</p>
<p>sledujme tok důvěrných dat. v této analýze se rozumí, že cokoli může alice udělat, root může také dělat. přístup k datům by mohl mít také externí pozorovatel „o úroveň výš“ (např. s ​​fyzickým přístupem k snoop na diskové sběrnici nebo v hypervizoru, pokud je kód spuštěn ve virtuálním stroji).</p><p>nejprve jsou data načtena ze souboru. za předpokladu, že pouze alice má oprávnění ke čtení souboru a soubor není jinak uniknut, pouze alice může volat <code>cat /home/alice/fav\_food.txt</code> úspěšně. data jsou pak v paměti procesu <code>cat</code>, kde k němu má přístup pouze tento proces. data jsou přenášena potrubím z příkazu <code>cat</code> do volajícího prostředí; pouze dva zúčastněné procesy mohou vidět data na potrubí. data jsou pak v paměti procesu shell, opět soukromá pro tento proces.</p><p>v určitém okamžiku data skončí v prostředí shell. v závislosti na prostředí se to může stát, když je proveden příkaz <code>export</code>, nebo pouze když prostředí provádí externí program. v tomto okamžiku budou data argumentem systémového volání <a href="http://en.wikipedia.org/wiki/execve"><code>execve</code></a> . po tomto volání budou data v prostředí podřízeného procesu.</p><p>prostředí procesu je stejně soukromé jako zbytek paměti tohoto procesu (z <a href="http://lxr.linux.no/#linux+v3.3.2/include/linux/mm\_types.h#l330"><code>mm-&gt;env\_start</code></a> až <code>mm-&gt;env\_end</code> na mapě paměti procesu). je to <a href="http://lxr.linux.no/#linux+v3.3.2/fs/binfmt\_elf.c#l297">sousedící s hromadou výchozích vláken</a> . existuje však zvláštní mechanismus, který umožňuje jiným procesům prohlížet kopii prostředí: soubor <code>environ</code> v <a href="http://www.kernel.org/doc/documentation/filesystems/proc.txt"><code>/proc</code> adresář</a> (<code>/proc/$pid/environ</code>). tento soubor je <a href="http://lxr.linux.no/#linux+v3.3.2/fs/proc/base.c#l2975">čitelný pouze jeho vlastníkem</a> , kdo je <a href="http://lxr.linux.no/#linux+v3.3.2/fs/proc/base.c#l1541">živatel, který proces spouští</a> (u privilegovaného procesu je to efektivní uid). (všimněte si, že argumenty příkazového řádku v <code>/proc/$pid/cmdline</code>, na druhé straně, jsou čitelné pro všechny.) můžete auditovat zdroj jádra a ověřit, že je to jediný způsob, jak uniknout prostředí procesu.</p><p>existuje další potenciální zdroj úniku prostředí: během volání <a href="http://lxr.linux.no/#linux+v3.3.2/fs/exec.c#l1451"><code>execve</code></a> . systémové volání <code>execve</code> přímo nevnikne do prostředí. existuje však obecný <a href="http://lxr.linux.no/#linux+v3.3.2/kernel/auditsc.c">mechanismus audit</a> , který dokáže protokolovat argumenty každého systémového volání, včetně <code>execve</code>. pokud je tedy auditování povoleno, lze prostředí poslat přes <a href="http://people.redhat.com/sgrubb/audit/">mechanismus audit</a> a skončit v souboru protokolu. v slušně nakonfigurovaném systému má přístup k souboru protokolu pouze administrátor (v mé výchozí instalaci debianu je to <code>/var/log/audit/audit.log</code>, čitelné pouze rootem a zapisováno démonem <code>auditd</code> spuštěným jako root).</p><p>lhal jsem výše: napsal jsem, že paměť procesu nelze přečíst jiným procesem. ve skutečnosti to není pravda: linux stejně jako všechny unices implementuje systémové volání <a href="http://en.wikipedia.org/wiki/ptrace"><code>ptrace</code></a> . toto systémové volání umožňuje procesu zkontrolovat paměť a dokonce provést kód v kontextu jiného procesu. to umožňuje debuggerům existovat. alici dokáže sledovat pouze alice. pokud je proces privilegován (setuid nebo setgid), může jej sledovat pouze root.</p><p>závěr: <strong> prostředí procesu je k dispozici pouze uživateli (euid), který proces spouští </strong>.</p><p>pamatujte, že předpokládám, že neexistuje žádný jiný proces, který by mohl data vytéct. na normální instalaci systému linux neexistuje žádný kořenový program setuid, který by mohl vystavit prostředí procesu. (u některých starších odvětví byl <code>ps</code> kořenový program setuid, který analyzoval nějakou paměť jádra; některé varianty by šťastně zobrazovaly prostředí procesu všem a všem. v linuxu je <code>ps</code> bez oprávnění a získává jeho data z <code>/proc</code> jako každý jiný.).</p><p>(všimněte si, že to platí pro rozumně aktuální verze linuxu. před velmi dlouhou dobou si myslím, že v 1.x jaderných dnech bylo prostředí čitelné na celém světě.)</p>
Předpokládám, že je to prostředí s cestovními profily (=profily na serveru).   
  
Pokud má mít Adam to samé co teď má Eva ale pak už může cokoliv měnit a neprojeví se to Evě potom stačí kopie profilu (vlastnosti systému, profily uživatelů... přené umístění záleží na verzi klientského OS)  
  
Pokud má mít Adam i Eva jakoby sdílený profil (co změní Adam se změní i Evě) tak to si skoro troufnu říct, že to nejde (anebo to není vůbec dobrý nápad, co když se přihlásí oba najednou z různých PC....)  
  
Ještě je možné vyrobit mandatorní (neměnný) profil, jako vzor tohoto profilu se použije jeden uživatel, ostatní kterým se tento profil nastaví ho vidí pořád stejný a nemůžou v něm nic změnit (resp. vše co změní se po odhlášení ztratí - používá se třeba na sdílené účty ve školách...)  
  
Každopádně kolem profilů to není jen tak, musí se dát pozor na oprávnění... jinak to nefunguje, pokud se kopírují profily na Windows XP (jinde nemám ověřeno) tak je potřeba dodržet pár věcí:  
- profil nesmí být používaný (operaci dělat z jiného administrátorského účtu a po odhlášení kopírovaného profilu nejlépe restartovat, jinak se může stát že ho kopírovat nejde...)  
- ač to zní divně, je třeba mít nastaveno "zobrazovat skryté a systémové soubory", jinak se tyto soubory nezkopírují, profil je potom neúplný (ztratí se některá nastavení...) Já mám v Linuxu akcelerovanej desktop a vy ve Windowsech ne. Já v linuxu nemám viry, rootkity a ostatní bordel, kdežto vy ve Windowsech furt. Mě nehrozí, že mi spadne počítač, kdežto vám vjednomkuse. Já si můžu nastavit všechny barvičky v KDE, protože KDE rulezzz a ve windowsech je to natvrdo šedé. Já mám zadarmo v Linuxu defaultně předinstalované už i aplikace iptables, xmms a mozilla. Linux má OBROVSKY VELKÝ UPTIME, daleko větší než ty vaše posraný náhražky operačního systému. Vy musíte složitě klikat, jenže já, fiškus, si napíšu do commandlajny jen if [ -f ~/.bashrc ]; then . ~/.bashrc; fi. Kdybyste nebyli vymaštění imbecilové tak byste už dávno nádherný kvalitní operační systém Linux používali jako každý normální člověk !!! Jste jen tupci a hovada jdoucí s davem. LINUX RULEZZZZZZ!!!!!!! Beztak je máte ukradený vy socky s nagelovanejma vlasama. Je mi z vás na blití. Já mám v Linuxu akcelerovanej desktop a vy ve Windowsech ne. Já v linuxu nemám viry, rootkity a ostatní bordel, kdežto vy ve Windowsech furt. Mě nehrozí, že mi spadne počítač, kdežto vám vjednomkuse. Já si můžu nastavit všechny barvičky v KDE, protože KDE rulezzz a ve windowsech je to natvrdo šedé. Já mám zadarmo v Linuxu defaultně předinstalované už i aplikace iptables, xmms a mozilla. Linux má OBROVSKY VELKÝ UPTIME, daleko větší než ty vaše posraný náhražky operačního systému. Vy musíte složitě klikat, jenže já, fiškus, si napíšu do commandlajny jen if [ -f ~/.bashrc ]; then . ~/.bashrc; fi. Kdybyste nebyli vymaštění imbecilové tak byste už dávno nádherný kvalitní operační systém Linux používali jako každý normální člověk !!! Jste jen tupci a hovada jdoucí s davem. LINUX RULEZZZZZZ!!!!!!! Beztak je máte ukradený vy socky s nagelovanejma vlasama. Je mi z vás na blití Máš nastavenou domácí/pracovní síť neboveřejnou? V pracovní/domácí je ten port otevřený, ve veřejné zavřený. Když nastavíš veřejnou (zavřeš ten port), tak nebudeš moci kopírovat data z počítače na počítač.Nebezpečné je to v tom ohledu, že když se ti dostane ramsonware na jeden počítač, zašifruje ti rovnou i sdílené složky na druhém počítači, pokud tam máš povolený přístup. Videl bych to na prava na slozce. Pouzivam osobne XP, ale na nich se musi v moznostech slozky odzaskrtnout pole pouzivat zjednodusene sdileni. Po te pri kazdem nastavovani sdileni slozky pribude zalozka s pravama, kde se da nastavit uzivatel nebo skupina, ktera do slozky muze vstupovat, zapisovat atd. Ano, budete muset převést klíče. Mac a Linux fungují stejně, ukládání klíče `~/.gnupg`. Nejbezpečnější způsob, jak přenést soubory je použití `scp`(část SSH):



```
scp -rp ~/.gnupg othermachine:

```

Nicméně, budete muset mít `ssh`práci jako první.


Přenos je, řekněme, USB flash disk není tak skvělý nápad, protože váš soukromý klíč bude zanechal na této jednotce i poté, co jste odstranili soubor. I když je chráněna přístupovým heslem, pokud se někdo dostal do rukou kopie souboru klíčů mohli připojit dlouhotrvající útok hrubou silou na něj na svém lesiure.


Nevím o umístění adresáře systému Windows. Dokumentace gpg řekne, a obsah pak bude téměř jistě být stejné.


Kopírování celé klíčenku je rychlá a snadná, ale někdy chcete být schopen se pohybovat jednotlivé klíče mezi stroji bez přepisování celý klíčenku a ztrátě klíče, které již existují. Kopírování jednotlivých kláves volitelně může být provedeno s `gpg --export-secret-key`a `gpg --import`. Pokud máte SSH přístup k cílovému počítači, můžete to udělat s trubkou a nepotřebují k ukládání průběžném klíč kdekoliv:


Pokud jste na počítači, který již má klíč:



```
gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import

```

Pokud jste na počítači, který potřebuje klíč:



```
ssh othermachine gpg --export-secret-key SOMEKEYID | gpg --import

```

Pokud `gpg`není v jednom z výchozích míst na vzdáleném počítači (např je v `/opt/local/bin`počítači Mac), budete muset dát svou plnou cestu k ssh, nebo symbolický odkaz do jednoho ze standardních místech, jako jsou `/usr/local/bin`.


Všimněte si, že data, která je přenesena je stále chráněn přístupové heslo a klíč bude mít stejné přístupové heslo do místa určení, jak tomu bylo u zdroje. Chcete-li mít různé hesel v každém místě, budete muset změnit přístupové heslo na místo určení, nebo ji změnit dočasně u zdroje před exportem. Potřeboval jsem sdílet tajný klíč s kolegou, s cílem dát mu možnost aktualizovat si Debian balíček repo oba řídit, ale nechtěl jsem se podělil o své přístupové heslo s ním. Tak jsem změnil přístupové heslo na něco dočasného, ​​poslal mu exportovaný klíč (podle gpg šifrované e-mailu!), Řekl mu dočasné heslo ústně, a požádal ho, aby nastavit nové přístupové heslo ihned po importu klíč. Pak jsem změnil přístupové heslo na mém kopie klíče zpět na to, co to bylo původně. Skontroluj premenné prostredia "tmp", "temp", či majú plné prístupové práva, users, system, trustedinstaller, administrators.Pri sťahovaní dát (ak nie je výrobcom SW určené inak), sa ukladá vo väčšine záložný súbor do zložky; C:\Users\users\AppData\Local\Temp\*.*Aktivuj swap (pagefile) aspoň na 512MB alebo nastav na max. 4096MB. Editovat je můžeš prakticky na čemkoliv. Ovšem otázka je, jak dlouho budeš na všechno čekat :) <p> <a href="http://en.wikipedia.org/wiki/mac\_os#mac\_os\_x">mac os</a> je založeno na kódové bázi <a href="http://en.wikipedia.org/wiki/bsd"> bsd </a> , zatímco linux je nezávislý vývoj unixového systému. to znamená, že tyto systémy jsou podobné, ale nikoli <a href="http://en.wikipedia.org/wiki/binary\_compatibility">binární kompatibilní</a> .</p><p>kromě toho má mac os mnoho aplikací, které nejsou otevřeným zdrojem a jsou postaveny na knihovnách, které nejsou otevřeným zdrojem. z tohoto důvodu není možné tyto aplikace provozovat v systému linux, aniž by byly vlastníkem autorských práv těchto aplikací a knihoven.</p> Už jsi zkusil ten linux??Přece nebudeš něco reklamovat/opravovat pokud nevíš že je to vadné....![](/Client.Images/smileys/7.gif)