Onde está o caminho do shell de login definido para/user/games etc.?

Onde está o caminho do shell de login definido para/user/games etc.?

Quando eu inicio um terminal no Ubuntu eu sigo o caminhoecho $PATH

/home/myuser/anaconda3/condabin:/home/myuser/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Quero remover esses caminhos com a palavra-chave games do meu $PATH, mas não consegui encontrar de onde os caminhos como ,, /usr/gamesestão definidos./user/local/games/usr/sbin

Eu tentei passargrep xxx ~/.* -l

Isso fornece arquivos que definem /usr/bin, /usr/local/binetc.

Mas não para os caminhos mencionados gamesacima sbin. Como descubro onde está definido?

Responder1

Existem vários locais onde pode ser definido. Para começar, ele pode ser definido em um ou mais dos seguintes:

  • qualquer script de perfil de shell (por exemplo ~/.bashrc, /etc/profile, /etc/bash.bashrc, , /etc/profile.d/*, etc)
  • /etc/login.defs
  • /etc/security/pam_env.conf
  • /etc/environment
  • $HOME/.pam_environment

Responder2

Se não estiver definido em seu ambiente pessoal, será definido para todos os usuários. Isso significa em algum lugar abaixo /etc. Acesse /etce emita:

grep usr.games * */* */*/* 2> /dev/null

Em uma instalação do Ubuntu, isso lhe dará:

environment:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
login.defs:ENV_PATH     PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
manpath.config:MANPATH_MAP      /usr/games              /usr/share/man
passwd:games:x:5:60:games:/usr/games:/usr/sbin/nologin
passwd-:games:x:5:60:games:/usr/games:/usr/sbin/nologin

Os passwdarquivos são para os jogos do usuário, portanto não têm importância. manpathé para ler os manuais. Então, se você removê-lo environmente login.defs, seus dias de jogo acabaram.

informação relacionada