etc./StackOverFlow

폴더 및 하위 폴더/파일에 대한 권한을 한 번에 변경하는 방법

청렴결백한 만능 재주꾼 2021. 12. 8. 01:19
반응형

질문자 :Adam Halasz


Linux에서 폴더와 모든 하위 폴더 및 파일의 권한을 한 단계(명령)로 변경하고 싶습니다.

이미 아래 명령을 시도했지만 언급된 폴더에서만 작동합니다.

 chmod 775 /opt/lampp/htdocs

/opt/lampp/htdocs 및 하위 폴더 및 파일을 포함한 모든 콘텐츠에 대해 chmod 755 를 설정하는 방법이 있습니까?

htdocs 안에 새 폴더나 파일을 만들면 해당 권한을 어떻게 자동으로 755 로 설정할 수 있습니까?

이 스택 오버플로 질문도 살펴 보았습니다.

Linux 터미널에서 기본 'chmod'를 어떻게 설정합니까?



chmod -R 755 가 트리의 모든 파일과 하위 폴더에 이러한 권한을 설정한다는 점에서 다른 답변은 정확합니다. 그런데 도대체 왜 하고 싶 습니까? 디렉토리에서는 이해가 되지만 모든 파일에 실행 비트를 설정하는 이유는 무엇입니까?

당신이 정말로 원하는 것은 디렉토리를 755로 설정하고 파일을 그대로 두거나 644로 설정하는 것입니다. 이를 위해 find 명령을 사용할 수 있습니다. 예를 들어:

모든 디렉토리를 755( drwxr-xr-x )로 변경하려면:

 find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

모든 파일을 644( -rw-r--r-- )로 변경하려면:

 find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

일부 splainin': (감사 @ tobbez )

  • chmod 755 {} 는 각 디렉토리에 대해 find 에 의해 실행될 명령을 지정합니다.
  • chmod 644 {} 는 각 파일에 대해 find 로 실행할 명령을 지정합니다.
  • {} 는 경로로 대체됩니다.
  • ; find 에게 이것이 실행해야 하는 명령의 끝임을 알려줍니다.
  • \; 세미콜론은 이스케이프 처리됩니다 find 대신 셸에서 해석됩니다.

WombleGoneBad

-R 옵션을 확인하십시오

chmod -R <permissionsettings> <dirname>

앞으로는 맨 페이지를 먼저 확인하여 많은 시간을 절약할 수 있습니다.

 man <command name>

따라서 이 경우:

 man chmod

Steve Robillard

모든 파일에 a+r 로 설정하고 모든 디렉토리를 a+x 로 설정하고 전체 하위 디렉토리 트리를 통해 재귀적으로 이를 수행하려면 다음을 사용하십시오.

 chmod -R a+rX *

X (즉 X , 작은 x !가 아님)는 파일에 대해 무시되지만(누군가가 이미 실행할 수 있는 경우 제외) 디렉토리에는 사용됩니다.


Pete

-R chmod 와 함께 사용하여 모든 파일 및 하위 폴더를 재귀적으로 탐색할 수 있습니다.

현재 사용자 또는 다른 사용자가 설치하는 LAMP 에 따라 sudo가 필요할 수 있습니다.

 sudo chmod -R 755 /opt/lampp/htdocs

ravi ranjan

올바른 재귀 명령은 다음과 같습니다.

 sudo chmod -R 755 /opt/lampp/htdocs

-R : 현재 폴더를 포함한 모든 하위 폴더 변경


Pramendra Gupta

모든 하위 폴더로 설정하려면 (재귀적으로) -R을 사용하십시오.

 chmod 755 /folder -R

그리고 umask를 사용하여 기본값을 새 폴더/파일 cd /folder umask 755로 설정합니다.


Topera

chmod 755 -R /opt/lampp/htdocs 는 권한을 재귀적으로 설정합니다. 권한을 설정한 후에 생성된 이 디렉토리에서만 파일에 대한 권한을 자동으로 설정할 수 있는 방법은 없지만 umask 022 를 설정하여 시스템 전체의 기본 파일 권한을 변경할 수 있습니다.


sleepynate

Super User에서 nik이 제공한 이 답변 을 고려하고 다음과 같이 모든 파일/폴더에 "하나의 chmod"를 사용하는 것이 좋습니다.

 chmod 755 $(find /path/to/base/dir -type d) chmod 644 $(find /path/to/base/dir -type f)

Iam Zesh

다음은 디렉토리를 775로, 파일을 664로 설정하는 또 다른 방법입니다.

 find /opt/lampp/htdocs \ \( -type f -exec chmod ug+rw,o+r {} \; \) , \ \( -type d -exec chmod ug+rwxs,o+rx {} \; \)

길어 보일 수 있지만 다음 세 가지 이유로 꽤 멋집니다.

  1. 파일 시스템을 두 번이 아닌 한 번만 검색합니다.
  2. 파일 처리 방법과 디렉토리 처리 방법에 대한 더 나은 제어를 제공합니다. 이것은 아마도 당신이 파일이 아닌 디렉토리에 적용하고 싶은 스티키 비트 와 같은 특수 모드로 작업할 때 유용합니다.
  3. man 페이지에서 바로 나온 기술을 사용합니다(아래 참조).

이 솔루션과 단순히 두 개의 찾기 명령(Peter Mortensen의 솔루션에서와 같이)을 사용하는 솔루션 간의 성능 차이(있는 경우)를 확인하지 않았습니다. 그러나 매뉴얼에서 유사한 예를 보는 것은 고무적입니다.

man find 페이지의 예:

 find / \ \( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \ \( -size +100M -fprintf /root/big.txt %-10s %p\n \) Traverse the filesystem just once, listing setuid files and direct‐ tories into /root/suid.txt and large files into /root/big.txt.

건배


chrisfargen

사용하다:

 sudo chmod 755 -R /whatever/your/directory/is

그러나 주의하십시오. 잘못된 파일/폴더의 권한을 변경하면 정말 큰 피해를 입을 수 있습니다.


Nate Starner

chmod -R 755 directory_name 작동하지만 새 파일을 755로도 유지하려면 어떻게 해야 합니까? 파일의 권한이 기본 권한이 됩니다.


Sanchit Gupta

Mac OS X 10.7(Lion)의 경우:

 chmod -R 755 /directory

그리고 예, 다른 모든 사람들이 말했듯이 이것을 할 때 조심하십시오.


wmartin

적절한 파일과 디렉토리가 chmod-ed/permissions인지 확인하고 싶습니다. 원하는 모든 디렉토리에 대해

 find /opt/lampp/htdocs -type d -exec chmod 711 {} \;

그리고 모든 이미지, JavaScript, CSS, HTML...글쎄, 당신은 그것들을 실행해서는 안됩니다. 그래서 사용

 chmod 644 img/* js/* html/*

그러나 모든 논리 코드(예: PHP 코드)에 대해 사용자가 해당 코드를 볼 수 없도록 권한을 설정해야 합니다.

 chmod 600 file

NikolaiDante

/opt/lampp/htdocs 디렉토리에서 작동하려는 모든 프로세스의 umask 값을 변경하는 방법을 묻고 있었던 것 같습니다.

사용자 파일 생성 모드 마스크(umask)는 새로 생성된 파일에 대한 파일 권한을 결정하는 데 사용됩니다. 새 파일에 대한 기본 파일 권한을 제어하는 데 사용할 수 있습니다.

따라서 일종의 FTP 프로그램을 사용하여 파일을 /opt/lampp/htdocs 에 업로드하려면 원하는 umask를 사용하도록 FTP 서버를 구성해야 합니다.

예를 들어 PHP로 파일/디렉토리를 생성해야 하는 경우 PHP 코드를 수정해야 합니다.

 <?php umask(0022); // Other code ?>

Bash 세션에서 새 파일/폴더를 만들려면 셸 프로필 ~/.bashrc 파일에서 umask 값을 설정할 수 있습니다.

또는 모든 사용자에 대해 /etc/bashrc 또는 /etc/profile 파일에 umask를 설정할 수 있습니다.

파일에 다음을 추가합니다.

 umask 022 Sample umask Values and File Creation Permissions If umask value set to User permission Group permission Others permission 000 all all all 007 all all none 027 all read / execute none

그리고 이미 생성된 파일에 대한 권한을 변경하려면 find 를 사용할 수 있습니다.


Viktor

chmod 를 적용하는 두 가지 답변이 있습니다.

첫 번째는 find 파일을하고 적용을 chmod 발견 한로 (@WombleGoneBad에 의해 제안).

 find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

find 명령을 사용하여 모든 파일의 목록을 생성하고 이 목록을 chmod 명령에 제공하는 것입니다(@lamgesh에서 제안한 대로).

 chmod 755 $(find /path/to/base/dir -type d)

find 명령에 의해 반환되는 파일 수가 적은 한 잘 작동합니다. 두 번째 솔루션은 첫 번째 솔루션보다 보기에 좋고 읽기 쉽습니다. 파일 수가 많은 경우 두 번째 솔루션은 다음 오류를 반환합니다. Argument list too long.

그래서 제 제안은

  1. 모든 파일과 디렉토리의 권한을 한 번에 변경 chmod -R 755 /opt/lampp/htdocs 사용하십시오.
  2. find /opt/lampp/htdocs -type d -exec chmod 755 {} \; 사용 중인 파일 수가 매우 많은 경우. -type x 옵션은 특정 유형의 파일만 검색합니다. 여기서 d는 디렉토리, f는 파일, l은 링크를 찾는 데 사용됩니다.
  3. 그렇지 않으면 chmod 755 $(find /path/to/base/dir -type d)
  4. 어떤 상황에서도 첫 번째 것을 사용하는 것이 좋습니다.

Prabhu

여전히 권한 문제로 어려움을 겪고 있는 사람 cd .. 를 탐색하고 디렉터리에 자신(사용자)을 추가하고 내부의 모든 것을 편집할 수 있는 권한을 부여합니다(macOS에서 테스트).

그렇게 하려면 다음 명령을 실행합니다(선호됨).

 sudo chown -R username: foldername .*

참고: 현재 저장되지 않은 변경 사항의 경우 암호를 묻지 않고 저장할 수 있으려면 먼저 코드 편집기를 다시 시작해야 할 수 있습니다.

또한 사용자 이름과 폴더를 입력하는 동안 Tab 키 를 눌러 옵션을 볼 수 있으므로 더 쉽게 사용할 수 있습니다.


또는 간단히:

 sudo chmod -R 755 foldername

그러나 위에서 언급했듯이 두 번째 방법은 주의해야 합니다.


Jakub A Suplicki

매우 간단합니다.

터미널에서 파일 관리자로 이동합니다. 예: sudo nemo . /opt/ 이동한 다음 속성권한 을 클릭합니다. 그리고 기타 . 마지막으로 읽기쓰기에 대한 생성 및 삭제 및 파일 액세스로 변경하고 적용 버튼을 클릭합니다. 그러면 작동합니다.


Debian.

다음 명령을 사용하여 권한을 변경할 수 있습니다.

 sudo chmod go=rwx /opt/lampp/htdocs

MD SHAYON

이미 생성된 파일의 경우:

 find . \( -type f -exec chmod g=r,o=r {} \; \) , \( -type d -exec chmod g=rx,o=rx {} \; \)

향후 생성되는 파일의 경우:

 sudo nano /etc/profile

그리고 설정:

 umask 022

공통 모드는 다음과 같습니다.

  • 077: u=rw,g=,o=
  • 007: u=rw,g=rw,o=
  • 022: u=rw,g=r,o=r
  • 002: u=rw,g=rw,o=r

Alberto Salvia Novella

사용하다:

 sudo chmod -R a=-x,u=rwX,g=,o= folder

소유자 rw, 기타 액세스 권한 없음 및 rwx가 있는 디렉토리. 이렇게 하면 파일의 기존 'x'가 지워집니다.

기호 chmod 계산은 Chmod 744에 설명되어 있습니다.


Pawel Cioch

출처 : http:www.stackoverflow.com/questions/3740152/how-to-change-permissions-for-a-folder-and-its-subfolders-files-in-one-step

반응형