이 답변은 질문에 대한 수정 사항을 고려하더라도 여전히 도움이됩니다. 특히, --disabled-login
비밀번호를 설정하지 않고 로그인 할 수있는 다른 방법이없는 계정으로 만들었지
만 sudo
명령 또는 셸을 사용자로 실행 하는 데 여전히 아래 설명 된 방법 을 사용할 수 있습니다 . 사실 이것은
root
우분투에서 계정이 설정되는 방식입니다.
이 명령에는 여러 가지 문제가 있습니다 su - irssi
.
이 명령 은 이라는 사용자가 소유 한 쉘 을 시작 하려고합니다 .irssi
다음과 같은 경우 실패합니다.
irssi
사용자 가 없습니다 .
irssi
사용자의 계정을 사용할 수 없습니다.
irssi
사용자의 계정이 대화 형 로그인에 사용할 수 없습니다. 때때로 계정은 FTP와 같은 서비스를 사용할 수 있지만 쉘을 다음과 같이 즉시 종료되는 것으로 설정하여 정상적으로 로그인 할 수 없습니다 /bin/false
. 그런 다음 메시지없이 로그인이 즉시 종료됩니다.
- 입력 한 비밀번호가
irssi
사용자 에게 맞지 않습니다 .
이 -
플래그는 쉘이 초기 로그인 쉘을 시뮬레이트하도록하므로 실제로로 로그온하는 것과 매우 유사 irssi
합니다. -
플래그가 없으면 su
명령이 성공한 경우 여전히을 소유 한 쉘을 얻을 수 irssi
있지만 환경 변수 HOME
는 변경되지 않습니다.
대신 이라는 프로그램을 실행irssi
하려면 su
다르게 호출해야합니다 .
su username - -c irssi
생략하면 --it 와 동일 하며 명령을 루트로 실행하려고합니다.-c username
-c root
또는 쉘을 시작한 후 다음 명령을 실행할 수 있습니다 .
- 로 쉘을 시작하십시오 .
su username -
- 셸에서 명령 (
irssi
)을 실행하십시오 .
- 완료되면을 실행하여 셸을 그대로 두십시오
exit
.
다음과 같이 명령 실행 root
당신이 실행하려는 경우 irssi
와 같은 root
, su
그것을 할 수있는 방법은 없습니다. 루트 로그인은 우분투에서 기본적으로 비활성화되어 있으며 , 다시 활성화해야 할 이유는 거의 없습니다 . root
로그인 을 활성화 한 경우을 사용 su
하여 사용할 수 있어야합니다 root
. root
계정 을 활성화 할 필요가없는 이유 는 사용 여부에 관계없이으로 명령을 실행할 수 있기 때문 root
입니다 sudo
.
당신이 명령을 실행하면 sudo
, 당신은에 넣어 당신 , 비밀번호 하지 정체성을 실행할 수있는 명령을 기원에서 사용자의 암호를. 관리자 만으로 임의의 명령을 실행할 수 있습니다 root
와 sudo
(다시 구성하지 않는 한 sudo
물론, 다른 사람들이 그렇게 할 수 있도록). 따라서 시스템을 관리 할 수없는 사용자는 root
자신의 암호 로 명령을 실행할 수 없습니다 .
실행하려면 irssi
로 root
와 sudo
:
sudo irssi
메시지가 표시되면 의 비밀번호가 아닌 비밀번호를 입력 합니다root
.
입력 한 비밀번호를 제외하고 다음과 같은 기능을 수행합니다.
su -c irssi
계정을 활성화 sudo
하지 않아도되기 때문에 버전을 제외하고 성공할 수 있습니다 root
.
와 마찬가지로 su
, 사용자가 아닌 다른 사용자 로 명령sudo
을 실행할root
수 있습니다 . 실행하려면 irssi
로 username
와 sudo
:
sudo -u username irssi
당신이 원하는 경우 sudo
같은 행동 su -
에 대해서HOME
입니다 --that, 당신은 대상 사용자의 사용하려는 HOME
실행할 수있는 환경 변수를 sudo
와 -H
플래그 :
sudo -H irssi
sudo -H -u username irssi
sudo
에서처럼 전체 쉘을 시작할 수 있습니다 su
. 비밀번호를 입력 한 경우를 제외하고이 명령은 다음과 같은 효과가 있습니다 su
.
sudo -s
이 명령은 다음과 같은 효과가 있습니다 su -
.
sudo -i
( 초기 로그인 쉘을i
나타냅니다 .)
다른 사용자로 쉘을 시작할 수도 있습니다.
sudo -u username -s
sudo -u username -i
추가 자료 sudo
에 대해 자세히 알아 보려면sudo
다음을 살펴보십시오.
왜 안 gksu
작동했을 su
까요?
gksu
아마을 실행하여sudo
일했을 것입니다 .
gksu
에 대한 프론트 엔드 모두 su
와 sudo
. 우분투에서는 기본적으로 사용합니다 sudo
(우분투에서는 su
일반적으로 사용되지 않고 root
다른 비 root
사용자 가되는 두 번째 방법 일뿐이므로 ).
를 실행하여 프런트 엔드로 gksu
사용할 수 있습니다 .su
gksu --su-mode
를 실행 gksu
하여 su
모드 또는 sudo
모드 인지 여부를 확인 하고 원하는 경우이 설정을 변경할 수 있습니다 gksu-properties
. 이것은 사용자 별 설정입니다.
시 gksu
에 sudo
모드는 같은 동작합니다 gksudo
.
추가 자료 gksu
사후 분석
궁극적으로 다음을 사용하여 필요한 명령을 실행할 수 있음을 발견했습니다.
sudo -u username irssi
(위에 나열된 기술 중 하나입니다.)
궁극적으로 두 가지 정보를보고했는데 다른 정보가 실패했지만 성공한 이유를 설명하기에 충분합니다.
username
계정이 함께 생성 --disabled-login
이없는하게 플래그 비밀번호 (로깅 및 다른 수단을). 비밀번호가 없다고해서 빈 비밀번호 로 로그인 할 수있는 것은 아닙니다 . 인증하기에 충분한 암호 가 없음을 의미 합니다. 다른 인증 수단의 제거와 함께, 이것은 username
전혀 인증 할 수 없음을 의미 합니다.
따라서 모든 su
기반 솔루션이 출시되었습니다. sudo
하지만 sudo
가장하려는 사용자로 인증하지 않기 때문에 작동 할 수 있습니다 . 대신 자신을 가장 할 수있는 권한 을 부여 받아야 하며 자신으로 인증해야합니다 (예 : 자신의 암호가 아닌 자신의 암호를 입력).
계정에 비밀번호를 설정하면 로그인에 대한이 장벽을 제거 할 수 있습니다.
sudo passwd username
그러나 사용자가 로그인 할 수없는 적절한 이유가있을 수 있습니다. 예를 들어,이 사용자가 로그인 할 수 있고 그래픽으로 로그인 한 경우, 사용자 환경에서 나쁜 문제가 발생하거나 X11 앱을 실행하기에 권한이 부적절합니다. ? 이 사용자가 로그온 할 수 있다면 해당 사용자 (네트워크 서비스가 노출 된 시스템의 경우)로 원격으로 로그온 할 수 있습니까?
다시 비활성화하려면 다음을 수행하십시오.
sudo passwd -dl username
관련 : 계정을 일시적으로 활성화 한 후 계정을 다시 비활성화 root
합니다.
username
계정이 /bin/false
자사의 로그인 쉘로.
같은 쉘이 bash
로그인 쉘로 실행될 때 환경을 설정하고 기계를 제어 할 대화식 프롬프트를 제공합니다.
때 /bin/false
실행, 다른 한편으로는, 그것은 아무것도하지 않는다 , 그리고 실패를보고합니다 . ( /bin/true
아무것도하지 않으며 성공을보고합니다.)
false
및 true
명령은 스크립트에서 유용하고 다양한 테스트 목적뿐만 아니라, 그래서 계정을 비활성화하는 경우, 자신의 로그인 세션을 즉시 끝에서 누군가 로그인합니다. 그렇게하면 암호 (또는 다른 인증 수단)를 활성화 할 수 있으며 쉘 액세스가 아닌 사람들이 로그인 할 수 있습니다 . 예를 들어 FTP 서버가 있으면 FTP를 통해 계정에 계속 액세스 할 수 있습니다. SSH 서버가 있으면 SSH를 통해 쉘을 얻을 수 없지만 여전히 파일을 사용 sftp
하고 scp
전송할 수 있습니다.
이후 username
의 로그인 쉘이 작동하지 않는했다, 명령 좋아 , , , 및 수 없었다 작업을.su username
su - username
sudo -u username -s
sudo -u username -i
그러나 쉘을 제공하지 않는 명령은 작동 하거나 작동 하지 않을 수 있습니다.sudo -u username command
su username -c 'command'
때문에 명령을 실행할 수 있습니다, 당신은 수있는 기능 무언가에 사용자의 로그인 쉘을 변경 :
sudo chsh -s /bin/bash username
그러나 사용자에 대한 대화 형 로그인을 비활성화해야 할 적절한 이유가있을 수 있으므로주의해야합니다.
여기에서 username
비밀번호 와 "비활성화 된"셸을 모두 비활성화했습니다 . 작동하는 암호가 없으면 모든 su
기반 솔루션이 작동하지 않는 반면, 대화식 로그인 쉘이 작동하지 않으면 셸 생성 솔루션이 작동하지 않습니다 (예 :) (예 : 셸을 수동으로 호출 ).sudo -u username bash
sudo -u username command
남아있는 것입니다.