sudo
의 macports 버전을 설치했습니다. 한 가지는 제외하고 모두 잘합니다. Python 2.6을 사용하여 ~
을 사용자의 홈 디렉토리로 확장하면 Snow Leopard와 함께 제공되는 sudo
의 버전과 다른 결과가 발생합니다. Macports sudo가 ~에서/var/root로 확장됩니다.
#expand_home_dir.py
import os
os.path.expanduser('~')
아래는 위에 나열된 코드의 3 개 가지 통화 있습니다
예를 들어 다음 파이썬 코드를 고려하십시오.
robert$ python2.6 expand_home_dir.py
/Users/robert
robert$ sudo python2.6 expand_home_dir.py
/var/root
robert$ /usr/bin/sudo python2.6 expand_home_dir.py
/Users/robert
어떤 생각이 왜 이런 일이 : 내 $PATH
이 /opt/local/bin
로 시작하기 때문에 sudo는을 사용하여 첫 번째 통화는 MacPorts의 버전을 사용합니까?
나는 이것이 sudo의 MacPorts 버전 때문인 것 같지 않습니다. 나는 sudo를 망치지 않았다. sudo -i를 쓰면'cd ~','pwd'도'/ var/root'를 출력한다. 아마도'os.path.expanduser'가 권한 승격과 관계없이 현재 사용자의 경로를 얻기 위해 파이썬에 사용하는 것이 적절한 지 묻는 것이 좋습니다. (on stackoverflow) – Ricket
@Ricket : sudo -i를 사용하면 실제로는 새로운 사용자의 홈 디렉토리로 변경하고 새 쉘을 열 것을 직접 지정합니다. 그러나 -i없이 sudo를 사용하는 것은 이상한 행동이 나타나는 곳입니다. –