Linux의 새 폴더 및 파일에 대한 기본 권한 설정

Linux의 새 폴더 및 파일에 대한 기본 권한 설정

저는 OpenSuSE를 사용하고 있으며 내 컴퓨터에는 루트와 저라는 2개의 계정만 있습니다. 디렉토리가 있습니다 /srv/www/htdocs/abc.

이 디렉터리에 새 폴더나 파일이 생성될 때 해당 권한이 777로 설정되도록 설정하고 싶습니다.

이 디렉토리에 새 파일을 생성할 때 쓰기 권한을 얻으려면 파일을 다시 777로 설정해야 합니다.

나는 루트를 사용하고 다음을 입력합니다.

chmod me /srv/www/htdocs

하지만 나는 일하지 않습니다. 어떻게 해야 하나요?

답변1

권한을 변경하는 데 사용합니다 chmod. 이 명령은 chown파일 및 디렉터리의 소유권을 변경하는 데 사용됩니다.

소유권

디렉터리의 소유권을 변경하려면 다음 명령을 사용할 수 있습니다.

$ sudo chown -R me /srv/www/htdocs

노트:우리는 이 sudo도구를 사용하여 루트가 되지 않고도 이러한 명령의 권한을 루트와 동일한 수준으로 상승시킵니다.

권한

이 디렉터리의 권한을 변경하려면:

$ sudo chmod -R 777 /srv/www/htdocs

마스크

umask파일과 디렉터리가 생성될 때 해당 권한이 어느 정도 영향을 받도록 터미널을 설정하려면 이 명령을 사용하십시오 . umask어떤 경우에는 당신이 생각하는 것을 정확하게 부여하지 않을 수도 있으므로 사용할 때 주의하십시오 .

디렉토리에는 괜찮은 것 같습니다.

$ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; mkdir blah;ls -l|grep blah;done
umask: 001
drwxrwxrw-   2 saml saml     4096 Jul 29 14:39 blah
umask: 002
drwxrwxr-x   2 saml saml     4096 Jul 29 14:39 blah
umask: 003
drwxrwxr--   2 saml saml     4096 Jul 29 14:39 blah
umask: 004
drwxrwx-wx   2 saml saml     4096 Jul 29 14:39 blah
umask: 005
drwxrwx-w-   2 saml saml     4096 Jul 29 14:39 blah
umask: 006
drwxrwx--x   2 saml saml     4096 Jul 29 14:39 blah
umask: 007
drwxrwx---   2 saml saml     4096 Jul 29 14:39 blah

그러나 특정 umask와 동일한 파일을 가질 수는 없습니다. 아래 예를 참조하세요 umask 006.

$ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; touch blah;ls -l|grep blah;done
umask: 001
-rw-rw-rw-   1 saml saml        0 Jul 29 14:40 blah
umask: 002
-rw-rw-r--   1 saml saml        0 Jul 29 14:40 blah
umask: 003
-rw-rw-r--   1 saml saml        0 Jul 29 14:40 blah
umask: 004
-rw-rw--w-   1 saml saml        0 Jul 29 14:40 blah
umask: 005
-rw-rw--w-   1 saml saml        0 Jul 29 14:40 blah
umask: 006
-rw-rw----   1 saml saml        0 Jul 29 14:40 blah
umask: 007
-rw-rw----   1 saml saml        0 Jul 29 14:40 blah

다른 것들도 있습니다. 이것은 단지 예를 강조하기 위한 것입니다!

그럼 어떻게 해야 할까요?

당신이 Apache 디렉토리( path 기반)를 다루고 있다고 가정하면 , 나는 당신의 사용자 와 Apache가 실행 중인 사용자 모두가 구성원으로 속한 /srv/www/htdocsUnix 그룹을 찾을 것입니다 . me다음 groups명령을 사용하여 확인할 수 있습니다.

$ groups saml
saml : saml vboxusers jupiter newgrp

$ groups apache
apache : apache

id다음 명령을 사용할 수도 있습니다 .

$ id saml
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter),10000(newgrp)

$ id apache
uid=48(apache) gid=48(apache) groups=48(apache)

내 시스템에서 Apache는 사용자가 실행합니다 apache. 사용자를 보면 apache그룹에도 속해 있음을 알 수 있습니다. 따라서 한 가지 방법은 사용자를 me그룹에 추가하는 것입니다.

예를 들어 다음 그룹 me에 추가합니다.apache

$ sudo usermod -a -G apache me

또 다른 방법은 다른 그룹을 만들고 해당 보조 그룹(예: apacheplus)에 apache및를 추가한 me후 다음 명령을 실행하는 것입니다 /srv/www/htdocs.

$ sudo chgrp -R apacheplus /srv/www/htdocs

관련 정보