자동 로그인 프로세스를 사용하고 싶습니다 sudo su
. 나는 이것에 관해 많은 질문을 보았지만 그 중 어느 것도 나에게 도움이 되지 않았습니다.
내가 지금까지 시도한 것은 다음과 같습니다.
echo "mypassword" | sudo -S su - user
echo "mypassword\n" | sudo -S su - user
echo mypassword | sudo -S su - user
echo "mypassword" | sudo -S su user
echo mypassword | sudo -S su user
방금 아래와 같은 답변을 받았습니다.
-bash: line 1: mypassword: command not found
내 버전의 Bash
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
내 비밀번호에는 특수 문자가 포함되어 있습니다.@
@ sudo
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...
답변1
하다아니요해! 그러면 쉘 기록에 비밀번호가 유지됩니다!
만약 너라면진짜이 작업을 수행하려면 sudoers
비밀번호 없는 로그인을 허용하도록 파일을 구성하는 것이 좋습니다.
이렇게 하려면 명령을 실행 sudo visudo
하고 다음과 같은 줄을 추가하세요.
reddy ALL=NOPASSWD: /bin/su - *
( reddy
사용자 이름은 어디에 있습니까?)
전체 팀에 이 액세스 권한을 부여해야 하는 경우 팀을 포함하는 (UNIX) 그룹을 만들고 reddy
( %team
팀 그룹)을 바꿉니다.
(또한 약간의 여담: 이 echo
명령은 이미 \n
필요한 것을 추가합니다. 실제로 반대를 원하는 경우(원하지 않는 경우) 이 명령은 echo -n
.)
답변2
나는 당신이하고있는 일이 잘못되었다는 Valmiky의 의견에 동의하지만 sudoers 라인은 내가 권장하는 것이 아닙니다. 그의 라인을 통해 비밀번호 없이 다른 사람(루트 포함)에게 sudo를 실행할 수 있는 권한이 있습니다. 이는 효과적으로 서버에 대한 전체 액세스를 제공하므로 /bin/su
회선의 일부가 중복됩니다.
비밀번호를 제공하지 않고 이 특정 사용자에게만 sudo를 수행할 수 있는 경우 올바른 줄은 다음과 같습니다.
%team ALL = (user) NOPASSWD: ALL
이제 비밀번호를 제공하지 않고도 해당 사용자로 무엇이든 실행할 수 있습니다. 예를 들어 루트에 sudo를 실행해야 하는 경우에는 여전히 비밀번호가 필요합니다.
이제 .bashrc에서 다음을 수행할 수 있습니다.
sudo -u user /bin/bash