Компания Microsoft представила собственную реализацию утилиты sudo, предназначенную для организации выборочного выполнения команд в терминале с правами администратора. Утилита включена в тестовые сборки Windows 11 Insider Preview Build 26052 (активируется в секции настроек "Developer Features"), войдёт в состав следующего обновления Windows 11 и в будущем возможно будет портирована для Windows 10. Код утилиты планируют открыть под лицензией MIT (в настоящий момент доступен только каркас репозитория и обвязка на PowerShell).

Утилита написана с нуля с оглядкой на интеграцию с Windows и лишь концептуально реализует идеи классического проекта sudo, используемого в Linux, отличаясь от него на уровне опций командной строки и логики делегирования полномочий. Утилита также пока отстаёт по функциональности от существующего независимого проекта gsudo, развивающего аналог sudo для Windows, распространяемый под лицензией MIT.

Из особенностей sudo от Microsoft отмечается вывод диалога подтверждения операции, запуск приложений в новом окне (forceNewWindow), по месту (normal) или в режиме с блокированием ввода данных (disableInput). В отличие от уже имеющейся утилиты runas, sudo от Microsoft поддерживает только выполнение программ с предоставлением полномочий администратора и не может применяться для запуска под другими пользователями. Кроме того sudo не запрашивает пароль администратора, а применяет механизм UAC (User Account Control) для верификации запроса.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter <<<

  • torvn77
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    К стати я вспомнил, у них же есть опция запуска run as, так что пусть так бы и назвали команду run и дали ему опцию --as

    • odalist
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      у них же есть опция запуска run as

      Пусть делают то, что хотят. Мне глубоко пофигу на виндовозные проблемы.

      • torvn77
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        Если учесть что нормальной документации на Linux’совое sudo нет и те крохи что есть начнут вытеснятся из сети примерами sudo из Винды то не у них, а у нас будет форменный пипец, по крайней мере пока кто документацию на sudo не напишет( и ведь не напишет, так как не написали до сих пор)

        • TheAnonymous
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          Надо ещё определиться, что документировать, когда кто в лес, кто по дрова. В тему судо, есть два su (почти два стула), одно сбрасывает переменные, другое нет, и соответственно /sbin в PATH присутствует, или нет. В каждом дистрибутиве сами решают, что использовать (в gentoo есть USE-флаг, например). А в дебиане до какой-то версии (вроде debian 9) была одна реализация, можно было писать просто su , а в следующей перешли на другую, и теперь надо набирать su - , чтобы не было проблем с путями.

          • cryptOP
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            ты на генту что ли пересидел. всю жизнь su и su минус работали.

                 -l      Simulate a full login.  The environment is discarded except for
                         HOME, SHELL, PATH, TERM, and USER.  HOME and SHELL are modified
                         as above.  USER is set to the target login.  PATH is set to
                         “/bin:/usr/bin”.  TERM is imported from your current environment.
                         Environment variables may be set or overridden from the login
                         class capabilities database according to the class of the target
                         login.  The invoked shell is the target login's, and su will
                         change directory to the target login's home directory.  Resource
                         limits and session priority are modified to that for the target
                         account's login class.
            
                 -       (no letter) The same as -l.
            
            

            это из FreeBSD, а в ней такие вещи по 20 лет не меняются.

            • TheAnonymous
              link
              fedilink
              arrow-up
              0
              ·
              2 years ago

              В дебиане https://sources.debian.org/src/util-linux/2.33.1-0.1/debian/util-linux.NEWS/ The util-linux implementation of /bin/su is now used, replacing the one previously supplied by src:shadow (shipped in login package), and bringing Debian in line with other modern distributions. The two implementations are very similar but have some minor differences (and there might be more that was not yet noticed ofcourse), e.g.

              • new ‘su’ (with no args, i.e. when preserving the environment) also preserves PATH and IFS, while old su would always reset PATH and IFS even in ‘preserve environment’ mode.
              • new ‘su -’ (creating new environment) will do just that, while old su would always preserve content of DISPLAY and XAUTHORITY environment variables. Set them as needed (but beware X doesn’t give you any real privileges separation anyway if you can access an X server of another user). See pam_xauth(8) if you want to reconfigure pam for seamless xauth keys.
              • su ‘’ (empty user string) used to give root, but now returns an error.
              • previously su only had one pam config, but now ‘su -’ is configured separately in /etc/pam.d/su-l. This file additionally invokes ‘pam_keyinit’ to revoke the session keyring.

              The first difference is probably the most user visible one. Doing plain ‘su’ is a really bad idea for many reasons, so using ‘su -’ is strongly recommended to always get a newly set up environment similar to a normal login. If you want to restore behaviour more similar to the previous one you can add ‘ALWAYS_SET_PATH yes’ in /etc/login.defs. В debian 9 su из shadow, в 10 - из util-linux

              • cryptOP
                link
                fedilink
                arrow-up
                0
                ·
                2 years ago

                вот поэтому я линукс и возненавидел. вечно кровати двигают. вечно ломают старое поведение.

                man rhel6 такой:

                DESCRIPTION
                       Change the effective user id and group id to that of USER.
                
                       -, -l, --login
                              make the shell a login shell, clears all envvars except for TERM, initializes HOME, SHELL, USER, LOGNAME and PATH
                
                
              • cryptOP
                link
                fedilink
                arrow-up
                0
                ·
                2 years ago

                причем оцени, во фряхе su интегрирован с логин группами

                determines session accounting,
                     resource limits and user environment settings.  It is used by various
                     programs in the system to set up a user's login environment and to
                     enforce policy, accounting and administrative restrictions.  It also
                     provides the means by which users are able to be authenticated to the
                     system and the types of authentication available.
                

                а в линуксе, я уже забыл, какая по счету надстройка для этого.

          • torvn77
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            Надо ещё определиться, что документировать, когда кто в лес, кто по дрова.

            Для начала дать исчерпывающее И УДОБОЧИТАЕМОЕ описание языка конфига sudo, чтобы не надо было додумывать смыслы или выяснять значения опций или параметров экспериментом.

        • odalist
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          Если учесть что нормальной документации на Linux’совое sudo нет

          Не выдумывай

          sudo из Винды то не у них, а у нас будет форменный пипец

          Даже не знаю что тебе ответить. Полнейший бред…кто, работая с Линуксом, пойдет читать мануалы для винды…

          • torvn77
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            Это только показывает что реально ты настройкой sudo не занимался, потому что из этого мана ты ни как не поймёшь что значит
            ALL ALL=(ALL) ALL
            и куда там вкорячивать NOPASSWD и что это вообще такое.

            По факту после сбора отрывочных примеров из интернета мне пришлось остальное доотгадывать с помощью подстановки разных значений из /etc/hosts .

            кто, работая с Линуксом, пойдет читать мануалы для винды…

            А там не будет написано что это пример для винды, просто приведут пример из винды и всё.
            И всё это отправит ссылки по реальному линуксовому sudo в глубокое дно поисковой выдачи.

            П.С. В твоём примере язык описания sudoers вообще не расписан, то есть ты даже не понял того что даёшь ссылку на не тот мануал.

            • odalist
              link
              fedilink
              arrow-up
              0
              ·
              2 years ago

              Это только показывает что реально ты настройкой sudo не занимался

              Я не понимаю, о какой настройке ты говоришь…если не хватает мануала, можно Arch wiki почитать.

              твоём примере язык описания sudoers вообще не расписан

              Речь шла про Linux’совое sudo, а не про sudoers.

              А там не будет написано что это пример для винды, просто приведут пример из винды и всё.

              Если бы у бабушки был ху…, то она была бы дедушкой

              • torvn77
                link
                fedilink
                arrow-up
                0
                ·
                2 years ago

                Оно и видно, что в sudo ты не разбираешься, а мнение иметь хочешь.

                • odalist
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  2 years ago

                  что в sudo ты не разбираешься

                  А ты?

                  • torvn77
                    link
                    fedilink
                    arrow-up
                    0
                    ·
                    2 years ago

                    Я не эксперт, но разбираюсь больше чем ты.

                    • odalist
                      link
                      fedilink
                      arrow-up
                      0
                      ·
                      2 years ago

                      Я не эксперт

                      Но свое икспердное мнение высказал.

                      но разбираюсь больше чем ты.

                      Ну, тогда ok. Держи нас в курсе.

      • Александра Седакова
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        Пусть делают то, что хотят.

        Мелкософт уже никто и ничто не спасет, чтобы они не добавляли в свою ОС.

    • TheAnonymous
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      команда RunAs присутствует в винде ещё с Windows 2000, держу в курсе