Compare Debian (esquerda) e 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 de eu não consigo executar ifconfig
sem superpoderes no Debian é que não está no meu caminho. Quando eu uso /sbin/ifconfig
, ele funciona.
Há algum motivo para eu não adicionar /usr/local/sbin:/usr/sbin:/sbin
para o 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
Comentários
- Ótima pergunta – votos positivos 🙂 A propósito, aqui ' s alguma história sobre o Debian ' s decisão de não p ut
/usr/local/sbin:/usr/sbin:/sbin
no PATH padrão para usuários comuns. A abordagem do ' do Ubuntu parece mais amigável para todos, exceto para os usuários mais experientes.
Resposta
Na Política do Debian está escrito que o Debian segue a Hierarquia de arquivos Padrão versão 2.3. Nota # 19 no padrão diz:
Decidindo quais coisas vão para " sbin " diretórios é simples: se um usuário normal (não um administrador do sistema) irá executá-lo diretamente, então ele deve ser colocado em um dos diretórios " bin ". Os usuários comuns não devem ter que colocar nenhum dos diretórios sbin em seu caminho.
Por exemplo, arquivos como chfn, que os usuários usam apenas ocasionalmente, ainda devem ser colocados em / usr / bin. ping, embora seja absolutamente necessário para o root (recuperação e diagnóstico de rede), é frequentemente usado por usuários e deve residir em / bin por esse motivo.
Recomendamos que os usuários tenham permissão de leitura e execução para tudo em / sbin exceto, talvez, certos programas setuid e setgid. A divisão entre / bin e / sbin não foi criada por razões de segurança ou para evitar que os usuários vejam o sistema operacional, mas para fornecer uma boa partição entre binários que todos usam e aqueles que são usados principalmente para tarefas de administração. Não há vantagem de segurança inerente em tornar / sbin fora dos limites para usuários .
Resposta curta:
Há algum motivo para eu não adicionar
/usr/local/sbin:/usr/sbin:/sbin
para meu caminho no Debian?
Como a nota afirma, não há razão para você não fazer isso. Como você é o único usando o sistema e precisa dos binários nos diretórios sbin
, fique à vontade para adicioná-los aos seus $PATH
. Neste ponto, deixe-me guiá-lo para uma excelente resposta sobre como fazer isso corretamente.
Resposta
A única razão para não adicioná-los é que torna o preenchimento dos comandos com tabulação mais lento (já que mais diretórios são pesquisados) e menos eficaz (já que há mais probabilidade de haver correspondências espúrias de comandos não faz sentido para usuários não root).