질문자 :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로 설정합니다.
Toperachmod 755 -R /opt/lampp/htdocs
는 권한을 재귀적으로 설정합니다. 권한을 설정한 후에 생성된 이 디렉토리에서만 파일에 대한 권한을 자동으로 설정할 수 있는 방법은 없지만 umask 022
를 설정하여 시스템 전체의 기본 파일 권한을 변경할 수 있습니다.
sleepynateSuper 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 {} \; \)
길어 보일 수 있지만 다음 세 가지 이유로 꽤 멋집니다.
- 파일 시스템을 두 번이 아닌 한 번만 검색합니다.
- 파일 처리 방법과 디렉토리 처리 방법에 대한 더 나은 제어를 제공합니다. 이것은 아마도 당신이 파일이 아닌 디렉토리에 적용하고 싶은 스티키 비트 와 같은 특수 모드로 작업할 때 유용합니다.
-
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 Starnerchmod -R 755 directory_name
작동하지만 새 파일을 755로도 유지하려면 어떻게 해야 합니까? 파일의 권한이 기본 권한이 됩니다.
Sanchit GuptaMac 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 를 사용할 수 있습니다.
Viktorchmod
를 적용하는 두 가지 답변이 있습니다.
첫 번째는 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.
그래서 제 제안은
- 모든 파일과 디렉토리의 권한을 한 번에 변경
chmod -R 755 /opt/lampp/htdocs
사용하십시오. -
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
사용 중인 파일 수가 매우 많은 경우. -type x
옵션은 특정 유형의 파일만 검색합니다. 여기서 d는 디렉토리, f는 파일, l은 링크를 찾는 데 사용됩니다. - 그렇지 않으면
chmod 755 $(find /path/to/base/dir -type d)
- 어떤 상황에서도 첫 번째 것을 사용하는 것이 좋습니다.
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