В чем разница между командами «su -s» и «sudo-s»?

В чем разница между двумя командами суперпользователя, su -s и sudo -s ?

Они оба предоставляют оболочку с доступом к учетной записи суперпользователя.

9 Solutions collect form web for “В чем разница между командами «su -s» и «sudo-s»?”

На практике они оба сделают вас суперпользователем. Тем не менее, они делают несколько разные вещи, несколько разными способами.

Во-первых, su - переключает вас в оболочку входа, тогда как sudo -s не делает. На практике это часто означает, что переменные среды не будут переключаться на root для sudo -s . Обратите внимание, что вы можете запускать только su чтобы не получить оболочку входа или sudo -i чтобы получить оболочку входа [не во всех версиях].

Во-вторых, su и su - переключитесь на нового пользователя, попросив вас аутентифицироваться как новый пользователь. sudo -s и sudo -i (и просто регулярное sudo foo ) позволяют запускать команду, для которой вы предварительно авторизованы [см. /etc/sudoers ], возможно, попросив подтвердить текущий идентификатор.

Если вы хотите быть действительно симпатичным, вы также можете запустить sudo su - , который будет запрашивать логин как root ( su - ), выполняемый пользователем root (часть sudo ).

Если пользователь root заблокирован (например, на Ubuntu), вы не сможете входить в систему с правами root, используя su . В этом случае вам нужно будет использовать sudo -s или sudo -i

 su -s 

Будет переключаться на пользователя (в этом случае root) и запускать указанную оболочку или один из нескольких других методов определения оболочки. Это полезно, если вы хотите использовать zsh или другую оболочку, так как root очень быстро … и по какой-то причине вы не используете sudo.

 sudo -s 

Просто запускает оболочку с использованием sudo, которая даст вам корневую оболочку. Вы также можете передать оболочку.

Su -s старше, намного старше, чем команда sudo -s. Я предполагаю, что разработчик пытается максимально упростить переход на использование sudo.

Su – это команда для изменения другому пользователю либо для запуска оболочки, либо для выполнения определенной команды. Вы должны пройти аутентификацию как другой пользователь. Если вы хотите su для root, вам нужен пароль root.

Sudo – это команда для выполнения другой команды (необязательно оболочки) как другого пользователя. Вы должны аутентифицироваться как ваш собственный пользователь . Разрешение использовать sudo (и конкретные вещи, которые вы можете с ним сделать) задает администратор в файле sudoers.

Если вы даете кому-то доступ к su (например, предоставляя им пароль root), то они могут что-либо с ним делать – запускать другие команды, открывать оболочку, изменять пароль, удаленно подключаться через ssh и т. Д. Вы по сути предоставляете им доступ к другой учетной записи, а «su» – это только одна вещь, которую они могут с ней сделать.

Sudo намного более мелкозернистый. Вы можете предоставить привилегии пользователю или группе. Вы можете разрешить пользователю или группе sudo в течение определенного периода времени (например, с понедельника по пятницу, с 9:00 до 17:00). Вы можете указать конкретный список команд, которым они могут быть запущены (например, только / usr / local / bin / run_backup), или вы можете указать конкретного пользователя, которому им разрешено запускать команды как (например, www, backup, staff и т. Д. ).

Помимо гибкости, sudo является лучшим решением во всех случаях, поскольку он не требует доступа к чему-либо, чего пользователь еще не имеет. Если вы даете кому-то доступ к sudo, вы можете отменить его, удалив свою строку в файле sudoers или удалив их из группы sudoers. Если вы удалите свою учетную запись, их доступ исчезнет.

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

  • Su запросит у вас пароль пользователя root .
  • Sudo запросит у вас пароль (и вам нужно будет очистить его для доступа sudo).

Из Википедии :

Su (сокращение для пользователя-заменителя или пользователя коммутатора) – это команда Unix, используемая для запуска оболочки другого пользователя без выхода из системы.

Связанная команда sudo выполняет команду как другой пользователь, но наблюдает набор ограничений, по которым пользователи могут выполнять команды, какие другие пользователи (обычно в файле конфигурации с именем / etc / sudoers, лучше всего редактируются командой visudo). В отличие от su, sudo аутентифицирует пользователей от своего собственного пароля, а не от целевого пользователя (чтобы разрешить делегирование определенных команд конкретным пользователям на определенных хостах без совместного использования паролей между ними и при одновременном смягчении риска для любых автоматических терминалов).

Одна вещь, которая не получает полного ответа, такова: тот, который вы можете использовать, часто зависит от того, какое распространение вы используете и кто его запускает. Один или другой ( su или sudo ), вероятно, не настроен для полного использования по умолчанию. Так, например, как некоторые люди упомянули, OS X и Ubuntu по умолчанию отключили учетную запись root ( su ). Точно так же Debian не предоставляет обычным пользователям никаких привилегий по умолчанию для sudo . (Во всех этих системах вы можете изменить эти значения по умолчанию, но только если у вас есть какие-то административные привилегии для начала. Я полагаю, мы говорим о ситуации, отличной от сервера, и вы администрируете машину, так как мы на SU довольно Чем SF, но на всякий случай.)

Наконец, если вы хотите использовать sudo более тонко, вы должны посмотреть на man sudoers как редактировать файл / etc / sudoers . Однако вы никогда не должны редактировать его вручную. Используйте программу visudo – это не позволит вам сохранить ваши изменения, если они не будут минимально разумными. Это отличная защита от простых ошибок, которые могут заблокировать вас из привилегий администратора вашей собственной системы.

В системах, где отключена учетная запись суперпользователя, например Mac OS X, su не будет работать; sudo -s будет.

Кроме того, похоже, что нет доступных su -s , по крайней мере, на моей машине.

Это введение может помочь вам. su является сокращением для su root , и вы сохраняете свои права как другого пользователя на неопределенный срок. Более опасно, но также более удобно, если вы выполняете множество команд root-access в течение определенного периода времени.

Su в основном создаст новую оболочку для входа с другими привилегиями пользователя (login). Sudo просто временно позволит вам выполнить команду с использованием указанного вами пользователя. В некоторых UNIX, таких как FreeBDS, нет параметров «-s».

  • Изучение основ Linux / Unix
  • Как удалить все файлы, кроме одного в Unix?
  • Как восстановить удаленный файл в Mac?
  • Что происходит с запущенными процессами, когда я теряю удаленное соединение с полем * nix?
  • Как я могу взять вывод сценария оболочки и поместить его в файл в командной строке?
  • Какую команду мне нужно использовать для удаления файла с именем `-rf`?
  • Как скопировать файл без использования scp внутри сеанса ssh?
  • Альтернативы cd / ls для навигации по командной строке?
  • Команда Grep, чтобы удалить строки, содержащие указанное слово
  • Сортировка не согласована с помощью команды Unix `sort '
  • В чем разница между командами Linux (Ubuntu) и Mac?
  • Interesting Posts

    Почему функции scala ограничены 22 параметрами?

    Загрузка флеш-роликов из любого источника!

    Как передать ссылку на переменную стека в stream?

    OpenCV Birdseye без потери данных

    ASP.NET MVC – привязка объекта типа «MODELNAME» не удалась, поскольку другой объект того же типа уже имеет такое же значение первичного ключа

    Можно ли читать книги Kindle на DRM бесплатно в приложении Kindle для ПК?

    Как «записать» ISO / img / cue + bin на USB-накопитель?

    bash: Недопустимый номер

    В чем разница между знаками #,% и $ в тегах Struts?

    Объединить несколько дочерних строк в одну строку MYSQL

    Как включить C ++ 11 в gcc?

    Заменить fragment внутри ViewPager

    Как добавить индексы в таблицы MySQL?

    Как подключить внутреннюю беспроводную карту к гостевой машине VMWare Workstation 10 и по-прежнему изолировать хост?

    Как заставить Excel открывать файлы CSV с данными, расположенными в столбцах

    Давайте будем гением компьютера.