권한은 민감하므로 특정 사용자가 명령을 실행할 수 있는지 여부를 아는 것이 중요합니까 chmod
?
답변1
아니요, 모든 사용자가 이 명령을 실행할 수 있으며 그렇게 할 수 있어야 합니다. 이 명령은 사용자가 디렉터리나 파일에 대한 권한 비트를 조작하는 방법입니다. 이는 쉘 스크립트를 실행 가능하게 만들거나 사용자가 속할 수 있는 그룹에 액세스할 수 있는 디렉터리를 만드는 데 중요합니다.
예
실행 가능한 스크립트
$ ls -l reset* -rwxrwxr-x 1 saml saml 378 Sep 2 02:46 reset_raw_sorted.bash
카탈로그 방문
$ ls -ld adir drwxrwxr-x 2 saml saml 4096 Oct 19 21:28 adir
이제 이 디렉터리에 대한 실행 비트를 비활성화합니다.
$ chmod -x adir $ ls -ld adir drw-rw-r-- 2 saml saml 4096 Oct 19 21:28 adir
cd
이제 이 디렉토리에 들어갈 수 없습니다.$ cd adir/ bash: cd: adir/: Permission denied
파일 및 디렉터리에 대한 그룹 액세스 제어
이 그룹에 사용자가 있다고 가정해 보겠습니다.
$ groups saml vboxusers jupiter newgrp blah
blah 그룹의 다른 사용자에게 액세스 권한을 부여하고 싶습니다.
adir
$ ls -ld adir drwx---r-x 2 saml blah 4096 Oct 19 21:28 adir
아래와 같이
chmod
다른 사용자 권한을 제거하고saml
사용자 및 그룹에 대한 액세스를 제한하는 데 사용할 수 있습니다.blah
$ chmod o-rwx,g+rwx adir $ ls -ld adir drwxrwx--- 2 saml blah 4096 Oct 19 21:28 adir
답변2
모든 사용자는 chmod
자신이 소유한 모든 파일에 대한 권한을 호출하고 변경할 수 있습니다(일반적으로 루트는 물론 모든 파일에 대한 권한을 변경할 수 있습니다). 사용자는 자신에게 속하지 않은 파일에 대한 권한을 변경할 수 없습니다. 이렇게 하면 파일 보안이 완전히 손상됩니다! 파일에 대한 쓰기 권한은 파일 내용에만 적용되며 메타데이터(예: 권한)에는 적용되지 않습니다.
유닉스 구현임의 접근 제어: 파일의 소유자는 다른 사용자가 파일에 액세스하도록 자유롭게 허용할 수 있습니다.
Linux의 보안 프레임워크(SELinux, AppArmor 등)와 같이 루트가 루트가 아닌 사용자가 재정의할 수 없는 방식으로 특정 리소스에 대한 액세스를 제한할 수 있도록 하는 다양한 형태의 필수 액세스 제어가 있습니다. 그러나 이는 전용 사용자로 실행되는 애플리케이션을 격리하고 손상될 경우 발생할 수 있는 피해를 제한하도록 설계되었습니다. 이는 시스템 사용자 간에 필수 액세스 제어를 시행하는 데 도움이 되지 않습니다. MAC가 필요한 경우 여러 사용자가 있는 Unix 시스템은 올바른 환경이 아니며 네트워크가 없거나 매우 엄격하게 제어되는 네트워크, 이동식 드라이브 등이 없는 폐쇄형 시스템이 필요하며 각 사용자는 자신의 컴퓨터를 가지고 있습니다.