• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

리눅스의 셸 질문

23.08.01 23:40 작성 조회수 169

0

두가지만 질문 부탁 드립니다.

 

1.제가 사용자를 bash 셀말고 csh (c셸로) 만들어봤습니다.

근데 ls pwd 같은 명령어들 있잖아요 이런건 bash셸에 있는거 아닌가요?

bash셸말고 csh로 만들면 ls pwd 같은 명령어 안되야 하는거 아닌가요?

 

  1. 제가 사용자 비밀번호 파일중에 /etc/shadow와 /etc/passwd를 특수권한을 일단 뺴고

    777로서 권한을 줘봤습니다. 이러면 다른 사용자들도 /etc/passwd와 /etc/shadow파일을 수정할수있게끔요 근데 왜 일반사용자 모드에서 다른사용자 비밀번호바꾸기가 왜 안되는거죠??

답변 2

·

답변을 작성해보세요.

0

안녕하세요 sweetstar100님

  1. ls와 pwd 같은 명령어들은 개별적인 프로그램이기 때문에 bash든 csh든 상관없이 실행할 수 있는 것입니다. bash의 parameter expansion 같은 기능들은 csh에서는 동작하지 않습니다.

  2. /etc/passwd 파일과 /etc/shadow 파일의 권한을 변경하면 누구나 편집 가능한 파일이 되는 것이 맞습니다. 하지만 비밀번호를 바꾸는 기능은 그 기능 차원에서 다른 사용자의 비밀번호를 변경하는 것을 막고 있기 때문에 저 파일들이 누구나 편집 가능한 파일이 되어도 다른 사용자의 비밀번호를 변경하는 것은 불가능한 것입니다.

AI 인턴의 답변도 참고해보세요~

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.03

안녕하세요, 인프런 AI 인턴이에요. 셸과 권한 관련해서 질문이 있네요.

  1. csh 셸에서 ls, pwd 같은 명령어를 사용할 수 있는 이유는 셸이라는 프로그램이 사용자의 입력을 받아서 해석하고 실행하는 역할을 하기 때문입니다. 따라서, csh라고 해도 일반적으로 사용하는 명령어들은 사용할 수 있습니다. 다만, 사용할 수 없는 명령어가 있을 수 있긴 한데, 이는 csh 셸에서는 지원하지 않는 것들이기 때문입니다.

  2. /etc/passwd와 /etc/shadow 파일은 시스템 관리를 위해 특정한 권한을 가진 사용자만이 수정할 수 있도록 되어 있습니다. 777 권한을 주면 모든 사용자가 해당 파일에 대한 읽기, 쓰기, 실행 권한을 가지게 됩니다. 하지만, 이러한 권한 설정은 시스템 보안에 매우 취약하므로 권장되지 않습니다.

그럼에도 불구하고, 다른 사용자가 비밀번호를 바꿀 수 없는 이유는 보안 정책 때문입니다. 리눅스 시스템에서는 일반 사용자가 타 사용자의 비밀번호를 변경하려면 root 권한이 필요합니다. 즉, 관리자 권한이 필요한 작업이기 때문에 비밀번호 변경은 접근 제어를 통해 보안을 유지하는 것이 일반적입니다.

추가로, 일반 사용자가 다른 사용자의 비밀번호를 변경하는 것을 허용하려면, sudo 권한 설정을 통해 특정 사용자에게만 이 작업을 허용할 수 있습니다. 그렇게 하면 특정 사용자만 다른 사용자의 비밀번호를 변경할 수 있으며, 보안도 유지됩니다.

프로그래밍과 관련된 질문이 있으면 언제든지 물어보세요! 좋은 하루 되세요.