Centos 사용자 계정은 로그인하지 않았지만 계정에 로그인 할 수 있음


12

CentOS를 처음 사용합니다 (CentOS 6 실행). OpenSuse에 대한 이전 경험이 있습니다.

사용자 계정을 설정하려고합니다. ssh 또는 로그인 화면을 통해 로그인 할 수있는 계정을 원하지 않습니다. 그러나 여전히 su 명령을 사용하여 사용자에게 로그인 할 수 있기를 원합니다. 이를 통해 제한된 액세스 권한을 가진 사용자로 특정 응용 프로그램을 실행할 수 있습니다. 사용자는 슈퍼 사용자가 아니므로 다른 사용자의 응용 프로그램에 영향을 줄 수 없습니다.

도움을 주시면 감사하겠습니다. 나는 일반적으로 Glassfish 서버 등을 실행하기 위해 이것을 사용하고 싶습니다.


OpenSuSE로 어떻게 해결 했습니까?
Nils

답변:


15

centos에서는 / sbin / nologin을 사용하여 쉘이없는 사용자로 설정합니다.

[root@localhost ~]# grep named /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
[root@localhost ~]# 

그렇게해야한다면, -s 매개 변수를 사용하여 다음과 같이 선택한 쉘을 인수로 사용하십시오.

[root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ 

bash를 사용하는 경우 먼저 / etc / profile에서 설정을 읽고 사용자 홈 디렉토리에 기존 .bash_profile, .bash_login 또는 .profile이없는 경우 해당 설정을 기본값으로 사용합니다. 물론 루트에 존재하는 기존 환경 설정을 사용하려면 대시를 제거하면됩니다.

이탈 [

root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
-bash-4.1$ exit
logout
[root@localhost ~]# su named -s /bin/bash
bash-4.1$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
bash-4.1$ 

0

한 가지 일반적인 방법은 사용자의 셸을 /bin/false


/ bin / false로 설정하려고 시도했지만 centOS 6 에이 옵션이없는 것 같습니다. bin / nologin 옵션이 있지만 사용자 계정으로 su 할 수 없습니다.

시도su -m username
unbeli

사용자를 / sbin / nologin으로 설정하고 -m 옵션으로 su를 시도하면 계정을 현재 사용할 수 없다는 메시지가 나타납니다. 쉘 파일에 / bin / false를 추가하려고 시도했습니다. 이 작업을 수행하면 su 명령이 단순히 사용자로 전환되지 않습니다.

셸 파일에 / bin / false를 추가하지 마십시오. 사용자의 쉘을 / bin / false로 설정하십시오. su -m을 사용하십시오.
unbeli

/ etc / shells 파일에서 파일을 제거하고 usermod 명령을 사용하여 사용자의 쉘을 / bin / false로 설정했습니다. 이제 su -m username을 시도하면 .bashrc에 대한 권한이 없음을 알려줍니다. 루트로 로그인했습니다. 내가 지금하는 경우 : su-username 오류가 발생하지 않지만 여전히 루트로 표시됩니다. Centos에서 이것이 정상입니까?

0

나는 보통 "x"를 그러한 "기술적 인"사용자의 암호화 된 비밀번호 필드에 넣습니다. 따라서 사용자에게는 가능한 암호가 없습니다. 해당 사용자의 authorized_keys에 공개 키가있는 경우 해당 계정은 매우 안전해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.