Это - очень сложный вопрос. mattdm уже ответил на многие вопросы.
Между su и sudo, когда Вы рассматриваете отдельного пользователя, su немного более безопасен в этом взломщик, который нашел, что Ваш пароль не может сразу получить полномочия пользователя root. Но все это, который - взятия, чтобы взломщик нашел локальную корневую дыру (относительно редкой) или устанавливает троянца и ожидает Вас для выполнения su.
Sudo имеет преимущества даже перед консольным входом в систему, когда существуют многочисленные пользователи. Например, если система настроена с удаленными защищенными от несанкционированного использования журналами, можно всегда узнавать, кто продержался, выполнил sudo (или чья учетная запись была поставлена под угрозу), но Вы не знаете, кто ввел пароль root на консоли.
Я подозреваю, что решение Ubuntu было частично в интересах простоты (только один пароль для запоминания) и частично в интересах безопасности и простоты учетного распределения на общих машинах (бизнес или семейство).
Linux не имеет безопасного ключа внимания или другого безопасного пользовательского интерфейса для аутентификации. Насколько я знаю, что даже OpenBSD не имеет никого. Если Вы - то, который коснулся о корневом доступе, Вы могли отключить корневой доступ от рабочей системы в целом: если бы Вы хотите быть корнем, необходимо было бы ввести что-то при подсказке загрузчика. Это, очевидно, не подходит для всех вариантов использования. (securelevel *BSD работает как это: в высоком securelevel существуют вещи, Вы не можете обойтись без перезагрузки, такой как понижение securelevel или доступ к смонтированным неструктурированным устройствам непосредственно.)
Ограничение способов, которыми можно стать корнем, является не всегда усилением для безопасности. Помните третьего члена триады безопасности: конфиденциальность, целостность, доступность. Блокировка себя из Вашей системы может препятствовать тому, чтобы Вы ответили на инцидент.
Передача файла через pygmentize
-f terminal
попытается обнаружить тип от имени файла и выделить его соответственно.
Пакет Исходного выделения поставляется с esc.outlang определением выходного языка, которое выделяется с escape-последовательностями ANSI.
Удобная обертка src-hilite-lesspipe.sh
также включен в пакет, так отображение выделенного вывода в терминале справедливо src-hilite-lesspipe.sh source.file
.
На самом деле src-hilite-lesspipe.sh
основная причина должна помочь автоматизации использования source-highlight
с less
. Вы просто устанавливаете:
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Затем любой less source.file
покажет выделенный исходный код. (Код на неизвестном языке пройдет неизменный. Выделение будет также пропущено в случае перенаправленного содержания, как less < source.file
.)
Основываясь на комментарии @Mikael Öhman к ответу @Ignacio Vazquez -Абрамса, я написал эту программу на Python, чтобы использовать pygments
, если это возможно, или же использовать cat
.
#! /usr/bin/env python3
from argparse import ArgumentParser
import subprocess
import os
import os.path
def main():
parser = ArgumentParser(description='cat alternative that uses ANSI characters')
parser.add_argument('file', help='the file to print out the contents of', type=str)
args = parser.parse_args()
if not os.path.isfile(args.file):
parser.error(f'file not found: {args.file}')
cat = False
result = subprocess.run(('pygmentize -f terminal256 -O style=native ' + args.file).split(), stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
if result.stderr:
cat = True
commands = {
True: 'cat ',
False: 'pygmentize -f terminal256 -O style=native '
}
os.system(commands[cat] + args.file)
if __name__ == '__main__':
main()
python-pygments
на Debian. – enzotib 26.08.2011, 10:57alias pcat="pygmentize -f terminal256 -O style=native -g"
чтобы быть хорошим решением – Mikael Öhman 26.12.2012, 09:51pip install pygments
– craigb 08.11.2013, 22:59cat code.extension | pygmentize -f terminal -l extension
. – fiatjaf 17.04.2015, 00:34