6

Я знаю, что говорит справочная страница о -K и -k:

Параметр ‑K (верное уничтожение) похож на ‑k, за исключением того, что он полностью удаляет кэшированные учетные данные пользователя и не может использоваться вместе с командой или другим параметром. Эта опция не требует пароля. Не все политики безопасности поддерживают кэширование учетных данных.

-k [команда]

При использовании отдельно опция -k (kill) для sudo делает недействительными кэшированные учетные данные пользователя. При следующем запуске sudo потребуется пароль. Эта опция не требует пароля и была добавлена, чтобы позволить пользователю отзывать разрешения sudo из файла .logout. Не все политики безопасности поддерживают кэширование учетных данных. При использовании в сочетании с командой или параметром, для которого может потребоваться пароль, параметр ‑k заставит sudo игнорировать кэшированные учетные данные пользователя. В результате sudo запросит пароль (если он требуется политикой безопасности) и не будет обновлять кэшированные учетные данные пользователя.

Поэтому, если нет необходимости использовать команду в сочетании с этими параметрами, правильно ли я предположить, что K всегда лучше использовать вместо k?

2 ответа2

7

sudo -K и sudo -k без команды делают одно и то же: они делают недействительными кэшированные учетные данные пользователя.

sudo -k command ... отличается: она игнорирует кэшированные учетные данные пользователя для текущей команды, но не делает их недействительными.

Используйте -k с командой, если вы хотите выполнить одну команду, не используя или не забивая свои кэшированные учетные данные. (На самом деле я не уверен, почему вы хотите это сделать, но возможность есть.)

Используйте sudo -k или sudo -K если вы хотите засорять свои кэшированные учетные данные.

Резюме:

sudo -k           # clobbers cached credentials
sudo -K           # clobbers cached credentials
sudo -k command   # ignores cached credentials
sudo -K command   # invalid

ОБНОВИТЬ :

Возвращаясь к этому ответу, похоже, что единственная разница между -k и -K заключается в том, что -k принимает команду, а -K - нет. Я не уверен, что наличие двух отдельных опций полезно, так как -K самом деле не добавляет никакой функциональности, которую не обеспечивает -k . Существует небольшая разница в формулировке на странице руководства; -k "делает недействительными кэшированные учетные данные пользователя", а -K "полностью удаляет кэшированные учетные данные пользователя". Я не думаю, что это указывает на реальную разницу в том, как это влияет на полномочия.

2

sudo -K сделает недействительными ваши кэшированные учетные данные во всех сеансах терминала. Это может быть полезно для запуска до блокировки вашего DE.

sudo -k сделает недействительными только ваши кэшированные учетные данные для текущего сеанса терминала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .