root@caesar:/home/aleksmanson# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-------------------------------------------------------------------------- aleksmanson@caesar:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
--------------------------------------------------------------------------
не хочу вас путать, но сейчас у пользователя (aleksmanson) пути схожи с root и даже больше. Все началось с того, что я присвоил пользователю все права, что у root: /etc/passwd
aleksmanson:0:0::/home/aleksmanson:/bin/bash
сейчас я вернул все обратно заменив вышеуказанную строку как и было на: aleksmanson:1000:1000::/home/aleksmanson:/bin/bash
Исполняемые файлы перестали отзываться.
psql: could not connect to server: Нет такого файла или каталога
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
psql: could not connect to server: Нет такого файла или каталога
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Но тут есть недочет, к сожалению(
Видимо нарушена последовательность чтения .profile
т.к. пути не успевают присваиваться, а сервер psql запускается и выдает ошибку
Только после того как я этот код пропишу вручную, команда startpsql работает без нареканий
Проверил, если второй раз запускать от имени sudo все нормально - получается не успевает присвоить
Debian 8.7 jessie;
пароль уже установлен, но я не против его убрать)
И мне кажется Posgresql здесь не так важно разбирать, хотя я могу ошибаться posgresql я собирал из пакета (make).
majetree спасибо большое, скажите почему нельзя через alias?
Необходимо создать одну команду, которая будет выполнять несколько команд в терминале (bash), в том числе инициализацию пользователя с паролем. Список и порядок выполнения команд:
su postgres (здесь запрашивается пароль);
ввод пароля; - здесь я так понимаю простой точкой с запятой не отделаешься.
export PATH=$PATH:/usr/local/pgsql/bin; - это вводиться от пользователя posgres
export PGDATA=/usr/local/pgsql/data;
pg_ctl start -l logfile;
psql -c 'select now()';
psql
Система Debian Пример:
pangaea@Caesar: ~$ startpsql;
-далее выполняется список всех указанных выше команд автоматически.
Изначально идея была в том, чтобы заходя под пользователя su postgres выполнялось присвоение двух этих переменных. Я создал отдельный файлик psql.profile, положил его в корневую папку программы и вбил туда две эти строчки кода. Но как заставить bash при инициализации (su postgres) читать и выполнять команды этого файлика? Это будет оптимальное решение или нет?
Я так понял что /etc/profile это стандартный файл в системе, но как быть если я хочу создать данную переменную ( PATH=$PATH:/usr/local/pgsql/bin) в обиход только под программу Postgresql?