내 파일 권한을 이렇게 변경하려고 할 때
$ sudo chmod a+x *.*
이 오류가 나타납니다
chmod: cannot access ‘*.*’: No such file or directory
그리고 디렉토리에 있는 모든 단일 파일의 권한을 변경하고 싶을 때
$ sudo chmod a+x directory/*
같은 오류가 뜹니다
chmod: cannot access ‘directory/*’: No such file or directory
다른 디렉토리에서 동일한 명령을 시도하면 작동하지만 /var/www/html 디렉토리에서는 작동하지 않지만 실행할 때 파일별 권한 파일을 a+x로 변경해도 작동하지 않습니다.
ls
권한 오류가 나타납니다
ls: cannot open directory .: Permission denied
답변1
Linux의 파일 확장자는 특별한 것이 아니며 단지 파일 이름의 일부일 뿐입니다. 쉘의 파일 글로빙은 모든 문자에 사용되므로 대신 *
사용할 수 있습니다 .chmod a+x *
.
답변2
문제 ls
는 디렉터리에 대한 권한이 충분하지 않은 것 같습니다. 처럼https://stackoverflow.com/a/15800917/3501748상태: 디렉토리의 내용을 보려면 디렉토리에 실행 권한 세트가 필요합니다.
cd
한 레벨로 돌아가서 방금 온 디렉토리에 대한 권한이 무엇인지 확인하십시오. sudo
루트에 해당 폴더에 대한 권한이 없으면 해당 폴더에 액세스할 수 있는 권한을 부여하지 않습니다. 어쩌면 sudo -u <username>
도움이 될 수도 있습니다.
시작점 아래의 디렉터리 트리를 통해 반복해야 하는 경우 를 사용하세요 chmod -R
.
답변3
먼저 기존 답변을 인정하고 싶습니다.
- UweBurger가 말했듯이
*
Ubuntu(또는 일반적으로 Unix)에서 일반 와일드카드를 사용합니다. (directory
귀하의 예에서는 비어 있어서 오류가 발생할 수 있습니까chmod: cannot access ‘directory/*’: No such file or directory
?) - Northern-Bradley가 제안한 것처럼 플래그를 사용하여
R
트리chmod
를 재귀적으로 탐색하여 현재 지점 아래의 모든 권한을 변경할 수 있습니다. 즉, 을 사용chmod -R directory
하거나, 권한이 부족한 경우sudo chmod -R directory
(단, 사용 시 시스템 파일에 대한 권한을 실수로 변경하지 않도록 주의하세요)sudo
에게chmod
; 귀하의 사용자에게는 그렇게 할 수 있는 권한이 없기 때문에 첫 번째 변형이 더 안전합니다.
그러나 파일과 동일한 방식으로 디렉토리의 권한을 변경하고 싶지 않을 수도 있다는 점을 덧붙이고 싶습니다. 에서 설명했듯이공식 문서, 디렉토리에 대한 읽기( r
) 권한은 해당 내용을 볼 수 있음(예: 사용 ls
)을 의미하고, 쓰기( w
) 권한은 사용자가 그 안에 파일을 생성/제거할 수 있도록 하며, 실행( x
) 권한은 내부에 대한 권한을 의미합니다 cd
. 훌륭한 답변이 있습니다여기새로운 권한을 반복적으로 적용할 때 파일과 디렉터리를 구별하는 방법을 제안합니다. 사용하는 변형 xargs
은 다음과 같습니다아마도 더 빠를 것입니다. 아무 것도 반환하지 않는 경우 오류를 방지하기 r
위해 플래그를 추가할 수 있으며 권한이 필요한 경우 파이프의 양쪽 절반에 사용해야 합니다 (다시 말하지만 as 를 사용할 때는 주의해야 합니다). 그러면 다음과 같습니다.xargs
find
root
sudo
chmod
root
sudo find [경로/대상/디렉터리] -type d -print0 | sudo xargs -0r chmod [원하는 디렉터리 권한]
sudo find [경로/대상/디렉터리] -type f -print0 | sudo xargs -0r chmod [원하는 파일 권한]
어디에 [desired-*-permissions]
줄 수 있나요?명시적으로( 777
) 또는문자를 사용하여(좋다 a+x
).