Языки запросов должны иметь приоритет оператора ИЛИ выше, чем приоритет И?

Другая вещь отметить вот состоит в том, что ограничение здесь от удара, а не *отклоняют саму систему. Bash на самом деле делает проверки на сценариях SUID, чтобы только выполнить их с корнем EUID. При взятии более старых оболочек Вы будете часто получать то, что Вы хотели из поля. Например, sh не делает этот вид из проверок:

$ cat wrapper.c
int main(void)
{
            system("/bin/sh -c whoami");
}

$ ls -l wrapper
-rwsr-sr-x 1 root users 8887 Feb 17 14:15 wrapper
$ ./wrapper
root

С ударом:

$ cat wrapper.c
int main(void)
{
            system("/bin/bash -c whoami");
}

$ ls -l wrapper
-rwsr-sr-x 1 root users 8887 Feb 17 14:18 wrapper
$ ./wrapper
skinp

однако, ответ Tom обычно является способом пойти для того, чтобы сделать обертку для корневых программ SUID

5
задан alpav 23 October 2009 в 18:11
поделиться

4 ответа

Considering the fact that the background of OR and AND is from mathematical logic where they have well defined precedence, you can not violate that precedence in your design without confusing a VAST majority of the users.

9
ответ дан 18 December 2019 в 06:23
поделиться

Я думаю, что вы упускаете пункт приоритета операторов. Они существуют просто для удобства программиста / автора книг. Использование порядка операций делает так, что некоторые предложения могут быть написаны без скобок, но использование скобок гарантирует, что читатель точно знает, что делает код, особенно когда разные языки имеют разный порядок операций.

3
ответ дан 18 December 2019 в 06:23
поделиться

Я бы предпочел согласованность везде, в коде, SQL, поисковых запросах, чтобы мне не приходилось вспоминать, как это пойдет в данной конкретной ситуации.

9
ответ дан 18 December 2019 в 06:23
поделиться

Я не знаю ни одного языка, который бы это делал, но, возможно, было бы ошибкой комбинировать И и ИЛИ без скобок. Это очень частая причина глупых ошибок.

3
ответ дан 18 December 2019 в 06:23
поделиться