일부 파일이 포함된 특정 디렉터리의 권한을 640에서 해당 폴더에 생성된 파일로 변경하고, 일부 특정 사용자가 해당 파일에 액세스할 수 있도록 파일을 생성한 후 644로 변경할 수 있나요?
환경 - Oracle 데이터베이스를 실행하는 RHEL 6
답변1
chmod(1)
매뉴얼 페이지를 읽어보세요 .
640
이것이 의미하는 바는 rw-r-----
소유자가 읽기/쓰기(첫 번째 삼중)할 수 있고, 파일을 소유한 그룹의 사용자(두 번째 삼중)가 읽을 수 있으며, 다른 누구도 어떤 작업도 수행할 수 없다는 것입니다.
(모든 사람이 읽기, 소유 사용자가 쓰기) 로 변경하려면 644
다른 사람에게 읽기 권한을 추가하면 됩니다.
$ chmod o+w file
또는 다음을 통해 명시적으로 설정합니다.
$ chmod 644 file
또는
$ chmod a=r,u+w
즉, 디렉터리나 파일의 권한을 변경하고 있는지 확인하세요(귀하의 질문에서는 명확하지 않습니다). 여기서 중요한 점은 디렉터리에서 실행 권한을 제거하면 디렉터리를 탐색할 수 없게 된다는 것입니다. 즉, 디렉터리에 대한 실행 권한이 없는 사용자는 디렉터리를 변경할 수 없으며 그 안에 있는 파일을 읽을 수도 없습니다.
답변2
ACL은 이 경우에 꼭 필요한 것이며 RHEL 6에서 지원됩니다. 예를 들어 이러한 파일을 특정 디렉터리에 넣습니다: /dir
현재 디렉터리에 있는 권한을 유지하면서 특정 그룹이나 사용자에게 폴더나 해당 콘텐츠에 대한 액세스 권한이 없는 디렉터리 및 해당 하위 디렉터리에 대한 액세스 권한도 부여하려고 합니다. 예를 들어 그룹에 읽기 권한을 부여하려면 다음 명령을 실행하면 됩니다.
setfacl -dR -m "g:groupname:rwX" /dir
-d
새 콘텐츠가 이 디렉터리에 추가될 때 acl을 상속하도록 acl을 기본값으로 설정합니다 /dir
.
재귀를 위해 -R
.
big은 X
이 그룹의 사용자가 cd
디렉터리에 들어갈 수 있도록 보장하지만 내부의 파일을 실행 가능하게 만들지는 않습니다.
그런 다음 다음 명령을 실행하여 올바르게 적용되었는지 확인할 수 있습니다.
getfacl /dir
여기있어매뉴얼 페이지을 위한 setfacl
:
답변3
시스템은 파일이 완전히 생성되었음을 어떻게 알 수 있습니까?
프로세스에서 파일을 생성했고 귀하가 해당 프로세스를 제어할 수 있는 경우 마지막에 파일 권한을 변경하는 단계를 추가하는 것이 좋습니다.
반대로, 파일 생성 프로세스를 제어할 수 없는 경우 가장 좋은 옵션은 몇 분마다 cron 작업을 실행하는 것입니다. 작업은 한동안 변경되지 않은 파일(아직 기록 중인 파일을 찾을 수 없는지 확인하기 위해)과 변경하려는 권한을 찾아야 하며 권한을 변경해야 합니다. 그것은 다음과 같습니다:
find /the/directory -type f -mmin +5 -perm 0640 -exec chmod 644 '{}' ';'
cron에서 5분마다 이를 실행하면 상대적으로 강력한 솔루션을 얻을 수 있습니다.
답변4
권한을 변경하려면 chmod 명령을 사용하면 됩니다. 만약에. Chmod 777 파일 이름은 운영 체제의 사용자, 그룹 및 기타 사용자에게 읽기, 쓰기, 실행 권한을 부여합니다.