Как выполнить команду при входе в систему для пользователя системы без домашней папки и личного файла .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.

  • Проблема при записи сообщения с одного терминала на другой терминал
  • Получение ошибки 401 от старого сервера выпуска Ubuntu
  • Легкий метод командной строки для определения конкретной строки архитектуры ARM?
  • Подключение к VPN с виртуальной машины Linux
  • fcitx не может начать использовать
  • Верхний вид леса с фильтром, могу ли я включить всех детей?
  • aufs fs монтируется перед составными частями
  • Безопасно ли chown на / usr / lib?
  • Строка состояния экрана GNU - как заставить отображать имена сеансов оболочки?
  • Ubuntu Как переустановить загрузчик
  • Есть ли простой способ остановить и переиздать команду?
  • Linux и Unix - лучшая ОС в мире.