한 컴퓨터에서 두 개의 사용자 계정을 제어하지만 루트가 아닙니다. 한 계정에서 다른 계정으로 일부 파일을 "선물"할 수 있습니까?
이유: 내 컴퓨터에 원래 저장소로 기본 git 저장소가 설정되어 있습니다. 이제 이 저장소의 파일을 내 개인 계정 대신 "git" 사용자가 소유하게 되기를 원합니다. 이 특별한 경우에는 복사본을 "git"에 복제하고 기본 저장소를 삭제한 다음 복제본(기본 저장소로 만들어야 함)을 해당 위치에 넣을 수도 있습니다. 지루하지만 일반적인 호기심으로 답변에 관심이 있습니다.
답변1
ACL을 사용하여 홈 디렉터리에 있는 파일에 대한 권한을 다른 사용자에게 부여할 수 있습니다. ACL을 설정하는 명령은 입니다 setfacl
.
귀하가 관리하는 계정이 다음과 같다고 가정해 보겠습니다.남자그리고스미스. 이제 원하신다면스미스파일에 대한 전체 액세스 권한을 갖습니다.남자의 홈 디렉토리로 이동한 다음 setfacl
명령을 실행할 수 있습니다.남자다음과 같은 옵션이 있습니다.
setfacl -R -m u:smith:rwx /home/john
위의 setfacl
명령은 사용자에게 다음을 제공합니다.스미스홈 디렉토리에 대한 전체 액세스남자. 이 명령은 액세스되는 디렉터리의 소유자가 실행해야 합니다(남자이 경우) 또는 루트입니다.
권한 또는 디렉터리 이름을 수정하거나 setfacl
사용자 또는 그룹에 액세스 권한을 부여해야 하는지 명령에 알릴 수 있습니다. 예를 들어:
setfacl -m u:smith:rx /home/john
위의 명령은 사용자에게 다음을 제공합니다.스미스/home/john에 대한 읽기 전용 액세스입니다.
[sreeraj@server ~]$ setfacl -m u:soum:rwx /home/sreeraj
동일한 서버에서:
[soum@server ~]$ cd /home/sreeraj
[soum@server sreeraj]$ touch file_by_soum
[soum@server sreeraj]$ ll file_by_soum
-rw-rw-r-- 1 soum soum 0 फ़रवरी 16 16:27 file_by_soum
[soum@server sreeraj]$
매뉴얼 페이지에서 setfacl
:
EXAMPLES
Granting an additional user read access
setfacl -m u:lisa:r file
Revoking write access from all groups and all named users (using the effective rights mask)
setfacl -m m::rx file
Removing a named group entry from a file's ACL
setfacl -x g:staff file
Copying the ACL of one file to another
getfacl file1 | setfacl --set-file=- file2
Copying the access ACL into the Default ACL
getfacl --access dir | setfacl -d -M- dir
답변2
파일/디렉터리 소유권을 변경(포기 또는 가져가기)하려면 루트여야 합니다.