Я хотел бы определить некоторые глобальные псевдонимы, которые были бы доступны для всех в многопользовательской системе Linux (ярлыки git и т. Д.). Кажется, у меня есть два варианта; либо поместите эти псевдонимы в (что-то вроде) /etc/profile.d/aliases_for_all
или редактируя их в /etc/bash.bashrc
.
Мне нравится подход aliases_for_all, поскольку я могу поддерживать один файл, который не порождает .dpkg- * файлы как кролик после применения обновлений.
Применение изменений к /etc/bash.bashrc
становится сложно редактировать / обновлять в масштабе - особенно в среде с несколькими дистрибутивами / версиями.
Проблема здесь в том, что пользователь не может выполнить одноразовую команду sudo с использованием псевдонима. Учитывая псевдоним ds="find . -maxdepth 1 -type d -exec du -sh '\''{}'\'' \;"
, он доступен для первоначального входа пользователя:
$ alias | grep ds
alias ds='find . -maxdepth 1 -type d -exec du -sh '\''{}'\'' \;'
Я перехожу в / var и запускаю через sudo, но его там нет:
$ cd /var
$ sudo ds
sudo: ds: command not found
Ах да, sudo сбрасывает среду, поэтому, возможно, оболочка входа в систему:
$ sudo --login ds
-bash: ds: command not found
Гм .. все еще не работает, но псевдоним говорит, что он есть:
$ sudo --login alias | grep ds
alias ds='find . -maxdepth 1 -type d -exec du -sh '\''{}'\'' \;'
Это мое /etc/sudoers
файл:
Defaults env_reset,timestamp_timeout=10
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
..и /etc/sudoers.d/sysadmin_group
файл (группа LDAP, в которой находится пользователь выше):
%sysadmin ALL=(ALL) ALL
Может, у меня тут еще что-то не так. Должен ли быть способ заставить эти псевдонимы работать с sudo?