chmod를 사용하지 않고 파일 권한을 변경하는 방법은 무엇입니까?

chmod를 사용하지 않고 파일 권한을 변경하는 방법은 무엇입니까?

우리 대학에서는 우리에게 Unix 과제를 주었습니다.

222새로 생성된 파일의 권한을 사용하지 않도록 변경해야 합니다 chmod.

파일 권한을 "222"로 줄입니다 [chmod 명령을 사용하지 마십시오]:

개인적으로 Ruby를 사용할 수 있습니다.

ruby -e "File.chmod(0222, File.join(Dir.pwd, 'F2'))"

그러나 이러한 유형의 솔루션은 허용되지 않을 수 있습니다.

또한 여기에 질문이 있습니다. /usr/bin/chmod 없이 chmod를 수행하는 방법은 무엇입니까?

하지만 대답은 조금 다릅니다. 그들은 삭제된 chmod바이너리를 복구하는 것에 대해 논의하고 있습니다.

없이 파일의 권한을 변경하는 방법은 무엇입니까 chmod?

답변1

귀하의 사양이 명시적으로새로 생성된 파일. chmod새 파일을 사용하기 전에 생성되면 새 파일에 일련의 권한이 부여되므로 이를 변경할 수도 없습니다 chmod.

또한 Ruby 스크립트는 chmod명령/유틸리티를 실행하지 않지만 동일한 기본 시스템 호출을 사용하므로 사실상 동일합니다. 나라면 이런 일이 일어나도록 놔두지 않았을 것이다.

완전한 답변을 제공하지 않고 무엇을 살펴 보는 것이 좋습니다매뉴얼 페이지open()생성한 파일의 권한에 대한 참고 사항:

모드 매개변수는 새 파일을 생성할 때 적용할 파일 모드 비트를 지정합니다. 이 매개변수는 플래그에 또는 가 지정된 경우 O_CREAT필수입니다 . O_TMPFILE또는 둘 다 O_CREAT 지정되지 않으면 O_TMPFILE패턴이 무시됩니다. 유효 모드는 일반적인 방법으로 프로세스의 umask에 의해 수정됩니다. 기본 ACL이 없는 경우 생성된 파일의 모드는 나중에 새로 생성된 파일에 대한 읽기 전용 호출 (mode & ~umask)에만 적용됩니다. open()파일이 가능성이 높습니다. 읽기/쓰기 파일 설명자를 반환합니다.

패턴에는 다음 기호 상수가 제공됩니다.

S_IRWXU 00700사용자(파일 소유자)에게 읽기, 쓰기 및 실행 권한이 있습니다.

[등. ]

또한 인용한 섹션에 "권한 감소"라고 나와 있습니다.통과222", 아니도착하다222. 이것은 제가 고려하고 있는 기능에도 중요합니다.

댓글에 언급이 되어있어서

umask새로 생성된 파일에 대한 권한을 제한한다고 생각합니다 . 이는 표준 기능이어야 하며 Linux와 DragonFly에서 동일하게 잘 작동해야 합니다.

물론 이것은 모두 과제에 대한 나의 해석일 뿐입니다. 여기에 있는 우리 중 누구도 귀하의 교사/교수님이 정답이라고 생각하는 것이 무엇인지 확실히 말할 수 있는 방법이 없습니다. 특히 때때로 교수가 제공한 답변이 정답이 아닐 수도 있기 때문입니다.

관련 정보