Не удалось войти в суперпользователь, используя su

То, что у вас есть, выглядит плохо, но ни Bash, ни sed не слишком хорошо играют с расщеплением на нескольких разделителях; лично я бы использовать AWK и упростить сценарий немного (с помощью изменения AWK IFS становится излишним, обратите внимание, что вам не нужна точка с запятой в конце отчетности в Bash):

#!/bin/bash
read post
declare -A myArr
while read name value; do
    myArr[$name]=$value
done < <(<<<"$post" awk -F= '{print $1,$2}' RS='&|\n')

Команда AWK:

Считывает $post; Разделяет записи по последовательностям амперстанформ / строк новой строки (разделение на строки новой строки - это трюк, чтобы предотвратить остановку цикла while в последней пустой записи); Разделяет поля на последовательностях равных знаков; Печать полей, разделенных разделителем по умолчанию, пробелом.
% cat script.sh 
#!/bin/bash
read post
declare -A myArr
while read name value; do
    myArr[$name]=$value
done < <(<<<"$post" awk -F= '{print $1,$2}' RS='&|\n')
printf '%s %s\n' "${myArr[name]}" "${myArr[age]}"
% bash script.sh 
name=myName&age=myAge
myName myAge
% 
4
задан 26 November 2017 в 16:52

2 ответа

Правильные разрешения для /bin/su должны быть: -rwsr-xr-x

-rwsr-xr-x 1 root root 40128 May 17 2017 /bin/su*

Чтобы исправить эту конкретную проблему, вы должны:

Изменить владельца файла на root: root Изменить права на файл для -rwsr-xr-x

Это можно сделать, используя:

sudo chown root:root /bin/su sudo chmod 4755 /bin/su Первая команда, которая изменяет владельца файла на быть root. Следующая команда изменит разрешение на чтение / выполнение любым пользователем и установит бит s в команду /bin/su.

Q: Почему выполнение chown на /bin/su также удалило биты set-user-id / set-group-id?

A: При выполнении дизайна chown может удалить бит set-user-id / set-group-id. Когда эти биты установлены, выполнение такого файла приведет к запуску файла как владельца двоичного файла, а не к владельцу процесса, который выполняет файл. Изменение владельца файла (или группы) без удаления set-user-id бит приведет к тому, что файл будет выполнен как другой пользователь, а затем запланирован изначально, что может привести к обнаружению безопасности.

-rwsr-xr-x

chown POSIX standard Unless chown is invoked by a process with appropriate privileges, the set-user-ID and set-group-ID bits of a regular file shall be очищается после успешного завершения; биты set-user-ID и set-group-ID других типов файлов могут быть удалены.

В пользовательской странице Ubuntu chown предлагается запустить info coreutils 'chown invocation', чтобы получить полную документацию chown

13.1 ‘chown’: Change file owner and group ========================================= ‘chown’ changes the user and/or group ownership of each given FILE to NEW-OWNER or to the user and group of an existing reference file. Synopsis: .... The ‘chown’ command sometimes clears the set-user-ID or set-group-ID permission bits. This behavior depends on the policy and functionality of the underlying ‘chown’ system call, which may make system-dependent file mode modifications outside the control of the ‘chown’ command. For example, the ‘chown’ command might not affect those bits when invoked by a user with appropriate privileges, or when the bits signify some function other than executable permission (e.g., mandatory locking). When in doubt, check the underlying system behavior.
12
ответ дан 18 July 2018 в 02:33

Правильные разрешения для /bin/su должны быть: -rwsr-xr-x

-rwsr-xr-x 1 root root 40128 May 17 2017 /bin/su*

Чтобы исправить эту конкретную проблему, вы должны:

Изменить владельца файла на root: root Изменить права на файл для -rwsr-xr-x

Это можно сделать, используя:

sudo chown root:root /bin/su sudo chmod 4755 /bin/su Первая команда, которая изменяет владельца файла на быть root. Следующая команда изменит разрешение на чтение / выполнение любым пользователем и установит бит s в команду /bin/su.

Q: Почему выполнение chown на /bin/su также удалило биты set-user-id / set-group-id?

A: При выполнении дизайна chown может удалить бит set-user-id / set-group-id. Когда эти биты установлены, выполнение такого файла приведет к запуску файла как владельца двоичного файла, а не к владельцу процесса, который выполняет файл. Изменение владельца файла (или группы) без удаления set-user-id бит приведет к тому, что файл будет выполнен как другой пользователь, а затем запланирован изначально, что может привести к обнаружению безопасности.

-rwsr-xr-x

chown POSIX standard Unless chown is invoked by a process with appropriate privileges, the set-user-ID and set-group-ID bits of a regular file shall be очищается после успешного завершения; биты set-user-ID и set-group-ID других типов файлов могут быть удалены.

В пользовательской странице Ubuntu chown предлагается запустить info coreutils 'chown invocation', чтобы получить полную документацию chown

13.1 ‘chown’: Change file owner and group ========================================= ‘chown’ changes the user and/or group ownership of each given FILE to NEW-OWNER or to the user and group of an existing reference file. Synopsis: .... The ‘chown’ command sometimes clears the set-user-ID or set-group-ID permission bits. This behavior depends on the policy and functionality of the underlying ‘chown’ system call, which may make system-dependent file mode modifications outside the control of the ‘chown’ command. For example, the ‘chown’ command might not affect those bits when invoked by a user with appropriate privileges, or when the bits signify some function other than executable permission (e.g., mandatory locking). When in doubt, check the underlying system behavior.
12
ответ дан 24 July 2018 в 17:35
  • 1
    Или просто в одной команде chmod: sudo chmod 4755 /bin/su – Videonauth 26 November 2017 в 16:43
  • 2
    @Videonauth - спасибо за комментарий! обновил мой ответ. – Yaron 26 November 2017 в 16:43
  • 3
    Я мог бы объяснить асимметрию, что требуется chown, чтобы попасть в позицию OP, но chown плюс chmod, чтобы вернуться ... – Eric Towers 27 November 2017 в 06:00
  • 4
    @EricTowers - спасибо за предложенное вам объяснение. Я обновил свой ответ и добавил объяснение поведению. – Yaron 27 November 2017 в 13:16
  • 5
    @ jheel-rathod - если я отвечу на ваш вопрос, пожалуйста, accept it – Yaron 3 December 2017 в 18:16

Другие вопросы по тегам:

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