man sudo
sudo -i
시작 로그인 셸 에 따르면 내 이해로는 read/source ~/.profile
즉, /root/profile
또는 [non-root user home/.profile
및 이어야 합니다 /etc/profile
. 별칭을 추가해도(예: alias ll='ls -la'
두 파일에 별칭 추가) 에서 시작한 셸에서는 해당 별칭을 사용할 수 없습니다 sudo -i
. bash
쉘에서 실행 하면 sudo -i
별칭이 작동합니다.
나는 별칭을 넣는 것을 알아 냈습니다 /etc/profile.d/00-aliases.sh
.https://askubuntu.com/questions/810730/how-to-share-bash-aliases- Between-non-root-user-bash-and-shell-opened-by-sudo. 여기서는 예상되는 동작이 발생하지 않는 이유를 알고 싶습니다.
나는 이것을 다음과 같이 보고한다.launchpad.net의 sudo 오류, 그러나 지금은 이것이 예상되는 동작의 까다로운 측면인지 확실하지 않습니다. man sudo
그것을 설명하는 방법은 너무 -i
사소합니다 .
답변1
읽는 파일은 대상 사용자의 쉘에 따라 다릅니다. 예를 들어 sudo -u user1 -i
user1과 함께 사용 csh
하면 ~user1/.login
. ksh 사용자의 경우 ~user1/.profile
.
bash
사용자(예 : ) 의 경우 root
읽고 있는 파일이 ~/.bash_profile
존재하는지 여부 및 대체 파일~/.profile
예를 들어
% sudo head -1 /root/.bash_profile /root/.profile
==> /root/.bash_profile <==
echo RUNNING BASH_PROFILE
==> /root/.profile <==
echo RUNNING PROFILE
% sudo -i
RUNNING BASH_PROFILE
root@server:~# rm /root/.bash_profile
root@server:~# exit
logout
% sudo -i
RUNNING PROFILE
root@server:~#
.bash_profile
그래서 우리는 차단이 .profile
있음을 알 수 있습니다. 이는 bash
ssh를 통해 로그인하든 sudo -i
.