파일의 권한과 그룹 소유자를 동시에 변경하는 방법

파일의 권한과 그룹 소유자를 동시에 변경하는 방법

파일 권한을 변경하려면 chmod를 사용할 수 있다는 것을 알고 있습니다. 그룹 소유자를 변경하려면 chgrp를 사용할 수 있습니다. 그런데 권한과 소유자를 동시에 변경하고 싶은 경우 Linux에서 사용할 수 있는 명령이 있나요?

예를 들어 다음과 같은 권한과 소유자를 가진 파일이 있습니다.

-rw-r--r--+  1 raymondtau  staff    0 May  8 16:38 WantToChangeThisFile

이제 다음과 같이 변경하고 싶습니다.

---x-w--wx+  1 raymondtau  admin    0 May  8 16:38 WantToChangeThisFile

이 명령을 사용할 수 있다는 것을 알고 있지만 chmod 123 WantToChangeThisFile && chgrp admin WantToChangeThisFile이를 수행할 수 있는 영리한 방법이 있는지 궁금합니다.

답변1

파일을 어딘가(최종 대상 등)에 복사하고 싶다면 다음을 살펴보세요.install주문하다:

install -m 0777 -o root $sourcefile $destinationfile

답변2

"UNIX-way"라는 개념이 있습니다. 각 도구는 간단한 기능을 수행해야 합니다. 더 복잡한 기능이 필요할 경우 더 작은 도구를 결합할 수 있습니다.

그 반대는 모든 기능이 하나의 거대한 도구로 통합되는 모놀리식 디자인입니다.

복잡한 작업을 수행하려면 간단한 도구를 호출하는 스크립트를 작성하세요.

답변3

*nix에서 작업에 적합한 도구를 사용하는 것이 중요하지만 실제로 모든 링크 명령에서 동일한 경로를 반복하는 것은 어리석은 것처럼 보입니다. 대신 Bash 변수를 사용해야 하며, 특히 $_.

귀하의 명령은 다음과 같습니다

chmod 123 WantToChangeThisFile && chgrp admin $_

ALT + 는 유사한 작업을 수행하여 현재 셸에서 마지막으로 사용된 인수를 추출합니다.

답변4

Rsync는 다음과 같은 상황에서 유용합니다.

아름다운 수첩(TM)에서 발췌

--chown=USER:GROUP 단순 사용자 이름/그룹 이름 매핑

--chmod=CHMOD는 파일 및/또는 디렉터리 권한에 영향을 미칩니다.

예를 들어 chmod /mnt/lala/lala4000/ "ugo=rX" 및 chown "foo.bar"를 원합니다.

rsync --chmod=ugo=rX --chown=foo:bar -rvtpolgh /mnt/lala/lala4000/ /mnt/lala/lala4000/

그러면 디렉터리가 재귀적으로 chown 및 chmod됩니다.

관련 정보