특정 폴더(이 경우 내 폴더는 "CT")에서 휠 그룹에 rm을 부여하고 싶습니다.
Visudo에 다음 줄을 추가해 보았습니다.
%wheel All=(ALL) /bin/rm /CT/
CT 폴더에 테스트 파일 "test1"이 있고 Wheel 사용자를 사용하여 RM을 시도하면 실행할 권한이 없다는 메시지가 나타납니다./bin/rm test1
답변1
디렉토리 자체에서만 파일을 삭제하려고 /CT
하므로 sudo
.
처음에는 그룹 소유권과 권한을 루트로 설정해야 합니다.
chgrp wheel /CT
chmod g+rwx /CT
이제 그룹의 사용자는 wheel
다음을 사용하지 않고 이 디렉터리의 모든 파일을 생성(생성 및) 삭제할 수 있는 권한을 갖습니다 sudo
.
rm -f /CT/unwanted.txt
답변2
귀하의 명령을 사용하면 휠 그룹의 사용자가 를 실행할 수 있습니다 rm /CT/
. 그게 다야. 그 이하도 아닙니다.
/CT/
여기에 지정된 것과 똑같은 플래그를 사용하는 경우 사용자가 콘텐츠를 삭제할 수 있도록 이 방법을 시도해 볼 수 있습니다 .
%wheel ALL=(ALL) /bin/rm -rf /CT/*
제가 일반적으로 선호하는 컨트롤은 sudo
매개변수의 유효성을 검사하고 해당 스크립트가 통과하도록 하는 스크립트를 작성하는 것입니다 sudo
. 대상이 폴더 내부의 파일인지 확인하는 것과 같은 것으로 충분할 수도 있습니다./CT
#!/bin/bash
#
ss=0
for item in "$@"
do
real=$(readlink "$item")
if [[ "$real" =~ ^/CT/. ]] && [[ -f "$real" ]]
then
rm -f -- "$item"
else
[[ -t 2 ]] && echo "Refusing to remove '$item'" >&2
ss=1
fi
done
exit $ss
대상이 디렉터리여야 하고 특정 소유권이 있어야 한다는 등의 조건을 추가할 수 있습니다.