Полномочия в зависимости от того, как Вы входите в систему: ssh/su/sudo

xdg-open ожидает программы для окончания. Это дизайном. Если программа является программой текстового режима, это должно остаться на переднем плане в терминале. Даже если программой является GUI один, это поведение полезно в случае, если xdg-open используется из сценария, и сценарий хочет выполнить что-то после того, как файл был отредактирован (например, отправьте новую версию куда-нибудь или иначе сделайте что-то с новой версией).

Если Вы не хотите ожидать, работать xdg-open в фоновом режиме. Можно выполнить любую команду оболочки в фоновом режиме путем помещения амперсанда в конец.

xdg-open http://www.google.com &

С некоторыми программами, xdg-open возвраты сразу. То, что происходит, на самом деле что программа это xdg-open сразу вызывает возвраты. Это обычно происходит с программами GUI, которые открывают все файлы в единственном экземпляре: когда Вы запускаете их во второй раз, когда они отправляют сообщению рабочий экземпляр, чтобы сказать этому открывать файл и сразу выходить.

5
13.11.2014, 01:19
2 ответа

Имеет ли эта политика безопасности смысл?

Да и нет. Нет в том смысле, что она не защищает данные другого_пользователя. Но она защищает пароль другого_пользователя. Это может показаться несущественным, но это означает, что есть по крайней мере одна важная вещь, которую вы не можете сделать: изменить пароль так, чтобы человек, который обычно использует учетную запись, не мог получить к ней доступ.

Еще одним следствием использования su и сохранения паролей в секрете является то, что /var/log/auth.log должен содержать такие вещи:

Nov  8 08:08:10 ...(su:session): session opened for user other_user by (uid=1066)
[...]
Nov  8 09:38:10 ...(su:session): session closed for user other_user

Предположим, что ваш uid - 1066, и ваш пароль также является секретным, если в течение этих 90 минут с вещью other_user случилось что-нибудь неприятное, есть веские основания полагать, что вы это сделали. Я делал рабочие места, где log в таких подробностях использовался для идентификации людей, делающих вещи, которые они знали, что не должны были делать.

4
27.01.2020, 20:37

Оболочка делает все по порядку. $ (найти.) называется подстановкой команды. Результатом подстановки команды является

  1. разделение слова,
  2. расширение пути
  3. удаление кавычки

Разделение слова является причиной проблемы при наличии имен файлов с местами.

/home/user/* - расширение пути. Обратите внимание, что это второе место в списке выше. Он подвергается только удалению цитаты.

-121--96867-

Другой подход к объяснению: Когда используется * , оболочка знает, что представляют собой отдельные элементы. Вывод find является только длинным рядом. Оболочка не знает, что такое элементы (и их сепараторы).

Подстановка команд может использоваться в специальном пути с программой, которая выдает выходные данные в кавычках; тогда проблема не появится. Но чтобы сделать оболочку распознавать цитаты вам нужно, например, eval , что часто усложняет все выражение:

eval for var in $(ls --quoting-style=shell)\; do echo '"$var"'\; done
-121--96869-

Так как вы можете только запустить su - other_user, чтобы получить доступ к этой учетной записи, есть вещи, которые вы не можете сделать. Можно запустить только оболочку входа для этой учетной записи или программ, которые позволяет запустить оболочка входа. Это не имеет значения, если оболочка входа является общей оболочкой, такой как sh или bash , но если оболочка является ограниченной оболочкой или какой-либо специальной программой.

Если учетная запись не имеет ограниченной оболочки, можно добавить открытый ключ к ~/.ssh/authorized _ keys , чтобы разрешить удаленную регистрацию. Администратор может отключить эту функцию при желании, либо сделав домашний каталог недоступным для записи пользователем (что не является обычным для учетных записей общего назначения, поскольку это очень неудобно для пользователя), либо сделав каталог .ssh неизменным, либо используя параметры в конфигурации сервера.

Поскольку пароль неизвестен, изменить его невозможно: команда passwd запрашивает текущий пароль.

Незнание пароля также означает, что администратор может отменить ваш доступ без необходимости изменения пароля. Они должны будут искать backdoors (SSH ключ, setuid файл), но им нужно только проверить файлы на этой машине для этого, что возможно, в отличие от заставить вас забыть пароль.

3
27.01.2020, 20:37

Теги

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