Как выполнить команду при входе в систему для пользователя системы без домашней папки и личного файла .bashrc?

Я установил домашние папки этих пользователей через файл / etc / passwd, но когда они вошли в систему, я бы хотел, чтобы они активировали python virtualenv. Если бы у них был личный файл .bashrc , я бы просто включил там activate команду, и каталог изменился как hook после активации с virtualenv.

Однако у этих пользователей нет домашних папок и нет личных файлов .bashrc .

Как я могу выполнить другую команду для входа для каждого из этих пользователей? (Необходимо выполнить только одну команду).

Эти пользователи регистрируются только при использовании su , никогда SSH. Машина представляет собой VPS, работающий под Ubuntu 12.04.3 LTS.

2 Solutions collect form web for “Как выполнить команду при входе в систему для пользователя системы без домашней папки и личного файла .bashrc?”

Вы можете добавить файл в каталог /etc/profiile.d системы, который включает инструкцию if/then для каждого из пользователей, для которых вы хотите запустить virtualenv .

пример

Скажем, я создаю такой файл, /etc/profile.d/me.sh .

 if [ "$USER" == "saml" ]; then touch /tmp/samsfile fi 

Сделайте его исполняемым:

 $ chmod +x /etc/profile.d/me.sh 

И затем войдите в систему как saml , используя su :

 $ su saml 

Если мы проверим, был ли создан файл temp, это было:

 $ ls -l /tmp/samsfile -rw-rw-r-- 1 saml saml 0 Oct 14 00:31 /tmp/samsfile 

Если все, что вы хотите сделать, это определить переменные среды, вы можете поместить их в ~/.environment в домашний каталог пользователей. Вы можете добавить более сложные фрагменты оболочки в файл ~/.profile .

У всех учетных записей пользователей есть домашний каталог, даже если он не принадлежит им. Хотя вы можете иметь учетные записи, чей домашний каталог не существует, не так много смысла делать это. Вы можете использовать один каталог, принадлежащий root, в качестве домашнего каталога этих пользователей, если хотите.

Другая возможность выполнить команду во время входа в систему – добавить pam_exec в стек PAM. Но будьте осторожны, что это довольно сложно использовать правильно, потому что программа работает как исходный пользователь или как пользователь root, а не как целевой пользователь и работает в среде, выбранной исходным пользователем, поэтому трудно защитить ее, если он работает как root.

  • Цвета Gnome не отображаются правильно, Vim тоже
  • Какой дистрибутив Linux подходит для развития серверов и несколько прост в использовании?
  • Автозапуск приложения .desktop при запуске не работает
  • Не может SSH от моего IP, но может от других IP-адресов
  • Откат всех пакетов apt-get до максимума, доступных под фактическим sources.list
  • Как передать несколько аргументов через ssh и использовать эти аргументы в сценарии ssh?
  • Неверная ошибка драйвера Vulkan с проприетарным драйвером Nvidia 358
  • Должен ли я устанавливать npm в Kubuntu?
  • терминал: неанглийские символы
  • Отметить пакеты между машинами (клиент и маршрутизатор)?
  • SMBFS Mount внезапно перестала работать. Ошибка CIFS
  • Сервер Ubuntu x64 - VirtualBox - GRUB
  • Interesting Posts

    Удалил ли я весь корневой сервер debian?

    Как узнать, находитесь ли вы в машинописном тексте?

    Какой процесс / демон заменяет netplugd в Centos 7.1?

    awk для цикла для каждой строки в файле

    Получение rsync для удаления исходных файлов, которые уже существуют в пункте назначения

    Статическая конфигурация IPv4 и IPv6 на openwrt linux

    перенаправление echo / printf не работает в фоновом режиме

    Почему переменные locale не отображаются на выходе env или printenv?

    Как остановить вирус Windows в Вине от заражения исполняемых файлов?

    TAR дает ошибку – tar: вы не можете указать более одного параметра `-Acdtrux 'или` –test-label'

    Воспроизведение SD-карты с разделами Linux и Fat32

    Создание аргумента в unix

    Сплошное поведение сравнения со стороны Solaris

    Соединения SSH, работающие в фоновом режиме, не выводятся, если несколько соединений были запущены одной и той же оболочкой

    Как проверить, поддерживает ли `wget` определенную функцию программно?

    Linux и Unix - лучшая ОС в мире.