사용자 A가 file.txt를 소유 한 경우 사용자 A는 루트 액세스없이 파일 소유권을 사용자 B로 변경할 수 있습니까? chown B file.txt를 사용자 A로 실행하면 작업이 허용되지 않습니다 오류가 발생합니다. 사용자 A가 파일을 소유하고 있기 때문에 소유권을 변경할 수 있어야하지만 그렇게 할 수있는 방법은 보이지 않습니다. 도와 주셔서 감사합니다!
사용자 A가 file.txt를 소유 한 경우 사용자 A는 루트 액세스없이 파일 소유권을 사용자 B로 변경할 수 있습니까? chown B file.txt를 사용자 A로 실행하면 작업이 허용되지 않습니다 오류가 발생합니다. 사용자 A가 파일을 소유하고 있기 때문에 소유권을 변경할 수 있어야하지만 그렇게 할 수있는 방법은 보이지 않습니다. 도와 주셔서 감사합니다!
답변:
사용자 A가을 소유 한 경우 루트 액세스 / 스도 권한 file.txt
이 file.txt
없으면 소유권을 변경할 수 없습니다 . 이것은 기능이 아니며 버그가 아닙니다. 그리고 장로 들이이 기능을 사용하기로 선택한 많은 이유 중 하나는 roadmr에 의해 귀하의 질문에 대한 설명으로 설명되었습니다
결론 :chmod
루트 / sudo 권한이없는 파일의 소유자이지만 파일의 소유권이나 사용자 또는 그룹 ( chown
또는을 사용하여 chgrp
)을 변경할 수없는 경우 사용하여 파일의 권한을 변경할 수 있습니다 루트 / 스도 권한이없는 파일 소유자 이것은 기능이 아니며 버그가 아닙니다.
touch t; ls -l t; chgrp lpadmin t; ls -l t
lpadmin 그룹에 있다고 가정 하십시오 . 내 답변과 관련 질문도 참조하십시오.
아니요, 액세스 권한없이 파일 소유자를 변경할 수는 없지만 파일을 소유 한 경우 파일의 권한을 chmod
변경하고 그룹을 chgrp
귀하가 속한 다른 그룹으로 변경할 수 있습니다 .
관련 질문 : chown이 루트 사용자가 아닌 사용자에게 허용됩니까?
사물에 대한 읽기 / 쓰기 권한이 있고 임의의 사용자가 아닌 소유자 만 소유자로 변경할 수있는 한 sudo없이 파일 또는 폴더의 소유권을 변경할 수 있습니다. 트릭은 단순히 원본을 복사하고 원본을 삭제 한 다음 사본을 그 자리로 옮기는 것입니다. 불행히도 이것은 모든 것을 완전히 복사하는 것과 관련이 있지만 무엇을해야합니까?
예 : chuser.sh :
#!/bin/bash
TMP="some_temporary_filename_this_is_dumb"
RECURSIVE=""
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-r|--recursive)
RECURSIVE="-r"
shift # past argument
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
cp -d --preserve=all $RECURSIVE $1 $TMP || exit 1
rm $RECURSIVE $1
mv $TMP $1