Por que o '/ sbin' não está incluído no $ PATH para novo usuário?

1

ifconfig está localizado em /sbin/ifconfig . Eu não tenho problema ao emitir o comando ifconfig no usuário root.

O problema começou quando criei um novo usuário.

root@Ubuntu:~# useradd -m user
root@Ubuntu:~#

root@Ubuntu:~# passwd user
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@Ubuntu:~# 

root@Ubuntu:~# su user
user@Ubuntu:/root$ id
uid=1003(user) gid=1003(user) groups=1003(user)
user@Ubuntu:/root$ 

ifconfig não foi encontrado no novo usuário.

user@Ubuntu:~$ ifconfig
-su: ifconfig: command not found
user@Ubuntu:~$ 

A solução alternativa é executá-lo a partir do caminho completo /sbin/ifconfig

user@Ubuntu:~$ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
user@Ubuntu:~$ 

user@Ubuntu:~$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr AA:AA:AA:AA:AA:AA
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
user@Ubuntu:~$

ifconfig não foi encontrado, pois /sbin não está mais configurado no novo ambiente do usuário.

user@Ubuntu:~$ echo $PATH
/home/user/bin:/home/user/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
user@Ubuntu:~$ 

user@Ubuntu:~$ echo $PATH | grep sbin
user@Ubuntu:~$ 

Não vejo esse problema no usuário root, pois /sbin é parte de $PATH por padrão.

root@Ubuntu:~# ifconfig 
eth0      Link encap:Ethernet  HWaddr AA:AA:AA:AA:AA:AA
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0

root@Ubuntu:~# echo $PATH | grep sbin
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
root@Ubuntu:~# 
  1. A pergunta é por que /sbin não está incluído por padrão? Isso não dificulta as coisas para o usuário?

  2. Como garantir que /sbin seja adicionado automaticamente em $PATH em vez de modificá-lo manualmente para cada usuário?

por Charlotte Russell 03.11.2017 / 17:36

1 resposta

2

O diretório /sbin é para manutenção do sistema e / ou ferramentas administrativas. Portanto, apenas os administradores podem usá-lo e você não tem esse diretório em seu $ PATH. Você pode ler mais no Padrão da Hierarquia do Sistema de Arquivos ESF .

O local certo para adicionar novo valor à variável $PATH é o arquivo ~/.profile do usuário ou o arquivo /etc/profile do sistema. Geralmente já existe uma linha com $PATH , então você precisa apenas adicionar /sbin ao início da linha. Ou apenas adicione esta linha no final do arquivo:

PATH="/sbin:$PATH"

Você também pode editar o arquivo /etc/skel/.profile . Esse arquivo será copiado para o diretório pessoal de um usuário quando você criar um novo. Mas se você quiser ter esse recurso para todos os usuários, altere /etc/profile .

    
por Evgeniy Yanuk 03.11.2017 / 17:54