Может файл, который является исполняемым файлом быть считанным?

Не делайте этого - это вводит другую hugh систему во что-то столь же простое как пишущий файлы журнала. Сброс SQL Server прерывает процесс входа.

То, что я Делаю:

  • Файлы журнала на диск
  • Обычные сценарии загрузки, загружающие их в SQL-сервер. На ошибке они просто перезагружаются после часа со следующей попыткой ;)
8
задан 20 January 2012 в 00:47
4 ответа

Файл с разрешениями -rwx-wx-wx имеет разрешения на чтение / запись / выполнение для владельца и разрешения на запись / выполнение (но не на чтение) для всех остальных. .

Если это сценарий (обычно текстовый файл с #! в первой строке), то он не может выполняться другими, потому что выполнение сценария действительно выполняет интерпретатор, который должен уметь читать сценарий. (Интерпретатор должен быть двоичным, а не другим скриптом.) (На самом деле, это не так для всех систем; Ubuntu с ядром Linux 3.2.0 позволяет самому интерпретатору быть интерпретируемым скриптом. Кажется, есть предел около 4 уровней. Это вряд ли будет иметь отношение к этому вопросу.)

Если это двоичный исполняемый файл, он может выполняться напрямую, но его содержимое может ' не читать. Это означает, например, что кто-то, кроме владельца, может запустить его как команду, но не может получить копию исполняемого файла.

Конечно, для выполнения требуется чтение, но оно читается ядром, а не пользователем. . Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

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

Конечно, для выполнения требуется чтение, но оно читается ядром, а не пользователем. Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

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

Конечно, для выполнения требуется чтение, но оно читается ядром, а не пользователем. Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

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

Конечно, для выполнения требуется чтение, но оно читается ядром, а не пользователем. Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

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

Конечно, для выполнения требуется чтение, но оно читается ядром, а не пользователем. Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

t получить копию исполняемого файла.

Конечно, выполнение требует чтения, но оно читается ядром, а не пользователем. Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

t получить копию исполняемого файла.

Конечно, для выполнения требуется чтение, но оно читается ядром, а не пользователем. Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

Возможно, вы сможете получить некоторую информацию о содержимом исполняемого файла, исследуя память процесса во время его работы, но я сомневаюсь, что вы сможете восстановить двоичный исполняемый файл. И если исполняемый файл установлен с идентификатором setuid, вы не можете проверить память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - это очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

t проверять память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

t проверять память процесса (если у вас нет доступа к учетной записи, под которой он выполняется).

Между прочим, -rwx-wx-wx - очень странный набор разрешений; он защищает файл от чтения кем-либо, кроме владельца, но позволяет любому изменять его. Я не могу придумать случая, когда это имело бы смысл.

17
ответ дан 2 December 2019 в 22:42

С этими разрешениями только владелец файла может его выполнить.

Другие пользователи могут записывать в него, но не выполнять его (поскольку выполнение в этом случае подразумевает возможность его чтения ), но они могут писать в него как в своего рода черный ящик:

user1:~$ cd /tmp
user1:/tmp$ echo "hostname" > testfile.sh
user1:/tmp$ chmod +x testfile.sh 
user1:/tmp$ ./testfile.sh  
server.example.com

user1:/tmp$ chmod 733 testfile.sh 
user1:/tmp$ ls -l testfile.sh 
-rwx-wx-wx 1 user1 user1 9 Jan 19 21:09 testfile.sh

user1:/tmp$ sudo su - user2
user2:~$ cd /tmp
user2:/tmp$ ./testfile.sh  
./testfile.sh: Permission denied
user2:/tmp$ cat testfile.sh 
cat: testfile.sh: Permission denied

user2:/tmp$ echo 'echo hello' >> testfile.sh 
user2:/tmp$ ./testfile.sh  
./testfile.sh: Permission denied

user2:/tmp$ logout

user1:/tmp$ ./testfile.sh
server.example.com
hello
6
ответ дан 2 December 2019 в 22:42

Простой ответ: нет : только системный вызов exec может читать файл, не требуя доступа для чтения (хотя и требует ] выполнить доступ). открыть с O_RDONLY или O_RDWR не удастся.

2
ответ дан 2 December 2019 в 22:42

Конечно, любой файл может быть прочитан пользователем root.

Кроме того, загрузчик системы , управление памятью, модуль подкачки и т. д. будут читать файл с разрешением 'x', иначе он не может быть выполнен.

Возможными недостатками в раскрытии исполняемого содержимого могут быть файл / proc для процесса, файлы ядра или использование отладчика.

1
ответ дан 2 December 2019 в 22:42

Теги

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