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

Да, можно установить программное обеспечение в каталоги, отличные от /usr.

Одним из примеров (системы -ширины )является /usr/local. (Который все еще может не помочь вам напрямую, так как ваш /usrдоступен только для чтения -. )Каталог /usr/localсоответствует /usrпо своей структуре (имеет /bin, /libи т. д. )В большинстве случаев он используется для различения пакетов, поставляемых как часть вашей базовой ОС. (, которые перейдут в/usr)из тех, что установлены из исходников системным администратором (, которые перейдут в /usr/local.)

Существует также /opt, который предназначен для установки пакетов в отдельные -каталоги пакетов. Так, например, вы можете установить туда Perl 6 под /opt/perl6, и это будет содержать только Perl и ничего больше. Вы должны хранить отдельные каталоги для отдельных пакетов, что обычно позволяет легко «удалить» пакет, просто удалив его каталог. Обычно вам нужно установить $PATHсоответствующим образом, чтобы получить доступ к установленным там программам, или создать символические ссылки в каком-либо другом каталоге bin, который уже находится в $PATH, чтобы получить к ним доступ. Управление /optобычно предназначено для администратора, и, учитывая, что вам нужно обновлять $PATHдля каждого устанавливаемого вами пакета, это может быть не лучшим вариантом...

Для установки программного обеспечения в каталог $HOMEодним из возможных подходов является создание в его верхней части подкаталога .localи соответствие иерархии /usrили /usr/local.

Так что, может, попробуй так:

mkdir ~/.local

А затем используйте его как --prefixпри установке нового пакета. Например,если пакет использует сценарий конфигурации в стиле autoconf -, вы можете собрать и установить его, используя:

./configure --prefix="$HOME/.local"
make
make install

Вам нужно добавить ~/.localк вашему $PATH, чтобы иметь доступ к программам там. Так что сделайте это в своем~/.bashrc:

PATH=$HOME/.local:$PATH
export PATH

Откройте новую оболочку (новый терминал или выйдите из системы и войдите снова ), чтобы изменения вступили в силу. Или просто запустите ту же команду в существующей оболочке. Теперь вы сможете выполнять программы из ~/.local/binнапрямую.

2
23.09.2019, 04:13
1 ответ

Согласно man 1 passwd,

-d, --delete

    Delete a user's password (make it empty). This is a quick way to disable a password for an
    account. It will set the named account passwordless.

Практически вы можете увидеть разницу, когда используете CUI (, а не эмулятор терминала ). После выполнения passwd -d rootвы можете войти в систему как root даже без запроса пароля, поскольку пароль пуст. Аналогичная вещь наблюдается при использовании suкоманды (см. этот комментарий например ). Напротив, после passwd -l rootвы не можете войти в систему как root, используя пароль [1] .

Таким образом, простое удаление пароля root настоятельно не рекомендуется, хотя его блокировка имеет много преимуществ и выбирается в качестве настройки по умолчанию в некоторых средах, таких как Ubuntu.RootSudo -Ubuntu Community Help Wikiсодержит много информации об этом.


[1] :Блокировка пароля не означает, что пользователь полностью отключен. Вы по-прежнему можете войти в систему, используя аутентификацию без пароля -(, например. Ключ SSH илиsudo). Подробности см. в man 1 passwd.

4
27.01.2020, 22:16

Теги

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