Как возвратить sudo на Ubuntu?

В прошлый раз я использовал convert для такой задачи я явно указал размер места назначения через изменение размеров:

$ i=150; convert a.png b.png -compress jpeg -quality 70 \
      -density ${i}x${i} -units PixelsPerInch \
      -resize $((i*827/100))x$((i*1169/100)) \
      -repage $((i*827/100))x$((i*1169/100)) multipage.pdf

convert команда не всегда использует DPI в качестве единицы плотности/формата страниц по умолчанию, таким образом мы явно указываем DPI с -units опция (иначе можно получить различные результаты с различными комбинациями версий/формата ввода). Новый размер (указанный через -resize) размер страницы DIN A4 в пикселях. Изменить размер аргумент указывает максимальный размер страницы. Какое разрешение и качество для выбора точно зависят от варианта использования - я выбрал 150 DPI и среднее качество для оставления некоторого свободного места, в то время как это не выглядит слишком плохо при печати на бумаге.

Отметьте это convert по умолчанию не изменяет соотношение сторон с изменить размер операцией:

Измените размер вместит изображение в требуемый размер. Это НЕ заполняется, требуемый размер поля.

(Руководство ImageMagick)

В зависимости от версии ImageMagick и включенных форматов ввода могло бы быть нормально опускать -repage опция. Но иногда это требуется, и без той опции заголовок PDF мог бы содержать слишком небольшие размеры. В любом случае, -repage не должен причинять боль.

Вычисления используют целочисленную арифметику с тех пор bash только поддержки это. С zsh выражения могут быть упрощены - т.е. заменены $((i*8.27))x$((i*11.69)).

Штриховые изображения

Если файлы PNG являются двухуровневыми (черно-белый иначе штриховая графика), отображает затем img2pdf инструмент приводит к превосходящим результатам по ImageMagick convert. Это означает img2pdf быстрее и приводит к меньшему PDFs.

Пример:

$ img2pdf -o multipage.pdf a.png b.png

или:

$ img2pdf --pagesize A4 -o multipage.pdf a.png b.png

12
19.07.2011, 16:56
5 ответов

Если у Вас есть аналогичная система, которую можно использовать в качестве руководства для наблюдения, каково корректное владение для всех файлов, то можно загрузиться в спасательный режим, опуститься до корневой оболочки и вручную восстановить корректное владение во все файлы в /usr.

Самый быстрый путь может состоять в том, чтобы переустановить Вашу ОС или восстановить от резервного копирования.

В Ubuntu или подобный, затем нет никакого пароля root по умолчанию (учетная запись отключена), который является, почему Вы не можете su.

5
27.01.2020, 19:55
  • 1
    Woah успокаивается там, это не переустановка окон, не всегда самый легкий или самый быстрый способ сделать что-либо и конечно не учит людей, как решить проблемы. В этом случае все, что он должен сделать, инвертировать меры, которые он принял, который может легко быть сделан путем монтирования файловой системы в другой среде как LiveCD или спасательный режим, который Вы предложили (зависимый дистрибутива). –  Caleb 19.07.2011, 16:43
  • 2
    @Caleb при завершенном повреждении полномочий на главном блоке файловой системы, это. Он привел в порядок не, только завинчивают sudo, по-видимому, он забыл упоминать в своем сообщении, что он использовал-R (иначе, это только изменит владельца самого/usr каталога и не sudo). Я также описывал, как инвертировать процесс, но это - очень трудоемкая и кропотливая задача. –  psusi 19.07.2011, 16:50
  • 3
    Это - случай chown нет chmod. Начиная со всего в /usr папка должна быть root:root, это должно быть легкой фиксацией, не кропотливой фиксацией это a chmod ударьте означал бы. –  Caleb 19.07.2011, 16:53
  • 4
    @Caleb не все в/usr должно быть root:root. –  psusi 19.07.2011, 16:56
  • 5
    @Caleb chown сбрасывает setxid биты. Существует несколько файлов в /usr это не принадлежит полностью; больше это находится в другой группе (особенно setgid программы в /usr/bin). –  Gilles 'SO- stop being evil' 19.07.2011, 17:12

Так как Вы полили из шланга полномочия на единственной вещи, которая предоставляет Вам корневой доступ уровня, Вы будете нуждаться в некоторой помощи СНАРУЖИ текущей программной среды для фиксации этого.

Я предлагаю, чтобы самый легкий путь состоял в том, чтобы загрузить LiveCD для Вашего дистрибутива, смонтировать Ваш диск и изменить полномочия файла с помощью chmod Вы перечислили оттуда.

Вы могли также попытаться загрузиться в однопользовательский режим для получения корневой оболочки.

Знайте что обычно все вещи в /usr/ каталог должен принадлежать root таким образом, необходимо просто смочь сделать рекурсивное chown зафиксировать независимо от того, что Вы повредились. (Редактирование: На по-видимому под управлением комментарии @Gilles chown повреждения setuid и setgid биты, таким образом, необходимо будет вручную выдержать сравнение с существующей системой для восстановления всех тех, после того как Вы фиксируете владение снова.)

Однако очень немногие должны быть 4111. Тот дополнительный является специальным предложением полномочия, но это заставляет его выполниться как корень, даже когда выполнено как пользователь! Только sudo и выбору немного команд нужно установить этот бит полномочий. Если Вы не выполняли a chmod для запуска с Вас, вероятно, не должны фиксировать это вообще, все полномочия должны уже быть корректными. Не выполняйте большое chmod операция, не зная то, что все полномочия, как предполагается.

11
27.01.2020, 19:55
  • 1
    Действительно ли возможно, если ОС находится в Виртуальной машине? –  Adam 19.07.2011, 16:53
  • 2
    Да, который не имеет никакого значения. Вы могли использовать runlevel 1 (что-то, что можно сделать в самом начале процесса начальной загрузки от grub/lilo или независимо от того, что загрузчик), или можно установить VM для использования ISO-образа LiveCD как устройство загрузки. –  Caleb 19.07.2011, 16:57
  • 3
    aham, задолго до того, как я переустанавливаю его, я попробую Ваш совет :) –  Adam 19.07.2011, 16:58
  • 4
    хорошо, я думаю, что нахожусь в LiveCD, теперь я должен записать это в терминале? sudo chown -R root /usr/ ? –  Adam 19.07.2011, 17:35
  • 5
    Ya запускается с этого, но не на /usr на LivdCD необходимо смонтировать его где-нибудь и работать против того пути, сказать /mnt/mydrive/usr. Затем необходимо будет зафиксировать setuid, обдумал /mnt/mydrive/usr/bin/sudo. Затем просмотрите/usr на livecd и посмотрите, существуют ли какие-либо другие владения кроме корня. find /usr -not -uid 0 и измените их для соответствия. Затем ищите вещи, которые имеют другой setuid или setgid набор битов и удостоверяются, что они соответствуют также. Если бы у Вас есть реальная система Ubunutu для сравнения с этим, было бы лучшим. –  Caleb 19.07.2011, 17:39
[1178437]Это проще, чем люди делают это. Попробуйте следующее:

Вместо того, чтобы пытаться войти в систему от имени root, используя сломанную команду [1179310]su[1179311], выйдите из системы как текущий пользователь и снова войдите в систему от имени root через обычный диспетчер Display Manager (т.е. экран входа).

(setq template-auto-insert t)
Выполните следующие действия в терминале: [1179312]chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

Это должно исправить команду [1178894]sudo[1178895] и в мгновение ока вы должны снова войти в систему.[1178442].

1
27.01.2020, 19:55

В режиме восстановления Ubuntu введите следующие команды .. Это исправлена ​​для меня ..

mount -o remount,rw /
mount --all
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
restart

Надеюсь, это исправит вашу проблему. (Или кто-то еще)

Я нашел этот здесь в этом Сообщение блога .

4
27.01.2020, 19:55

Это намного проще, чем предлагают другие ответы. Нет необходимости форматировать, перезагружать или использовать live CD.

su root # then enter your password to switch to root user
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
exit # to get back to the original user

Это самый простой способ решить эту проблему. Объяснение, sudo поврежден (я знаю, что поврежденный - неправильный термин, но он не работает, поэтому нам нужно избегать использования sudo)

  • Используя команду 1 (su root) , мы меняем пользователя на root без использования sudo.
  • Используя команду 2 (chown root: root / usr / bin / sudo && chmod 4755 / usr / bin / sudo) , мы исправляем разрешения / права собственности sudo.
  • Используя команду 3 (выход) , мы возвращаемся к исходному пользователю.

Я тестировал этот метод на Linux mint. Это система, подобная Ubuntu. Сообщите мне, что этот метод не работает ни в одной другой ОС. Обновим ответ соответственно.

Спасибо

2
27.01.2020, 19:55

Теги

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