как грамматика оболочки POSIX принимает FOO=bar foobar

Чтобы увидеть разрешения sudo других пользователей, вы можете использовать: sudo -l -U . При условии, что у вас достаточно разрешений.

Или (чтобы ответить на вопрос) вы можете использовать команду su (также известную как пользователь-переключатель). Запуск от имени su - tina переключится на этого пользователя и запустит сценарии входа в систему (отбросьте - , чтобы пропустить эту часть). Вам будет предложено ввести их пароль.

Или вы используете sudo - sudo -u -i (-i = имитировать первоначальный вход в систему). Вам будет предложено ввести пароль. Это работает, только если у вас достаточно разрешений

4
05.08.2016, 10:45
2 ответа

Я считаю, что этот адрес напрямую связан с тем, о чем вы спрашиваете:

2.10.2 Правила грамматики оболочки

  1. [Имя команды]

    Когда ТОКЕН является в точности зарезервированным словом, должен получиться идентификатор маркера для этого зарезервированного слова. В противном случае токен WORD должен быть возвращен.

Это правило 1, задолго до правила 7. Любое отдельное слово (которое не содержит = ) будет интерпретироваться как «имя команды». Если он содержит = , применяется правило номер 7.

Можно утверждать, что в правиле 1 нет исключения для включения знака =, но я предполагаю, что это следует предполагать из описания « Простые команды »:

2.9. 1 Простые команды

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

Вкратце: «присвоения переменных» «слова» «перенаправления»

И: «присвоения переменных» должны содержать = .

0
27.01.2020, 21:01

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

Имейте в виду, что цитируемое вами правило относится к ТОКЕНУ и не может содержать пробел без кавычек. См. 2.3 Распознавание токена , например,

  1. Если текущий символ - это некотируемый , любой токен, содержащий предыдущий символ, разделяется, и текущий символ должен быть отброшен.
1
27.01.2020, 21:01

Теги

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