나는 달리고 있다
Linux 4.4.0-116-generic Ubuntu + KDE ( x86_64 GNU/Linux )
ksession
특정 세션을 종료하기 위해 별칭을 실행하고 싶습니다 . 동시에 나는 다른 사람이 아닌 나만 이 별칭을 실행할 수 있기를 원합니다. 그래서 디렉터리 .bashrc
에서 파일을 찾아 /root
이름별로 별칭을 추가하고 명령을 ksession
실행해 보았지만 source
작동하지 않았고 다음 오류가 발생했습니다.
amit@C0deDaedalus:~$ source /root/.bashrc
bash: /root/.bashrc: Permission denied
amit@C0deDaedalus:~$ sudo source /root/.bashrc
sudo: source: command not found
source
이 파일을 루트가 아닌 파일 로 만드는 방법이 있습니까 ?루트가 아닌 사용자로 별칭을 실행하고 싶습니다. 이렇게 sudo로 실행할 수 있나요?
$ sudo ksession
시도했지만 다음 오류로 인해 실패했습니다.
amit@c0deDaedalus:~$ sudo ksession sudo: ksession: command not found
그렇지 않은 경우 루트가 아닌 사용자로부터 루트 별칭을 실행하는 해결 방법이 있습니까?
답변1
루트에는 별칭이 필요하지 않습니다. 개인적인 것을 원한다면 다른 사용자 계정(이 경우 루트 계정)의 내용을 변경하지 마십시오.
ksession
쉘 스크립트로 작성 하고 sudo
필요할 때 스크립트에서 사용하십시오. 예를 들어 스크립트를 개인 디렉터리에 넣고 $HOME/bin
디렉터리가 디렉터리의 일부인지 $PATH
, 스크립트가 실행 가능한지 확인하세요.
또는 이를 쉘 함수로 작성하여 파일에 넣으십시오 ~/.bashrc
. 이 기능은 sudo
필요할 때 사용할 수 있습니다.
또는 별칭으로 작성하여 ~/.bashrc
파일에 넣으세요. sudo
필요한 경우 별칭을 사용할 수 있습니다.
귀하의 명령 은 기본 제공 명령이고 외부 명령이 필요하기 sudo source ...
때문에 작동하지 않습니다 .source
bash
sudo
작동하더라도 sudo
호출 명령이 자체 하위 쉘에서 실행 중이므로 호출 쉘에서 별칭이 활성화되지 않습니다.
답변2
/etc/profile.d/에 스크립트를 생성하여 모든 사용자에 대한 별칭을 생성할 수 있습니다.
/etc/profile.d에 00-aliases.sh(또는 다른 멋진 이름)라는 파일을 만듭니다.
nano /etc/profile.d/00-aliases.sh는 이 파일에 별칭을 넣습니다. 예:
alias foo='bar --baz' alias baz='foo --bar' 파일 저장
변경 사항을 적용하려면 열려 있는 모든 터미널을 다시 시작하세요. 즐기다