1

Я часто выдаю команду, для которой у меня нет необходимых повышенных привилегий.

На Ubuntu я мог бы использовать

sudo !!

Это выдаст ту же команду с привилегиями sudo. Есть ли эквивалент на OpenBSD?

Изменить: я должен был быть более конкретным, на какой версии OpenBSD. Я использую OpenBSD 4.8, где кажется, что sudo установлен по умолчанию. Я уже создал пользователя помимо root и отредактировал мой файл sudoers, чтобы позволить этому пользователю использовать sudo.

У меня вопрос, есть ли уже встроенный ярлык для "!!"использовать предыдущую команду.

7 ответов7

4

sudo - это независимый программный пакет, который начал разрабатываться по крайней мере за десять лет до Ubuntu или OpenBSD.

Я бы посоветовал вам использовать pkg_add для OpenBSD, чтобы перенести это в вашу систему, но в FAQ по установке нового пакета в OpenBSD есть пример, в котором используется sudo , поэтому он должен быть уже установлен.

Делает !! работать один (т.е. без sudo)? Если нет, вы можете использовать другую оболочку, чем в Ubuntu.

3

Просто чтобы быть ясным со всеми другими ответами, !! является частью механизма истории оболочки. Я думаю, что проблема не в sudo, а в вашей оболочке или, точнее, в вашей оболочке, когда вы являетесь пользователем root.

Прошло много времени с тех пор, как я играл с любым из BSD, но они, как правило, являются более «традиционными» UNIX, то есть они по-прежнему используют настоящую оболочку Bourne (читай: не такую особенную, как bash), как оболочку root. «Настоящая» оболочка Борна в данном случае означает отсутствие механизма истории. Это по причинам восстановления системы. (*)

Когда вы входите в систему как root, вы можете запустить оболочку с историей, либо выполните exec /bin/bash либо exec /bin/tcsh как вы пожелаете.

Раньше старый трюк состоял в том, чтобы иметь учетную запись root-эквивалента, обычно называемую «toor», которая имела оболочку входа в систему tcsh или bash, тот же домашний каталог и uid 0. Ты не будешь ругаться , ты sudo toor , а потом будешь в bash. Я не уверен, что нового жарко, может быть,

(*) Причина, оболочка root является /sbin /sh и статически связана. Это означает, что он имеет минимальное количество зависимостей. Если ваша оболочка /bin /bash и имеет библиотечные зависимости от /usr, а теперь /usr работает, у вас нет оболочки. Если ваша оболочка - /sbin /sh, то если по крайней мере /sbin монтируется, вы можете сделать некоторую работу.

2

Этот сайт должен помочь вам: http://linux-bsd-sharing.blogspot.com/2009/03/howto-using-sudo-on-freebsd.html

Кроме того, о задачах администрирования BSD обычно заботятся непосредственно из учетной записи пользователя root. В Ubuntu учетная запись администратора root отключена, и все задачи администратора выполняются через учетную запись пользователя и проверяются программой sudo.

Когда вы установили BSD, он должен был спросить вас, каким должен быть ваш пароль root, вы должны иметь возможность войти в систему root, используя указанный вами пароль. Если локальный вход в систему root отключен в Gnome (или что вы используете в качестве рабочего стола), вы можете войти в систему как пользователь root с помощью команды «su -» в терминале, и он должен запросить ваш пароль пользователя root. После того, как вы вошли в систему как пользователь root, вы можете делать все, что захотите, потому что эта учетная запись имеет все привилегии.

Обычно не рекомендуется входить в систему как root и запускать все таким образом из соображений безопасности. Любая программа, которую вы запускаете от имени пользователя root, имеет права root. Это означает, что если вы запускаете программу, предназначенную для удаления всего на вашем жестком диске, у нее есть разрешение на это. Вот почему вы всегда должны быть осторожны при входе в систему, просто войдите в систему и делайте то, что вам нужно. Когда вы закончите, вернитесь в свою учетную запись пользователя, чтобы быть в безопасности.

2

Как уже отмечали другие, проблема не в Linux против BSD, а в том, какую оболочку вы используете. Но, как примечание к комментарию Рича Хомолки, существует безопасный способ иметь другую оболочку в качестве root при входе в систему BSD. Просто добавьте это в конец вашего .profile.

bash && exit 0

Если по какой-либо причине bash не удается, вы просто переходите в sh (конечно, не меняйте его в файле мастер-паролей), и если это происходит успешно, вы выходите из системы, когда выходите из bash.

0

OpenBSD имеет свою собственную реализацию, встроенную в базовую систему, поэтому, если ваш пользователь находится в /etc/sudoers , проблема может заключаться в том, что ваша оболочка, вероятно, является Bourne sh по умолчанию, которая не обеспечивает ту же функциональность, которую вы могли бы использовать чтобы из Ubuntu.

Я полагаю, что вы можете установить bash с помощью команды pkg_add -r bash , а затем установить ее с помощью chsh -s /usr/local/bin/bash (я считаю, что это правильный путь, я более знаком с FreeBSD, но я думаю, что Система портов / пакетов одинакова на обоих).

0

В OpenBSD по умолчанию используется вариант оболочки Korn (точнее, pdksh). Это действительно поддерживает !! механизм истории, но его нужно включить, чтобы включить (как показано на странице руководства ksh(1) ):

set -o csh-history

Просто вставьте это в свой .klogin если хотите, чтобы он прикрепился.

-1

Просто установите sudo:

# pkg_add -r sudo

-или же-

# cd /usr/ports/security/sudo
# make install

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