Как пройти аргументы ARGV в программу C с помощью файла или Python Сценарий в Linux?

Попробуйте ls -l / tmp / lijunda , и вы увидите только имена файлов внутри - вы не сможете ни открывать файлы, ни даже видеть размер файла, разрешения и т. д. для файлов в этом каталоге.

Это потому, что сам каталог содержит только имена файлов и номера inode - и все.

Доступ для чтения к именам файлов контролируется разрешением на чтение.

Доступ к индексным дескрипторам , на которые указывает каталог, управляется разрешением на выполнение, а не разрешением на чтение. Inodes содержат все фактические данные о файле, такие как размер файла, владелец, разрешения, время последнего изменения и физическое расположение (на вашем физическом жестком диске) двоичных данных, которые составляют содержимое файла.

Чтобы просмотреть имена файлов в каталоге , вам необходимо разрешение на чтение в каталоге. Для этого вам не нужны разрешения на выполнение или запись.

Для просмотра подробностей файлов в каталоге , то есть для просмотра содержимого inode - вам необходимы разрешения на выполнение в каталоге. Разрешение на чтение в каталоге не имеет значения для просмотра сведений о файле , если вы уже знаете имя файла.

Чтобы просмотреть сведения о файлах , имена которых вы еще не знаете, , вам необходимо прочитать и разрешения на выполнение.

И, наконец, , чтобы просмотреть содержимое файла , вам потребуются:

  1. разрешения на чтение самого файла,
  2. разрешения на выполнение для каталога, содержащего file * и
  3. по крайней мере одно из: разрешений на чтение в каталоге, содержащем файл ИЛИ знание имени файла каким-либо другим способом.

См., Например, ниже.

$ whoami
vagrant
$ ls -l
total 12
drwxrwx--x 2 pete pete 4096 Dec 24 08:51 execute_only
drwxrwxr-x 2 pete pete 4096 Dec 24 08:52 read_and_execute
drwxrwxr-- 2 pete pete 4096 Dec 24 08:52 read_only
$ ls -l read_only/
ls: cannot access read_only/mysterious_file: Permission denied
total 0
-????????? ? ? ? ?            ? mysterious_file
$ cat read_only/mysterious_file 
cat: read_only/mysterious_file: Permission denied
$ ls -l execute_only/
ls: cannot open directory execute_only/: Permission denied
$ ls -l execute_only/unicorn_file
-rw-rw-r-- 1 pete pete 55 Dec 24 08:51 execute_only/unicorn_file
$ cat execute_only/unicorn_file
This file only exists for you if you know it's here ;)
$ ls -l read_and_execute/
total 4
-rw-rw-r-- 1 pete pete 83 Dec 24 08:52 jack_sparrow
$ cat read_and_execute/jack_sparrow 
"After the reading, you will be executed."
"That's *Captain* Jack Sparrow to you!"
$ 

* Вам также потребуются разрешения на выполнение для всех родительских каталогов вплоть до корневого, кстати.

0
14.10.2018, 15:26
1 ответ

Я подозреваю, что вы ищете

myprogram "$(python x.py)"

Это возьмет выходные данные скрипта и использует их в качестве первого аргумента для myprogram(argv[1]).

Чтобы использовать содержимое файла в качестве первого аргумента для myprogram, catвместо файла:

myprogram "$(cat file)"
0
28.01.2020, 04:12

Теги

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