Existe uma razão para eu não adicionar / usr / local / sbin, / usr / sbin, / sbin ao meu caminho no Debian?

25

Compare o Debian (esquerda) e o Ubuntu (direita):

$ ifconfig                                 $ ifconfig
bash: ifconfig: command not found          eth0     Link encap ...
$ which ifconfig                           $ which ifconfig
$                                          /sbin/ifconfig

Então, como superusuário:

# ifconfig                                 # ifconfig
eth0      Link encap ...                   eth0     Link encap ...
# which ifconfig                           # which ifconfig
/sbin/ifconfig                             /sbin/ifconfig

Além disso:

# ls -l /sbin/ifconfig                     # ls -l /sbin/ifconfig
-rwxr-xr-x 1 root root 68360 ...           -rwxr-xr-x 1 root root 68040 ...

Parece-me que a única razão pela qual não posso correr ifconfigsem superpoderes no Debian é que ele não está no meu caminho. Quando eu uso, /sbin/ifconfigele funciona.

Existe alguma razão para eu não adicionar /usr/local/sbin:/usr/sbin:/sbinno meu caminho no Debian? Este é um computador pessoal, eu sou o único usuário humano.


Versões usadas ( uname -a):
Ubuntu:

Linux ubuntu 3.13.0-51-generic #84-Ubuntu SMP Wed Apr 15 12:08:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Debian:

Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux
caos
fonte
Ótima pergunta - votada :) Aliás, aqui está um histórico sobre a decisão do Debian de não colocar /usr/local/sbin:/usr/sbin:/sbino PATH padrão para usuários comuns. A abordagem do Ubuntu parece mais amigável para todos, exceto para os usuários mais experientes.
sampablokuper

Respostas:

27

Na política Debian está escrito que o Debian segue a versão 2.3 do File Hierarchy Standard . A nota 19 da norma diz:

Decidir o que acontece nos diretórios "sbin" é simples: se um usuário normal (não um administrador do sistema) o executar diretamente, ele deverá ser colocado em um dos diretórios "bin". Usuários comuns não precisam colocar nenhum dos diretórios sbin no caminho.

Por exemplo, arquivos como chfn, que os usuários usam apenas ocasionalmente, ainda devem ser colocados em / usr / bin. O ping, embora seja absolutamente necessário para o root (recuperação e diagnóstico da rede), é freqüentemente usado pelos usuários e deve estar em / bin por esse motivo.

Recomendamos que os usuários tenham permissão de leitura e execução para tudo no / sbin, exceto, talvez, certos programas setuid e setgid. A divisão entre / bin e / sbin não foi criada por motivos de segurança ou para impedir que os usuários vejam o sistema operacional, mas para fornecer uma boa partição entre os binários que todos usam e os que são usados ​​principalmente para tarefas de administração. Não há vantagem inerente à segurança em tornar / sbin fora dos limites para os usuários .


Resposta curta:

Existe alguma razão para eu não adicionar /usr/local/sbin:/usr/sbin:/sbinno meu caminho no Debian?

Como a nota afirma, não há razão para que você não deva fazer isso. Como você é o único que usa o sistema e precisa dos binários nos sbindiretórios, fique à vontade para adicioná-los ao seu $PATH. Neste ponto, deixe-me guiá-lo para uma excelente resposta sobre como fazer isso corretamente.

caos
fonte
4

A única razão para não incluí-los é que isso torna a conclusão dos comandos mais lenta (uma vez que são pesquisados ​​mais diretórios) e menos eficaz (uma vez que é mais provável que haja correspondências espúrias de comandos que não fazem sentido para o uso não raiz) )

R ..
fonte