특정 명령을 실행하려면 사용해야 합니다.
sudo -h -u someuser <somecommand>
정신을 차리기 위해 별칭을 만들었습니다.
alias somecommand='function _dm(){ sudo -u ubuntu somecommand $@; };_dm'
내가 멋진 일을 시도하기 전까지는 이것은 훌륭하게 작동합니다.
somecommand arg1 | xargs somecommand arg2
xargs가 별칭을 호출하지 않기 때문에 문제가 발생합니다. 어떻게든 이 작업을 수행할 수 있습니까?
답변1
귀하의 별칭이 에 있는 한 다음을
.bashrc
수행할 수 있어야 합니다....|xargs bash -c somealias ...
대신 별칭을 쉘 스크립트에 넣는 것이 더 쉽습니다. 을 만들고
~/bin
에 추가하고PATH
스크립트를 넣으면 원래 명령이 작동합니다.
예제 셸 스크립트:
#!/bin/bash
sudo -u ubuntu somecommand "$@"
편집하다:이 답변bash -ic
대신에 #1을 시도해 볼 것을 제안합니다 bash -c
.