Я хотел бы создать псевдоним, который делает что-то вроде этого:
alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access'
Итак, из моей командной строки я вошел в систему с пользователем sudo, и я хотел бы ввести псевдоним, userYYY
чтобы моя оболочка теперь регистрировалась с userYYY
и pwd
была /a/path/that/only/userYYY/has/access
.
Как я могу это сделать? Это userYYY
для запуска некоторых процессов, и в его доме должно быть что-нибудь. Поэтому я попытался изменить его $ HOME, используя:
sudo usermod -m -d /a/path/that/only/userYYY/has/access userYYY
И затем из моей оболочки с моим файлом sudoer я сделал sudo su userYYY
. Но это не сработало. Работало только то, sudo su -l userYYYY
что открывало новый bash внутри моей оригинальной оболочки ( -bash-4.1$ ....
).
Таким образом, я хочу просто избежать написания двух строк в моей оболочке:
sudo su userYYY
cd /a/path/that/only/userYYY/has/access
Есть идеи?
bash: cannot set terminal process group (13964): Inappropriate ioctl for device\nbash: no job control in this shell
.bashrc
файл ,sudo
тоcd
где , как имеющие 2 отдельных линии просто не работает.Одним из вариантов будет редактирование
~/.bashrc
целевого пользователя и добавлениеcd
туда:источник
Короткий ответ - вы не можете.
sudo su
Начинает новую оболочку , которая должна выйти , прежде чем он попадет вcd
команду.источник
Для меня сочетание
sudo
иscreen
выработано:Эта команда сначала переключается на
vagrant
пользователя. Затем по мереvagrant
изменения каталога на/vagrant
и выполняетnpm install
.источник
Я знаю, что это немного отличается от первоначального вопроса, но идея состоит в том, чтобы запустить команду от имени другого пользователя, не вводя пароль, когда политика запрещает
sudo su <user> -c
.источник