>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 비밀번호를 입력하지 않고 sudo를 수행하는 방법은 무엇입니까?

Linux에서 비밀번호를 입력하지 않고 sudo를 수행하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-05-12 23:46:193658검색

해결책 1:
시작 시 안전 모드로 들어갑니다. 이때 루트로 로그인하여 다음을 실행합니다.

chmod 740 /etc/sudoers

그런 다음 /etc/sudoers 파일을 열고 마지막 줄인

%admin ALL=(ALL)
改为
%%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL

을 저장하고 종료합니다.
실행:

chmod 0440 /etc/sudoers
reboot your ubuntu.OK!

해결 방법 2:
Ubuntu는 기본적으로 루트 계정으로 직접 로그인할 수 없습니다. 처음 생성된 사용자(즉, 설치 중에 생성된 사용자)로부터 su 또는 sudo를 통해 루트 권한을 얻어야 합니다. 이 명령어는 우분투에서 시스템을 운영할 때 자주 사용되는 명령어입니다. 이는 불편할 수 있지만 보안을 강화하고 사용자가 오용으로 인해 시스템을 손상시키는 것을 방지합니다.

sudo
형식: sudo [기타 명령]

sudo는 슈퍼 사용자가 수행함을 의미합니다. sudo는 이 과정에서 루트 사용자를 호출하는 역할만 수행하며, 이 작업이 완료된 후에는 해당 역할이 사라지므로 루트 권한 작업을 호출하는 명령을 사용하려면 다시 sudo를 사용해야 합니다. 이 과정에서 시스템은 사용자에게 비밀번호를 입력하라는 메시지를 표시합니다. 이 비밀번호는 시스템을 설치할 때 입력한 비밀번호입니다. 참고: 이 비밀번호를 입력할 때 비밀번호를 입력할 때처럼 * 기호를 입력하지 않습니다. Windows의 비밀번호입니다. 비밀번호 수를 알지 못하면 비밀번호 크래커의 난이도가 높아질 수 있으므로 비밀번호를 더욱 안전하게 만드는 것이 목적입니다. :)

예:

현재 디렉터리에서 upload.tar.gz의 권한을 변경하려면 sudo를 사용해야 합니다. 현재 디렉터리에 있는 다른 파일 eva.tar.gz에 대한 권한을 변경하려면 sudo를 다시 사용해야 합니다.

ownlinux@server:/var/www$ sudo chmod 777 upload.tar.gz
[sudo] password for ownlinux: (此时输入你的密码)
ownlinux@server:/var/www$ sudo chmod 777 eva.tar.gz
[sudo] password for ownlinux:

추가됨:
보통은 루트로 로그인하지 않지만 특정 명령(명령)을 실행할 때는 루트 권한이 필요합니다. 명령을 실행하려면 보통 "sudo 명령"을 사용합니다. 저는 우분투를 사용하다보니 sudo를 자주 사용하는데, sudo를 사용할 때 비밀번호를 입력해야 해서 비밀번호를 입력하지 않고 sudo를 할 수 있는 방법을 찾아봤습니다. 얼마전에 구글링해서 쉽게 방법을 찾았는데 잘 이해가 안가서 오늘 /etc/sudoers 파일을 주의 깊게 살펴보니 제가 원하는 것을 어떻게 구현해야 할지 아주 명확해졌습니다. 인터넷에서 본 정보는 불분명한 경우가 많아서 나름대로 필요에 따라 정리했습니다.
내 사용자 이름이 jay(admin 그룹에 속함)라고 가정할 때 비밀번호 없이 sudo를 만드는 방법은 다음과 같습니다.
다음 명령을 실행하세요: sudo visudo 또는 sudo vi /etc/sudoers vi를 사용하여 편집하는 경우 저장 시 "wq!"를 사용하여 강제로 저장해야 합니다. 그렇지 않으면 읽기 전용이므로 저장할 수 없다는 메시지가 표시됩니다.
/etc/sudoers 파일이 편집됩니다. 기본적으로 "%admin ALL=(ALL) ALL"이라는 문장이 표시되는데, 이는 관리자 그룹이 모든 호스트에서 모든 명령을 실행할 수 있도록 허용합니다. 물론 passwd가 필요합니다.
1. 관리자 그룹의 모든 사용자가 비밀번호 없이 sudo를 수행하도록 하려면 이 줄을 "%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL"로 변경할 수 있습니다.
2. 사용자 jay가 비밀번호 없이 sudo를 수행하도록 하려면 "jay ALL = NOPASSWD: ALL" 줄을 추가하면 됩니다.
3. jay 사용자가 비밀번호 없이 특정 명령을 실행하도록 하려면 "jay ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser"라고 쓰면 됩니다.
4. ? 더 많은 구성 방법을 보려면 "man sudoers"를 실행하여 도움말 문서를 읽어보세요.
참고: 제가 설정한 구성 중 하나가 적용되지 않았습니다. 오랫동안 이유를 찾고 있었기 때문에 여기에 기록하겠습니다.
"jay ALL = NOPASSWD: ALL" 줄을 추가했는데 Jay가 sudo를 실행할 때 여전히 비밀번호를 입력해야 하는 이유는 무엇인가요?
내 라인이 "%admin ALL=(ALL) ALL" 그룹 정책 이전인 것으로 나타났습니다. 이후 그룹 구성은 이전 구성을 덮어쓰며 jay는 admin 그룹에 속하므로 비밀번호가 필요합니다.
이때 %admin 줄을 #으로 주석 처리하면 됩니다. 좋아요! 그러면 즉시 적용됩니까? 어쩌면 sudo가 실행될 때 시스템이 /etc/sudoers를 읽어서 즉시 적용되게 됩니다.
또한 회사 서버의 /etc/sudoers 구성이 함께 제공됩니다.

Defaults env_reset
Defaults syslog=auth
Defaults log_year,logfile=/var/log/sudo.log
User_Alias ABC = abc
Cmnd_Alias DEFAULT=/bin/*,/sbin/ldconfig,/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel,/bin/rpm,/usr/bin/yum,/sbin/service,/sbin/chkconfig,sudoedit /etc/rc.local,sudoedit /etc/hosts,sudoedit /etc/ld.so.conf,/bin/mount,sudoedit /etc/exports,/usr/bin/passwd [!-]*,!/usr/bin/passwd root,/bin/su - [!-]*,!/bin/su - root,!/bin/su root,/bin/bash,/usr/sbin/dmidecode,/usr/sbin/lsof,/usr/bin/du,/usr/bin/python,/usr/sbin/xm,sudoedit /etc/profile,sudoedit /etc/bashrc,/usr/bin/make,sudoedit /etc/security/limits.conf,/etc/init.d/*,/usr/bin/ruby
ABC ALL=(ALL)NOPASSWD:DEFAULT

/etc/sudoers

sudo vi /etc/sudoers
把/etc/sudoers里最后一行
%admin ALL=(ALL)
?为
%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL

를 수정한 다음 wq를 강제 저장하면 괜찮습니다
위 내용은 정확하지 않습니다. , 다음 사항에 주의하시기 바랍니다.
일반 터미널 대신 "슈퍼 유저 터미널"을 사용하여 /etc/sudoers 파일을 편집하세요. "수퍼 유저 터미널" 시작은 "메뉴 편집" 명령을 마우스 오른쪽 버튼으로 클릭하면 추가됩니다.
수정 후 wq 대신 wq를 사용하여 종료하세요

위 내용은 Linux에서 비밀번호를 입력하지 않고 sudo를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제