Используется ли разрешающий режим S для чего-либо?

Team Fortress 2 работает очень хорошо для меня, а также множество других игр, в которых используется движок Source.

Я рекомендую вам использовать обычное Wine без PlayOnLinux. Winetricks полезен, однако.

Steam Games на веб-сайте Linux содержит подробную информацию о том, какие игры можно играть успешно и что вы должны сделать для этого. Team Fortress 2 на этом сайте (Статус: воспроизводится)

Сначала вам нужно установить последнее Wine. Убедитесь, что вы сконфигурировали Wine (смотрите раздел STEAM + WINE CONFIGURATION). Как использовать Winetricks: выберите значение по умолчанию winprefix. OK. Установите DLL или компонент Windows. Важно отметить d3dx9 здесь. Дополнительные пакеты, которые могут потребоваться для некоторых игр: d3dx10, vb6run, vcrun2005, vcrun2008, vcrun2010, physx. OK Установите шрифт OK Марк corefonts и tahoma. OK Затем загрузите Steam и пройдите через установщик. Когда вы создаете учетную запись или просто регистрируетесь, вам не придется загружать Team Fortress 2 через Steam и играть в нее. Обязательно измените настройки видео в игре на самый низкий уровень ASAP (не пропустите «расширенные» настройки видео). Оконный режим в основном лучше. После этого хорошо перезапустить игру.
4
задан 4 October 2017 в 07:30

6 ответов

На выходе отображается S, если setuid установлен, но разрешения пользователя не включают выполнение. Тем не менее, если группа или другая команда может выполнить, бит setuid имеет значение: если кто-то, кроме владельца, выполняет файл, он будет работать как владелец, что является целью setuid. Если владелец может выполнить файл, он будет работать как пользователь в любом случае, поэтому setuid не имеет отношения к владельцу.

Вот простая иллюстрация:

$ cp $(which whoami) foo
$ sudo chmod u=rs,go+x foo
$ stat -c %A foo
-r-Sr-xr-x
$ ./foo
zsh: permission denied: ./foo
$ sudo -u www-data whoami
www-data
$ sudo -u www-data ./foo
muru
3
ответ дан 22 May 2018 в 17:52
  • 1
    Да, если никто не имеет разрешения на выполнение, то setuid не имеет никакого значения. – muru 4 October 2017 в 08:03

Это действительно так. Обычно он должен быть s, когда x установлен в соответствующем файле. Но там, где бит выполнения x был удален, s изменяется на S, чтобы сообщить вам, что хотя setuid используется в этом файле, у него нет x.

В этом случае это не будет выполняться, так как x не установлен. Теперь у нас есть -r-Srwxr-x, что означает o - другие все еще могут выполнить этот скрипт. Поэтому, когда вы меняете любого другого пользователя, чем owner, скрипт будет запускать

Info ls:

 ‘s’
      If the set-user-ID or set-group-ID bit and the corresponding
      executable bit are both set.

 ‘S’
      If the set-user-ID or set-group-ID bit is set but the
      corresponding executable bit is not set.
1
ответ дан 22 May 2018 в 17:52
  • 1
    s без x не бесполезен; другие пользователи все еще могут запускать его как владелец (и эта комбинация согласована и четко определена ). Я не слышал, что причина ls и stat -c %A показывает S в том, чтобы предупредить пользователя, но я полагаю, что это может быть правдой. Я всегда полагал, что это просто показать символ, отличный от s, который понимается как означающий другую возможную комбинацию, чем -, x и s. Я думаю, что это может помочь пересмотреть это и включить некоторые материалы из , которые (удалены) отвечают . – Eliah Kagan 5 October 2017 в 19:32
  • 2
    И какая часть этого другого ответа была бы уместна здесь и какова была бы цель удалить x для владельца файла, который, как ожидается, другие будут использовать с привилегиями owner? – George Udosen 5 October 2017 в 19:53
  • 3
    Ну, в настоящее время этот ответ полезен, но, я думаю, также вводит в заблуждение. Это означает, что бит setuid не действует, если не установлен соответствующий исполняемый бит. Но сброс этого бита не отменяет назначение бита setuid, потому что бит setuid как о том, что происходит, когда others запускает файл, а не то, что происходит, когда владелец запускает файл. Однако, если группа и другие исполняемые биты также удалены , это значит, что бит setuid не имеет эффекта. В , который отвечает , вы объяснили это, например. Это то, что я думаю, поможет здесь. – Eliah Kagan 5 October 2017 в 20:00
  • 4
    хорошо, пожалуйста, взгляните на это сейчас, это лучше? – George Udosen 5 October 2017 в 20:10

Это действительно так. Обычно он должен быть s, когда x установлен в соответствующем файле. Но там, где бит выполнения x был удален, s изменяется на S, чтобы сообщить вам, что хотя setuid используется в этом файле, у него нет x.

В этом случае это не будет выполняться, так как x не установлен. Теперь у нас есть -r-Srwxr-x, что означает o - другие все еще могут выполнить этот скрипт. Поэтому, когда вы меняете любого другого пользователя, чем owner, скрипт будет запускать

Info ls:

‘s’ If the set-user-ID or set-group-ID bit and the corresponding executable bit are both set. ‘S’ If the set-user-ID or set-group-ID bit is set but the corresponding executable bit is not set.
1
ответ дан 18 July 2018 в 05:47

На выходе отображается S, если setuid установлен, но разрешения пользователя не включают выполнение. Тем не менее, если группа или другая команда может выполнить, бит setuid имеет значение: если кто-то, кроме владельца, выполняет файл, он будет работать как владелец, что является целью setuid. Если владелец может выполнить файл, он будет работать как пользователь в любом случае, поэтому setuid не имеет отношения к владельцу.

Вот простая иллюстрация:

$ cp $(which whoami) foo $ sudo chmod u=rs,go+x foo $ stat -c %A foo -r-Sr-xr-x $ ./foo zsh: permission denied: ./foo $ sudo -u www-data whoami www-data $ sudo -u www-data ./foo muru
3
ответ дан 18 July 2018 в 05:47

Это действительно так. Обычно он должен быть s, когда x установлен в соответствующем файле. Но там, где бит выполнения x был удален, s изменяется на S, чтобы сообщить вам, что хотя setuid используется в этом файле, у него нет x.

В этом случае это не будет выполняться, так как x не установлен. Теперь у нас есть -r-Srwxr-x, что означает o - другие все еще могут выполнить этот скрипт. Поэтому, когда вы меняете любого другого пользователя, чем owner, скрипт будет запускать

Info ls:

‘s’ If the set-user-ID or set-group-ID bit and the corresponding executable bit are both set. ‘S’ If the set-user-ID or set-group-ID bit is set but the corresponding executable bit is not set.
1
ответ дан 24 July 2018 в 18:26
  • 1
    s без x не бесполезен; другие пользователи все еще могут запускать его как владелец (и эта комбинация согласована и четко определена ). Я не слышал, что причина ls и stat -c %A показывает S в том, чтобы предупредить пользователя, но я полагаю, что это может быть правдой. Я всегда полагал, что это просто показать символ, отличный от s, который понимается как означающий другую возможную комбинацию, чем -, x и s. Я думаю, что это может помочь пересмотреть это и включить некоторые материалы из , которые (удалены) отвечают . – Eliah Kagan 5 October 2017 в 19:32
  • 2
    И какая часть этого другого ответа была бы уместна здесь и какова была бы цель удалить x для владельца файла, который, как ожидается, другие будут использовать с привилегиями owner? – George Udosen 5 October 2017 в 19:53
  • 3
    Ну, в настоящее время этот ответ полезен, но, я думаю, также вводит в заблуждение. Это означает, что бит setuid не действует, если не установлен соответствующий исполняемый бит. Но сброс этого бита не отменяет назначение бита setuid, потому что бит setuid как о том, что происходит, когда others запускает файл, а не то, что происходит, когда владелец запускает файл. Однако, если группа и другие исполняемые биты также удалены , это значит, что бит setuid не имеет эффекта. В , который отвечает , вы объяснили это, например. Это то, что я думаю, поможет здесь. – Eliah Kagan 5 October 2017 в 20:00
  • 4
    хорошо, пожалуйста, взгляните на это сейчас, это лучше? – George Udosen 5 October 2017 в 20:10

На выходе отображается S, если setuid установлен, но разрешения пользователя не включают выполнение. Тем не менее, если группа или другая команда может выполнить, бит setuid имеет значение: если кто-то, кроме владельца, выполняет файл, он будет работать как владелец, что является целью setuid. Если владелец может выполнить файл, он будет работать как пользователь в любом случае, поэтому setuid не имеет отношения к владельцу.

Вот простая иллюстрация:

$ cp $(which whoami) foo $ sudo chmod u=rs,go+x foo $ stat -c %A foo -r-Sr-xr-x $ ./foo zsh: permission denied: ./foo $ sudo -u www-data whoami www-data $ sudo -u www-data ./foo muru
3
ответ дан 24 July 2018 в 18:26
  • 1
    Да, если никто не имеет разрешения на выполнение, то setuid не имеет никакого значения. – muru 4 October 2017 в 08:03

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

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