GNU/Linux >> Znalost Linux >  >> Linux

Platný případ použití pro oprávnění „pouze spouštět“ soubor?

Četl jsem o chmodu a jeho osmičkových režimech. Viděl jsem, že 1 se pouze provádí. Jaký je platný případ použití pro oprávnění pouze ke spuštění? Chcete-li spustit soubor, obvykle potřebujete oprávnění ke čtení a spouštění.

$ echo 'echo foo' > say_foo
$ chmod 100 ./say_foo
$ ./say_foo
bash: ./say_foo: Permission denied
$ chmod 500 ./say_foo
$ ./say_foo
foo

Přijatá odpověď:

Skripty prostředí vyžadují ke spuštění oprávnění ke čtení, ale binární soubory ne:

$ cat hello.cpp
#include<iostream>

int main() {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}
$ g++ -o hello hello.cpp
$ chmod 100 hello
$ ./hello
Hello, world!
$ file hello
hello: executable, regular file, no read permission

Zobrazení obsahu souboru a jeho spuštění jsou dvě různé věci. Se skripty shellu tyto věci souvisejí, protože se „provádějí“ „načtením“ do nového shellu (nebo aktuálního), pokud si odpustíte zjednodušení. Proto je musíte umět číst. Binární soubory tento mechanismus nepoužívají.

U adresářů je oprávnění ke spuštění trochu jiné; to znamená, že můžete dělat věci se soubory v rámci tento adresář (např. je číst nebo spouštět). Řekněme tedy, že máte sadu nástrojů v /tools které chcete, aby je lidé mohli používat, ale pouze pokud o nich vědí. chmod 711 /tools . Potom spustitelné věci v /tools lze spustit explicitně (např. /tools/mytool ), ale ls /tools/ bude odepřeno. Podobně lze dokumenty ukládat do /private-docs které lze číst tehdy a pouze tehdy, jsou-li známy názvy souborů.


Linux
  1. Použít _roff k podtržení slov?

  2. Koncepty oprávnění souborů Linux

  3. Přidání sekce do souboru ELF

  1. Je možné použít / v názvu souboru?

  2. Při přidávání textu před nějaký vzor použijte sed s ignorováním velkých a malých písmen

  3. Proč používat shm_open?

  1. Mohu použít jeden disk virtuálního boxu pro více počítačů?

  2. Proč rsync nepoužívá delta-transfer pro místní soubory?

  3. Je dobrý nápad používat git pro řízení verze konfiguračního souboru?