시스템 관리자만 사용할 수 있는 몇 가지 별칭/스크립트를 갖고 싶습니다. /usr/sbin에 스크립트를 넣을 수 있다는 것을 알고 있습니다. 별칭의 경우 사용자 계정을 수동으로 만든 후 다음을 추가할 수 있습니다.
#as root
adduser username
passwd username
usermod -aG wheel username
cd /home/username
nano .bashrc
if [ -f /path/to/file ]; then
. /path/to/file
fi
그러나 나는 각 .bashrc 파일을 수동으로 편집할 필요 없이 시스템 관리자의 .bashrc에서 참조될 이러한 별칭을 포함하는 파일을 갖고 싶습니다. 제안 사항이 있나요? 아니면 수동으로 해야 하나요?
답변1
정말로 sysadmins만 스크립트를 실행할 수 있도록 하려면 가장 쉬운 방법은 sysadmins 그룹만 읽을 수 있는 디렉터리를 만들고 관련 비밀을 그 안에 넣는 것입니다.
답변2
배포판에는 /etc/profile.d에서 파일을 찾는 /etc/profile이 있을 수 있습니다. 그렇다면 Wheel 그룹 구성원에 대해 이러한 별칭을 설정하는 파일을 여기에 배치하세요. Debian 시스템에서 관련 코드는 다음과 같습니다.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
.sh
bash의 경우 확장명을 사용하여 이름을 지정 하면 됩니다 .
/etc/profile.d/admin-aliases.sh
# set up admin-only aliases if the user is a member of the wheel group
if id -Gnz "$LOGNAME" | grep -qxz wheel
then
alias youralias=yourcommand
fi
솔루션은 id | grep
다음에서 빌려왔습니다.Stéphane Chazelas의 솔루션도착하다정확히 일치하는 특정 사용자 그룹 멤버십 검색. 아이디어는 현재 사용자가 휠 그룹의 구성원인지 확인하는 것입니다. id -Gnz
null로 구분된 목록에서 -G
이름( )별로 그룹( ) 목록을 요청합니다. 그런 다음 플래그를 사용하여 -n
에 파이프합니다 .grep
-q
-- 일치하는 항목을 출력하지 않고 반환 코드를 성공 또는 실패로 설정하기만 하면 됩니다.-x
-- 전체 "행"이 일치해야 하므로 사용자가 다음 그룹의 구성원인 경우 오탐이 발생하지 않습니다.flywheel
-z
-- 입력을 null로 끝나는 "줄" 목록으로 해석합니다.
답변3
/etc/bash.bashrc에 이것을 추가하십시오:
if id -G | egrep "(^| )$(getent group wheel | cut -d: -f3)( |\$)" > /dev/null; then
# set your aliases here
fi