Я уже читал это из руководства, но я не вижу разницы ..
su - изменить идентификатор пользователя или стать суперпользователем
sudo -s [command]
-s ( shell) задает оболочку, указанную переменной окружения SHELL, если она установлена или оболочка, указанная в passwd (5). Если задана команда, она передается оболочке для выполнения. В противном случае выполняется интерактивная оболочка.
sudo -i исчезает описание в ручном режиме
Основное различие между этими командами заключается в том, что они ограничивают доступ к их функциям.
su (что означает «подставить пользователя» или «переключить пользователя») - делает именно это, он запускает другой экземпляр оболочки с привилегиями целевого пользователя. Чтобы убедиться, что у вас есть права на это, он запрашивает у вас пароль целевого пользователя. Итак, чтобы стать root, вам нужно знать пароль root. Если на вашем компьютере есть несколько пользователей, которым необходимо запускать команды от имени root, все они должны знать пароль root - обратите внимание, что это будет тот же пароль. Если вам нужно отменить права администратора от одного из пользователей, вам нужно изменить пароль root и рассказать об этом только тем людям, которым необходимо сохранить доступ - беспорядочно.
sudo (что означает «подставить пользователя» или «переключить пользователя») полностью отличается. Он использует файл конфигурации (/ etc / sudoers), в котором перечислены, какие пользователи имеют права на определенные действия (запускать команды как root и т. Д.). При вызове запрашивает целевого пользователя - для обеспечения человек на терминале действительно тот же «joe», который указан в /etc/sudoers. Чтобы отменить права администратора от человека, вам просто нужно отредактировать файл конфигурации (или удалить пользователя из группы, указанной в этом конфиге). Это приводит к значительно более эффективному управлению привилегиями.
В результате этого во многих системах на базе Debian root у пользователя нет установленного пароля - т. Е. Невозможно войти в систему как root напрямую.
Кроме того, /etc/sudoers позволяет указать некоторые дополнительные параметры - то есть пользователь X может выполнять только программу Y и т. д.
Часто используемая комбинация sudo su работает следующим образом: сначала sudo ] запрашивает ваш пароль, и, если вам это разрешено, вызывает следующую команду (su) в качестве суперпользователя. Поскольку su вызывается root, вам не требуется вводить пароль целевого пользователя. Таким образом, sudo su позволяет открывать оболочку как другой пользователь (включая root), если вам разрешен доступ суперпользователя файлом /etc/sudoers.
Основное различие между этими командами заключается в том, что они ограничивают доступ к их функциям.
su (что означает «подставить пользователя» или «переключить пользователя») - делает именно это, он запускает другой экземпляр оболочки с привилегиями целевого пользователя. Чтобы убедиться, что у вас есть права на это, он запрашивает у вас пароль целевого пользователя. Итак, чтобы стать root, вам нужно знать пароль root. Если на вашем компьютере есть несколько пользователей, которым необходимо запускать команды от имени root, все они должны знать пароль root - обратите внимание, что это будет тот же пароль. Если вам нужно отменить права администратора от одного из пользователей, вам нужно изменить пароль root и рассказать об этом только тем людям, которым необходимо сохранить доступ - беспорядочно.
sudo (что означает «подставить пользователя» или «переключить пользователя») полностью отличается. Он использует файл конфигурации (/ etc / sudoers), в котором перечислены, какие пользователи имеют права на определенные действия (запускать команды как root и т. Д.). При вызове запрашивает целевого пользователя - для обеспечения человек на терминале действительно тот же «joe», который указан в /etc/sudoers. Чтобы отменить права администратора от человека, вам просто нужно отредактировать файл конфигурации (или удалить пользователя из группы, указанной в этом конфиге). Это приводит к значительно более эффективному управлению привилегиями.
В результате этого во многих системах на базе Debian root у пользователя нет установленного пароля - т. Е. Невозможно войти в систему как root напрямую.
Кроме того, /etc/sudoers позволяет указать некоторые дополнительные параметры - то есть пользователь X может выполнять только программу Y и т. д.
Часто используемая комбинация sudo su работает следующим образом: сначала sudo ] запрашивает ваш пароль, и, если вам это разрешено, вызывает следующую команду (su) в качестве суперпользователя. Поскольку su вызывается root, вам не требуется вводить пароль целевого пользователя. Таким образом, sudo su позволяет открывать оболочку как другой пользователь (включая root), если вам разрешен доступ суперпользователя файлом /etc/sudoers.
Основное различие между этими командами заключается в том, что они ограничивают доступ к их функциям.
su (что означает «подставить пользователя» или «переключить пользователя») - делает именно это, он запускает другой экземпляр оболочки с привилегиями целевого пользователя. Чтобы убедиться, что у вас есть права на это, он запрашивает у вас пароль целевого пользователя. Итак, чтобы стать root, вам нужно знать пароль root. Если на вашем компьютере есть несколько пользователей, которым необходимо запускать команды от имени root, все они должны знать пароль root - обратите внимание, что это будет тот же пароль. Если вам нужно отменить права администратора от одного из пользователей, вам нужно изменить пароль root и рассказать об этом только тем людям, которым необходимо сохранить доступ - беспорядочно.
sudo (что означает «подставить пользователя» или «переключить пользователя») полностью отличается. Он использует файл конфигурации (/ etc / sudoers), в котором перечислены, какие пользователи имеют права на определенные действия (запускать команды как root и т. Д.). При вызове запрашивает целевого пользователя - для обеспечения человек на терминале действительно тот же «joe», который указан в /etc/sudoers. Чтобы отменить права администратора от человека, вам просто нужно отредактировать файл конфигурации (или удалить пользователя из группы, указанной в этом конфиге). Это приводит к значительно более эффективному управлению привилегиями.
В результате этого во многих системах на базе Debian root у пользователя нет установленного пароля - т. Е. Невозможно войти в систему как root напрямую.
Кроме того, /etc/sudoers позволяет указать некоторые дополнительные параметры - то есть пользователь X может выполнять только программу Y и т. д.
Часто используемая комбинация sudo su работает следующим образом: сначала sudo ] запрашивает ваш пароль, и, если вам это разрешено, вызывает следующую команду (su) в качестве суперпользователя. Поскольку su вызывается root, вам не требуется вводить пароль целевого пользователя. Таким образом, sudo su позволяет открывать оболочку как другой пользователь (включая root), если вам разрешен доступ суперпользователя файлом /etc/sudoers.
Этот ответ является обманом моего ответа на обман этого вопроса, поставленный здесь на канонический ответ, чтобы люди могли его найти!
Основное различие между sudo -i и sudo -s :
sudo -i дает вам корневую среду, т. е. ваш ~/.bashrc игнорируется. sudo -s дает вам среду пользователя, поэтому ваш ~/.bashrc соблюдается.Вот пример, вы можете видеть, что у меня есть приложение lsl в моем каталоге ~/.bin/, доступное через sudo -s, но недоступное с sudo -i. Обратите внимание также, что приглашение Bash изменяется так же, как с sudo -i, но не с sudo -s:
dotancohen@melancholy:~$ ls .bin
lsl
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ sudo -i
root@melancholy:~# which lsl
root@melancholy:~# exit
logout
dotancohen@melancholy:~$ sudo -s
Sourced .bashrc
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ exit
exit
Хотя sudo -s удобен для предоставления вам среды, с которой вы знакомы, Этот ответ является обманом моего ответа на обман этого вопроса, поставленный здесь на канонический ответ, чтобы люди могли его найти! по двум причинам:
Наглядное напоминание о том, что вы находитесь в «корневой» сессии. Корневая среда гораздо реже будет отравлена вредоносными программами, такими как строка изгоев в .bashrc.su запрашивает пароль пользователя «root».
sudo запрашивает ваш собственный пароль (а также проверяет, разрешено ли вам запускать команды с правами root, которые настроены через /etc/sudoers - по умолчанию всем учетным записям пользователей, принадлежащим к группе «admin», разрешено использовать sudo).
sudo -s запускает оболочку как root, но не меняет ваш рабочий каталог , sudo -i имитирует вход в корневую учетную запись: ваш рабочий каталог будет /root, а root .profile и т. д. будут получены, как при входе в систему.
sudo позволяет запускать команды в вашей собственной учетной записи пользователя с привилегиями root. su позволяет вам переключать пользователя так, чтобы вы действительно вошли в систему под учетной записью root.
sudo -s запускает оболочку с привилегиями root. sudo -i также получает среду корневого пользователя.
Чтобы увидеть разницу между su и sudo -s, сделайте cd ~, а затем pwd после каждого из них. В первом случае вы попадете в домашний каталог root, потому что вы root. Во втором случае вы будете в своем собственном домашнем каталоге, потому что сами обладаете привилегиями root.
Здесь больше обсуждается этот точный вопрос.
В Ubuntu или связанной системе я не очень много использую для su в традиционном, суперпользовательском смысле. sudo обрабатывает этот случай намного лучше. Однако su отлично подходит для того, чтобы стать другим пользователем в разовых ситуациях, когда настройка sudoers будет глупой.
Например, если я исправляю свою систему с live CD / USB, я буду часто монтируйте мой жесткий диск и другие необходимые вещи и chroot в систему. В этом случае моя первая команда обычно:
su - myuser # Note the '-'. It means to act as if that user had just logged in.
Таким образом, я работаю не как root, а как обычный пользователь, а затем использую sudo, если это необходимо.
Этот ответ является обманом моего ответа на обман этого вопроса, поставленный здесь на канонический ответ, чтобы люди могли его найти!
Основное различие между sudo -i и sudo -s :
sudo -i дает вам корневую среду, т. е. ваш ~/.bashrc игнорируется. sudo -s дает вам среду пользователя, поэтому ваш ~/.bashrc соблюдается.Вот пример, вы можете видеть, что у меня есть приложение lsl в моем каталоге ~/.bin/, доступное через sudo -s, но недоступное с sudo -i. Обратите внимание также, что приглашение Bash изменяется так же, как с sudo -i, но не с sudo -s:
dotancohen@melancholy:~$ ls .bin
lsl
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ sudo -i
root@melancholy:~# which lsl
root@melancholy:~# exit
logout
dotancohen@melancholy:~$ sudo -s
Sourced .bashrc
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ exit
exit
Хотя sudo -s удобен для предоставления вам среды, с которой вы знакомы, Этот ответ является обманом моего ответа на обман этого вопроса, поставленный здесь на канонический ответ, чтобы люди могли его найти! по двум причинам:
Наглядное напоминание о том, что вы находитесь в «корневой» сессии. Корневая среда гораздо реже будет отравлена вредоносными программами, такими как строка изгоев в .bashrc.su запрашивает пароль пользователя «root».
sudo запрашивает ваш собственный пароль (а также проверяет, разрешено ли вам запускать команды с правами root, которые настроены через /etc/sudoers - по умолчанию всем учетным записям пользователей, принадлежащим к группе «admin», разрешено использовать sudo).
sudo -s запускает оболочку как root, но не меняет ваш рабочий каталог , sudo -i имитирует вход в корневую учетную запись: ваш рабочий каталог будет /root, а root .profile и т. д. будут получены, как при входе в систему.
sudo позволяет запускать команды в вашей собственной учетной записи пользователя с привилегиями root. su позволяет вам переключать пользователя так, чтобы вы действительно вошли в систему под учетной записью root.
sudo -s запускает оболочку с привилегиями root. sudo -i также получает среду корневого пользователя.
Чтобы увидеть разницу между su и sudo -s, сделайте cd ~, а затем pwd после каждого из них. В первом случае вы попадете в домашний каталог root, потому что вы root. Во втором случае вы будете в своем собственном домашнем каталоге, потому что сами обладаете привилегиями root.
Здесь больше обсуждается этот точный вопрос.
В Ubuntu или связанной системе я не очень много использую для su в традиционном, суперпользовательском смысле. sudo обрабатывает этот случай намного лучше. Однако su отлично подходит для того, чтобы стать другим пользователем в разовых ситуациях, когда настройка sudoers будет глупой.
Например, если я исправляю свою систему с live CD / USB, я буду часто монтируйте мой жесткий диск и другие необходимые вещи и chroot в систему. В этом случае моя первая команда обычно:
su - myuser # Note the '-'. It means to act as if that user had just logged in.
Таким образом, я работаю не как root, а как обычный пользователь, а затем использую sudo, если это необходимо.
Этот ответ является обманом моего ответа на обман этого вопроса, поставленный здесь на канонический ответ, чтобы люди могли его найти!
Основное различие между sudo -i и sudo -s :
sudo -i дает вам корневую среду, т. е. ваш ~/.bashrc игнорируется. sudo -s дает вам среду пользователя, поэтому ваш ~/.bashrc соблюдается.Вот пример, вы можете видеть, что у меня есть приложение lsl в моем каталоге ~/.bin/, доступное через sudo -s, но недоступное с sudo -i. Обратите внимание также, что приглашение Bash изменяется так же, как с sudo -i, но не с sudo -s:
dotancohen@melancholy:~$ ls .bin
lsl
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ sudo -i
root@melancholy:~# which lsl
root@melancholy:~# exit
logout
dotancohen@melancholy:~$ sudo -s
Sourced .bashrc
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ exit
exit
Хотя sudo -s удобен для предоставления вам среды, с которой вы знакомы, Этот ответ является обманом моего ответа на обман этого вопроса, поставленный здесь на канонический ответ, чтобы люди могли его найти! по двум причинам:
Наглядное напоминание о том, что вы находитесь в «корневой» сессии. Корневая среда гораздо реже будет отравлена вредоносными программами, такими как строка изгоев в .bashrc.su запрашивает пароль пользователя «root».
sudo запрашивает ваш собственный пароль (а также проверяет, разрешено ли вам запускать команды с правами root, которые настроены через /etc/sudoers - по умолчанию всем учетным записям пользователей, принадлежащим к группе «admin», разрешено использовать sudo).
sudo -s запускает оболочку как root, но не меняет ваш рабочий каталог , sudo -i имитирует вход в корневую учетную запись: ваш рабочий каталог будет /root, а root .profile и т. д. будут получены, как при входе в систему.
sudo позволяет запускать команды в вашей собственной учетной записи пользователя с привилегиями root. su позволяет вам переключать пользователя так, чтобы вы действительно вошли в систему под учетной записью root.
sudo -s запускает оболочку с привилегиями root. sudo -i также получает среду корневого пользователя.
Чтобы увидеть разницу между su и sudo -s, сделайте cd ~, а затем pwd после каждого из них. В первом случае вы попадете в домашний каталог root, потому что вы root. Во втором случае вы будете в своем собственном домашнем каталоге, потому что сами обладаете привилегиями root.
Здесь больше обсуждается этот точный вопрос.
В Ubuntu или связанной системе я не очень много использую для su в традиционном, суперпользовательском смысле. sudo обрабатывает этот случай намного лучше. Однако su отлично подходит для того, чтобы стать другим пользователем в разовых ситуациях, когда настройка sudoers будет глупой.
Например, если я исправляю свою систему с live CD / USB, я буду часто монтируйте мой жесткий диск и другие необходимые вещи и chroot в систему. В этом случае моя первая команда обычно:
su - myuser # Note the '-'. It means to act as if that user had just logged in.
Таким образом, я работаю не как root, а как обычный пользователь, а затем использую sudo, если это необходимо.