캠퍼스에서는 모든 사람의 기본 그룹이 있으며 user
각 사람은 자신이 수강하는 과정, 근무하는 실험실 등에 따라 그룹과 연결됩니다.
내 동료와 나는 둘 다 이 그룹의 구성원이므로 우리 둘 다 승인 없이 파일에 액세스할 수 있도록 및 foo
를 사용하고 있습니다.newgrp foo
umask 7
모든 사람허용하다. 우리 중 누구도 이것을 신경 쓰지 않았습니다.
그러나 이제 PATH
먼저 랩의 bin
폴더를 가리킨 다음 해당 폴더를 가리킬 환경 변수가 필요합니다 PATH
. 간단한 스크립트가 작동할 것이라고 생각했지만 PATH
실행 후에 내용이 유지되지 않기 때문에 작동하지 않습니다 newgrp
.
#!/bin/tcsh
setenv PATH "/path/to/lab/bin:$PATH"
newgrp foo
기본 쉘은 입니다 tcsh
. 제안 사항이 있는 사람이 있습니까?
감사해요!
답변1
런타임에 비밀번호를 요구하지 않는 한 (거의 사용되지 않는 기능), 해당 그룹이 소유한 파일을 만드는 데 newgrp
사용할 필요가 없습니다 . 대신 이것을 newgrp
사용할 수 있습니다 chmod
. 예를 들어 다음 워크플로 대신:
newgrp lab1
mkdir project1
$EDITOR project1/file1
다음을 수행할 수 있습니다.
mkdir project1
chgrp lab1 project1
$EDITOR project1/file1
chgrp lab1 project1/file1
최신 unice에서는 이미 포함된 디렉토리 project1/file1
에 속해 있거나 (*BSD) 이 동작을 강제로 수행할 수 있습니다(Linux, Solaris...).lab1
mkdir project1
chgrp lab1 project1
chmod g+s project1
$EDITOR project1/file1
이들 모두에는 umask
002 또는 007로 설정해야 합니다.
다음과 같은 경우 권한 관리가 더 쉬울 것입니다.ACL(액세스 제어 목록)모두 지원됩니다. ACL 지원은 디스크 파일 시스템 드라이버에 존재하고 설치 옵션에서 활성화되어야 하며, 적용 가능한 경우 네트워크 파일 시스템에 대해서도 다시 활성화되어야 합니다. ACL 지원은 아직 널리 보급되지 않았으므로 지원하지 못할 수도 있습니다.
ACL을 사용할 수 있는지 확인하려면 Linux 클라이언트에서 다음을 실행해 보세요.
touch foo
setfacl -m user:myfriend:rwx foo
ls -l foo
권한이 다음과 같이 foo
나타나면 -rw-rw-r--+
( +
끝에 a가 있음) ACL이 활성화된 것입니다. 이 setfacl
유틸리티를 사용할 수 없는 경우 캠퍼스 네트워크에 ACL이 없을 수 있습니다.
ACL이 있는 경우 느슨한 umask가 필요하지 않으며 022 또는 077을 사용할 수 있습니다. ACL을 사용하여 그룹 쓰기 가능 디렉터리(새로 생성된 파일도 그룹에서 쓸 수 있음)를 설정하려면 다음을 수행합니다.
mkdir project1
setfacl -m group:lab1:rwx project1; setfacl -d -m group:lab1:rwx project1
허용되는 umask를 요구하지 않는 것 외에도 ACL을 사용하면 모든 사용자 및 그룹 집합 간에 파일을 공유할 수 있습니다.