`su`를 수행하는 단일 행 명령이 있습니까?


15

나는 su함께 할 수 있고 su <username>내 비밀번호를 요구합니다. 비밀번호를 su묻는 메시지가 표시되지 않도록 비밀번호 매개 변수가 있습니까?

예 : su <username> -p <password>


이 질문은 수퍼 유저에게 딱 맞는 것 같습니다 : superuser.com :-)
HongboZhu


1
난에서 그것을 가지고 superuser, 여기 superuser.com/questions/67765/...을
alvas

답변:


12

다른 사용자로 실행되는 스크립트를 작성하려면 다음과 같이 작동하지만 줄 바꿈없이 "password"라는 단어를 표준 출력으로 출력합니다.

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

암호가 1234 인 fred라는 사용자가 있고 암호 문자열을 표시하지 않고 ls의 fred 홈 디렉토리를 fred로 가져 오려면 다음과 같이 표시됩니다.

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!

2
흠, '표준은 청각 장애해야'
존 로렌스 Aspden

같은 오류가 발생합니다
MaxV

12
오류가 발생했습니다 : su: must be run from a terminal.
Abhishek Kashyap

5

나는 믿습니다. 존재하지 않으며 좋은 생각이 아닙니다. 이유는 다음
과 같습니다.su <username> -p <password> bash 기록에 일반 텍스트로 저장됩니다. 이것은 확실히 큰 보안 문제입니다.

당신이 명령을 실행해야하는 경우 su(또는 sudo자동화 된 방식으로)하지 않고 명령을 containig 쉘 스크립트를 작성 su하거나 sudo및 실행su <username> script.sh


1
su root script 여전히 passwd를 입력해야합니다.
Dai Kaixian 2019

@DaiKaixian 네,하지만 어디에도 저장되지 않으며 아무도 읽을 수 없습니다
Wayne_Yux

2
당신은 다음과 같은 것을 시도 할 수 있습니다 :. echo <passwd> | sudo -S <command-line>안전하지는 않지만 작동합니다.
다이 Kaixian

1
내 대답의 요점은 명령에 암호를 작성하기 위해 저장되지 않는다는 것입니다. 그래서 저는 그렇게 하지 않는 것이
좋습니다

-3

일부 특정 명령을 새로운 사용자로 실행하려면 다음 명령을 사용하십시오.
sudo -u {username} {command to be executed as the new user}


이것은 질문에 대답하지 않습니다. 질문은 암호를 처리하는 방법에 관한 것입니다.
Stephen C
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.