배경:
같은 컴퓨터에서 두 사용자가 폴더를 공유하려고 합니다. 일반적인 접근 방식은 동일한 그룹에 있는 두 명의 사용자가 상위 폴더를 해당 그룹으로 설정하고 rw 및 s 비트를 설정하는 것입니다.
좋은 결과. 와는 별개로....공유하려는 폴더는 Chromium에서 사용하는 폴더입니다. Chromium이 시작되면 s 비트를 무시하고 소유자 rw(예: 600) 권한만 있는 일부 세션 파일에 씁니다. 일부 오작동하는 프로그램이 이를 수행할 수 있다고 생각합니다. 이는 나중에 다른 사용자가 동일한 크롬 프로필을 열려고 할 때 해당 세션 파일이 이미 존재하고 다른 사용자의 rw만이 소유하고 있기 때문에 해당 세션 파일을 설정할 수 없음을 의미합니다. :(
binfs를 시도했지만 로그인 시 sudo를 사용해야 하므로 로그인 시 비대화형을 설정하려면 sudoers.d 파일을 사용해야 합니다.
어쨌든 ACL을 시도했지만 생각한 대로 작동하지 않았기 때문에 특정 측면을 더듬지 않았습니다.
# user1: syadmin
# user2: david
# directory: /opt/stest
# user1 sysadmin is logged in.
# sysadmin owns /opt/stest
$ llag stest
drwxrwsr-x+ 2 sysadmin users 4096 Feb 3 13:45 stest/
$getfacl stest
# file: stest
# owner: sysadmin
# group: sysadmin
user::rwx
group::rwx
other::r-x
# now run
setfacl -R -m u:david:rwX /opt/stest
setfacl -dR -m u:david:rwX /opt/stest
# gives
user:david:rwx
default:user:david:rwx
#now create a file as other user
$ su david -c "touch /opt/stest/test"
-rw-rw-r--+ 1 david users 0 Feb 3 13:51 test
#set with owner only rw like how chromium does
-rw-------+ 1 david users 0 Feb 3 13:51 test
$ getfacl test
# file: test
# owner: david
# group: users
user::rw-
user:david:rwx #effective:---
group::rwx #effective:---
mask::---
other::---
그래서 제가 못 받은 부분이에요. 파일의 "acl이 아닌" 소유자가 test
David 인 이유
# file: test
# owner: david
디렉토리의 sysadmin
소유권을 부여받는 대신 . sysadmin
기본적으로 나는 setfacl이 항상 디렉토리 소유자에게 액세스 권한을 부여한다고 생각합니다. acl 항목이 sysadmin
sysdamin
허용된 다른 사용자에 의해 생성된 경우에도 파일에 수동으로 추가해야 하는 것으로 보입니다. 그렇지 않으면 자체 파일이 잠길 수 있습니다. 이것은 나에게 직관적이지 않습니다.
이것이 내가 해야 할 일인가? 다른 사용자가 파일을 생성하는 경우 디렉터리에서 inotify wait를 실행한 다음 sysamdin을 acl 목록에 추가해야 합니까? 내 상황 ACL 또는 기타 상황에 가장 적합한 솔루션은 무엇입니까?
커널 5.4.0-65-와 함께 우분투 20.04를 실행하고 있습니다.
- 이틀 후
나는 다른 접근 방식을 시도했습니다. sudo를 사용하여 두 사용자를 파일과 기본 acl 목록에 추가했습니다. 그런 다음 로그아웃하고 다른 사용자로 로그인합니다. 그런 다음 문제의 파일 중 하나에서 getfacl을 실행하십시오. 두 명의 사용자가 나열되지만 rw를 제외하고는 아무것도 표시되지 않습니다. 아아. . 이(가) 만든 파일은 현재 사용자가 계속 sysadmin
액세스할 수 없습니다 .david
유효할 때 rw가 나타나지 않는 이유는 무엇입니까? ? ?
-rw---------+ 1 DavidDavid125146 2월 6일 09:12 환경 설정
getfacl Preferences
# file: Preferences
# owner: david
# group: david
user::rw-
user:sysadmin:rwx #effective:---
user:david:rwx #effective:---
group::rwx #effective:---
group:users:rwx #effective:---
mask::---
other::---
답변1
알겠습니다. 문제를 해결한 것 같습니다. 정확히 동일한 사용자 디렉터리/프로필을 사용하여 두 사용자 모두에서 크롬을 열 수 있습니다.
비결은 모든 사용자를 기존 파일과 기본 acl 소유자 목록에 추가하는 것입니다. 그런 다음 마스크 세트를 얻으려면 일부 chmod 명령을 실행하고 모든 작업을 재귀적으로 수행하십시오.
귀하의 편의를 위해 스크립트를 작성했으며 여기에 있습니다.
https://gist.github.com/dkebler/23c8651bd06769770773f07854e161fc
계속해서 업데이트하고 버그를 수정하겠지만 지금까지는 저에게 효과적입니다. 시험해 보고 싶다면 쉽게 문제를 일으킬 수 있으므로 테스트 디렉토리에서 실험해 보는 것이 좋습니다. 이를 방지하기 위해 여러 개의 확인 메시지를 작성했지만 여전히 스크립트를 읽고 위험을 감수하고 사용하십시오.
이는 실행된 명령을 보여주는 스크립트의 출력입니다.
david@giskard:[common/applications] $ share_dir -o root . sysadmin david
share directory /mnt/AllData/users/common/applications/ with users: sysadmin david ? confirm y
adding acl user sysadmin
these are the acl commands that you will run
******************
sudo setfacl -R -m u:sysadmin:rwX /mnt/AllData/users/common/applications/
sudo setfacl -dR -m u:sysadmin:rwX /mnt/AllData/users/common/applications/
******************
Double Check. Do you want to continue? y
*** new acl entries ***
user:sysadmin:rwx
default:user:sysadmin:rwx
adding acl user david
these are the acl commands that you will run
******************
sudo setfacl -R -m u:david:rwX /mnt/AllData/users/common/applications/
sudo setfacl -dR -m u:david:rwX /mnt/AllData/users/common/applications/
******************
Double Check. Do you want to continue? y
*** new acl entries ***
user:david:rwx
default:user:david:rwx
done adding acl users sysadmin david
these are the chown/chmod commands that you will run
******************
sudo chown -R root:users /mnt/AllData/users/common/applications/
sudo chmod -R u+rwX /mnt/AllData/users/common/applications/
sudo chmod -R g+rwX /mnt/AllData/users/common/applications/
sudo find /mnt/AllData/users/common/applications/ -type d -exec chmod g+s {} +
******************
Double Check. Do you want to continue? y
all done!
total 24
drwxrwsr-x+ 2 root users 4096 Feb 6 13:05 ./
drwxrwsr-x+ 5 root users 4096 Feb 6 11:39 ../
-rwxrwxr-x+ 1 root users 169 Jan 30 11:01 'Hacking Chromium.desktop'*
-rwxrwxr-x+ 1 root users 161 Jan 30 16:03 'Incognito Chromium.desktop'*
# file: /mnt/AllData/users/common/applications/
# owner: root
# group: users
# flags: -s-
user::rwx
user:sysadmin:rwx
user:david:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:sysadmin:rwx
default:user:david:rwx
default:group::rwx
default:mask::rwx
default:other::r-x