Debain (Buster) Su가 제대로 작동하지 않아 명령을 찾을 수 없습니다


1
  • 예를 들어 : ifconfig를 설치했습니다.
  • 먼저 "su"로 루트가됩니다
  • 이제 "ifconfig"를 작성하고 "command not found"를 얻습니다.
  • "sudo ifconfig"를 작성하면 이제 작동합니다.

이것은 많은 프로그램에서 발생하는 것으로 보입니다 (모두는 아님).

다른 예 : apt-get은 동일한 방법을 사용하지 않으면 응용 프로그램을 올바르게 설치하지 않는 것 같습니다.

이미 루트 인 경우 sudo를 작성할 필요가 없습니다.

왜 그런가요? 이 문제를 해결하려면 어떻게해야합니까?

답변:


4

TL, DR : su --login또는을 사용하십시오 sudo.


데비안은 PATH일반 사용자를 위해 다르게 설정 합니다. /etc/profile에서 기본값 /sbin은 root로 예약 되어 있음 을 알 수 있습니다 .

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

type ifconfig이 유틸리티는 상주 /sbin/ifconfig사용자가 쉽게 액세스 할 수없는 이유입니다. su인수없이 실행 하면 PATH변수를 포함하여 호출하는 사용자 환경이 유지 됩니다. sudo반면에, 새로운 환경을 제공하고 호출하는 사용자를 재정의합니다 PATH.


su오작동 이라고 생각하는 이유 는 재설정 PATH이며 IFS기본적으로 레거시 동작 이기 때문 입니다. 버스터는 최근 util-linux구현 su방식이 달라 졌다 . 자세한 내용 /usr/share/doc/util-linux/NEWS.Debian.gz은 참조하십시오.


1
또는 단순히 /sbin/ifconfig없이 sudosu
GAD3R

0

dsstorefile1이 말했듯이 동작이 변경되었습니다.

"su"대신 "su-"를 실행하거나

이전 데비안의 동작을 유지하려면 "/WAY/login.defs"에 "ALWAYS_SET_PATH yes"를 추가하십시오.


0

su - root대신에 사용하십시오 su root. 그런 다음 입력adduser username sudo


2
슈퍼 유저에 오신 것을 환영합니다! 답변 을 수정 하고 OP가 해야하는지 설명 할 수 있습니까 ?
bertieb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.