사용자 정의 스크립트를 저장하기 위해 /root/bin 폴더를 만들었습니다. 모든 사용자가 이러한 스크립트에 액세스할 수 있다는 생각으로 사용자를 "사용자" 그룹에 추가했습니다. 그룹에 폴더와 폴더의 모든 파일에 대한 rwx 권한을 부여했습니다. 그룹의 소유자도 설정했습니다. 그러나 루트가 아닌 사용자로는 여전히 이 스크립트에 액세스할 수 없습니다. 도와주세요!
답변1
~에 따르면파일 시스템 계층 표준, /usr/local
디렉토리와 해당 하위 디렉토리(예: bin
하위 디렉토리)는 "이 호스트에 특정한 로컬 데이터"용이고 디렉토리는 /root
루트 사용자의 홈 디렉토리입니다.
루트의 홈 디렉토리는 일반적으로 모든 일반 사용자가 액세스할 수 없어야 합니다.
관리자는 루트 계정을 통해 로컬 스크립트를 설치할 수 있으며 /usr/local/bin
, 이를 통해 이 디렉토리를 소유한 모든 사용자가 해당 스크립트에 액세스할 수 있습니다 PATH
(또는 절대 경로 이름이 있는 경우 실행 방법을 알고 있음).
이러한 스크립트는 해당 스크립트를 유지 관리하는 사용자(아마도 루트)를 제외한 누구도 작성할 수 없습니다. 즉, 이러한 파일의 소유권은 이어야 하며 또는 같은 특수 실행 그룹이 없는 한 root
해당 그룹에도 속할 가능성이 높습니다 (일부 BSD 시스템에서 발견됨. 예를 들어 및 실행 파일에서 다른 실행 파일을 확인 ). 권한은 모든 사람과 소유자 에게 부여되어야 합니다 (쓰기 가능한 복사본이 다른 곳에 보관되어 있지 않은 한).root
bin
wheel
/bin
/usr/bin
r
x
w
설치됨버전은 누구도 쓸 수 없습니다).
755
이는 파일 소유자가 쓰기 가능한지( ) 또는 쓸 수 없는지( )에 따라 또는 를 사용하여 파일에 대한 권한을 설정하는 것을 의미합니다 .555
chmod
755
555
답변2
FORMAT="ERROR: path: '%s' group name: '%s' group perm: '%s'\n"
find /root/bin -perm -g+rX -printf "%p %g %M\n" | \
while read path group perm; do
if ! [[ ${group} == "users" && ${perm:4:3} == "r-x" ]]; then
printf "${FORMAT}" ${path} ${group} ${perm:4:3}
fi
done
ERROR: path: '/root/bin' group name: 'root' group perm: 'r-x'
ERROR: path: '/root/bin/script' group name: 'root' group perm: 'r-x'
그것은 무엇을 합니까? 모든 경로를 나열 /root/bin
하고 그룹이 "users"이고 권한이 "rx"인지 확인합니다.