이 사용자는 현재 사용할 수 없지만이 사용자가 스크립트를 실행할 수 있습니다. 실행하기위한 것입니다. sudo su

나는 / etc / passwd에 다음과 같은 특수 사용자를 만들었습니다.

secure:x:2000:2000:secure:/bin:/usr/sbin/nologin

이 사용자의 로그인을 허용하고 싶지 않습니다 (콘솔, ssh, ftp를 통해).

그는 다음을 통해 하나의 스크립트를 실행하기위한 것입니다.

sudo su secure -c '/home/someuser/secure.script'

그러나 그것은 나를 준다 This user is currently not available.. 이 방법으로 스크립트를 실행할 수 있지만 시스템에이 사용자의 로그인 (콘솔, ssh, ftp 등)을 방지하도록 설정하는 방법은 무엇입니까?


내가 입력 할 때 나타났습니다 /usr/sbin/nologin명령 줄에 컴퓨터가 응답 This account is currently not available..



답변

의 일반적인 사용 사례입니다 sudo.

당신은 혼합하고 sudo다른 사용자로 실행 명령을 할 수 있으며 그리고 (당신이 선택적으로 어떤 사용자로하는 명령을 실행할 수있는 사용자 지정할 수 있습니다) 고도로 구성되는 su암호를 알고있는 (또는 루트입니다) 경우 이는 다른 사용자로 전환됩니다. 사용 하더라도 su쉘은 항상로 실행 됩니다. 이로 인해 와 호환되지 않습니다 ./etc/passwdsu -csu/usr/sbin/nologin

사용해야합니다

sudo -u secure /home/someuser/secure.script

으로 sudo구성 할 수 있습니다 당신은이 명령을 사용할 수있는 사용자를 제어 할 수 있으며 그 / 그녀가 암호를 입력 할 필요가있는 경우를 실행합니다. 이렇게하려면를 /etc/sudoers사용하여 편집 visudo해야합니다. (/ etc / sudoers를 편집 할 때주의하고 항상 visudo를 사용하여이를 수행하십시오. 구문은 사소하지 않으며 하나의 오류로 인해 루트 계정에서 잠길 수 있습니다.)

sudoers의이 행을 사용하면 그룹의 모든 사용자 somegroup가 다음과 같이 명령을 실행할 수 있습니다 secure.

%somegroup    ALL=(secure) /home/someuser/secure.script

이를 통해 그룹의 모든 사용자 가 비밀번호를 입력하지 않고 somegroup명령을 실행할 수 secure있습니다.

%somegroup    ALL=(secure) NOPASSWD: /home/someuser/secure.script

비밀번호를 입력하지 않고 user1명령을 실행할 수 secure있습니다.

user1    ALL=(secure) /home/someuser/secure.script


답변

이 문제 /usr/sbin/nologin에서 /etc/passwd
su를 실행하려면 -s /bin/bash내부에 있어야합니다 . 예를 들면 다음과 같습니다.su -s /bin/bash -c '/home/someuser/secure.script' secure


답변

su에 지정된 쉘을 사용하고 /etc/passwd있습니다.

su와 함께 사용할 필요는 없습니다 sudo.

따라서 혼합하지 마십시오 su과 함께 sudo사용 : sudo -u secure '/home/someuser/secure.script'.


답변

이것은 질문과 100 % 관련이 없지만 유사한 경고 메시지를 가진 사람에게 도움이 될 수 있습니다 This user is currently not available

1) 쉘 액세스 권한이 부여 된 경우 호스팅 회사에 문의하십시오.

2) CWP7을 사용하는 경우 : 쉘 액세스를 ON으로 설정하십시오.
여기에 이미지 설명을 입력하십시오


답변