Když pracuji na našich strojích RHEL, používám sudo su - přepnout na root. Jednoho dne překlep znamenal, že jsem napsal sudo su -- místo toho – zdá se mi, že vše bylo stejné jako s jedinou pomlčkou, kromě toho, že jsem byl ve stejné složce jako předtím, než jsem vydal příkaz (s jedinou pomlčkou se ocitám v /root ).
Existují i jiné rozdíly? Je bezpečné to použít ve scénářích, kdy vím, že chci pracovat ve stejném adresáři?
Přijatá odpověď:
Když zadáte dvojitou pomlčku, budete mít stejný zážitek, jako kdybyste právě provedli sudo su bez pomlčky.
Předání jediné pomlčky je stejné jako předání -l nebo --login . Manuál pro su popisuje chování jako:
Poskytněte prostředí podobné tomu, jaké by uživatel očekával, kdyby se uživatel přímo přihlásil.
To zahrnuje nastavení vašeho adresáře na váš domovský adresář a nastavení spousty dalších proměnných prostředí.
Předání dvojitého spojovníku příkazu se obvykle používá k označení konce příznaků příkazového řádku a začátku argumentů bez příznaku. Pokud například spustíte touch -R zobrazí se chyba, že -R není možnost touch , ale pokud spustíte touch -- -R vytvoří soubor s názvem -R . To platí pro mnoho nástrojů příkazového řádku (ls -R provede rekurzivní ls zatímco ls -- -R provede ls na soubor nebo adresář s názvem -R .
Abychom to uzavřeli, když projdete pouze -- na su v podstatě ignoruje -- a chovat se, jako byste neprošli žádnou možností.