파일 권한을 변경하려면 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됩니다.