권한이 맞더라도 CD에 디렉토리에 대한 ‘권한 거부’ .. -rwxrw—- 1 g

이건 너무 이상해 사용자 ‘g’로 Linux (RHEL) 상자에 로그인하여 ls -lah쇼를 수행함

drwxrwxrwx 6 g    g    4.0K Jun 23 13:27 .
drwxrw-r-x 6 root root 4.0K Jun 23 13:15 ..
-rwxrw---- 1 g    g     678 Jun 23 13:26 .bash_history
-rwxrw---- 1 g    g      33 Jun 23 13:15 .bash_logout
-rwxrw---- 1 g    g     176 Jun 23 13:15 .bash_profile
-rwxrw---- 1 g    g     124 Jun 23 13:15 .bashrc
drw-r----- 2 g    g    4.0K Jun 23 13:25 .ssh

따라서 그룹 ‘g’/ should /의 사용자 ‘g’는 .ssh 디렉토리를 읽고 쓸 수는 있지만 ls -lah .ssh/얻을 수 ls: .ssh/: Permission denied있습니다. cat디렉토리에있는 파일을 시도하면 권한이 거부됩니다.

내가 루트로 가서에 사용 권한을 변경하는 경우 700, 744, 766‘사용자’권한만큼 또는 아무것도 작동 (7)이며, 내가 할 수있는 CD와 LS 디렉토리와 파일 내.

id g 보고

uid=504(g) gid=506(g) groups=506(g)

편집하다:

이 권한을 다른 동일한 상자에 정확하게 복사했으며 아무런 문제가 없습니다. cd실행 권한없이 디렉토리에 들어갈 수 있습니다 .



답변

디렉토리 에 들어가려면 실행 비트 세트 필요합니다. 난 당신이 테스트를 모르겠어요,하지만 당신은 할 수없는 실행 비트가없는 디렉토리를 입력하거나 문서를 읽을 :

$ mkdir foo
$ echo "baz" > foo/bar
$ chmod 660 foo
$ cd foo
bash: cd: foo: Permission denied
$ cat foo/bar
cat: foo/bar: Permission denied

즉, 하지 않는 프로세스는 IIRC, 실행 비트 세트없이 디렉토리를 입력 할 수있는 CAP_DAC_OVERRIDE POSIX 능력 세트 (루트가 같은)가 있습니다.

기본적으로 .ssh 디렉토리를 700으로 유지하고 그 안의 모든 것을 600으로 유지해야 안전합니다. ssh 매뉴얼 페이지는 ~ / .ssh에있는 파일의 필수 소유권 및 권한 모드에 대한 파일 별 지침을 제공합니다.


답변

디렉토리에 cd들어가 려면 실행 권한이 필요 합니다. 이것이 예상되는 동작입니다.


답변

디렉토리에 ls 또는 cd를 사용하려면 실행 권한이 필요합니다. 파일이 없으면 실제로 내용을 검사하고 파일의 권한을 볼 수 없으므로 파일 권한이 없으면 파일 권한이 잘못되었을 가능성이 큽니다.

700의 디렉토리 권한과 파일 권한 644는 나에게 완벽하게 괜찮습니다.


답변

나는 이것이 ssh 파일 문제라고 생각합니까? 일반적인 chmod 문제가 아닙니까?

그렇다면 시도하십시오

$chmod go-w ~/
$chmod 700 ~/.ssh
$chmod 600 ~/.ssh/*
$chmod 600 ~/.ssh/.*


답변

디렉토리를 열려면 x 비트 세트 (해당 비트가 검색 비트로 표시되는 디렉토리)가 필요합니다. 따라서 트리를 사용하여 폴더 세트 만 가져오고 모든 파일을 실행 파일로 설정하는 악몽을 피하십시오 (tree 옵션은 -d List directories only.).

sudo tree -faid here_goes_your_directory xargs -L1 -I{} sudo chmod 755  "{}"

경고!!! 이 점을 고려해야합니다.

  • 루트 /디렉토리 또는 시스템 디렉토리 에서 chmod 또는 chown 재귀를 사용 하면 OS가 손상됩니다 (실제로 /디렉토리 또는 시스템 디렉토리의 재귀 는 위험합니다)

  • 이것은 권한 대량을 설정하는 좋은 보안 관행이 아닙니다.


답변