거기에 나는 다음과 /etc/sudoers
같이 덧붙였습니다.
%myuser ALL=(ALL) NOPASSWD:ALL
이제 입력하면 sudo apt update
비밀번호를 입력할 필요가 없습니다.
그러나 나는 전체 루트 액세스를 원합니다. 즉, .apt를 사용하고 싶습니다 apt update
.
전체 루트 액세스를 원하는 경우의 한 예이고, 또 다른 예는 어디에서나 파일을 생성/수정할 수 있다는 것입니다.
root ALL=(ALL:ALL) ALL
myuser 행에서 루트 행( )을 사용해 보았지만 아무 일도 일어나지 않았습니다.
%myuser ALL=(ALL:ALL) ALL
이것은 내 /etc/sudoers
파일입니다:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
scorpion ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
%scorpion ALL=(ALL) NOPASSWD:ALL
답변1
권한을 가지고 실행하는 더 안전한 apt update
방법 root
,아니요다음을 입력 sudo apt update
하면 apt
별칭이 사용자 프로필에 추가됩니다.
alias apt='sudo apt'
apt update
그런 다음 , apt upgrade
, 또는 을 실행할 때마다 apt install <pkg>
apt 명령이 루트 권한으로 실행됩니다. 그러나 다른 명령은 일반 사용자 권한을 가진 일반 사용자로만 실행됩니다.
이제 모든 것을 루트로 실행하지 않는 데에는 타당한 이유가 있음을 인정하고 sudo를 사용하지 않고 사용자에게 루트와 동일한 권한을 모두 부여하는 방법이 있습니다.
- 사용자의 UID 및 GID를 0으로 변경하십시오.
usermod -ou 0 -g 0 <username>
<username>
그러면 사용자가 루트 권한으로 실행하기 위해 수행하는 모든 작업이 변경됩니다 . 모든 것.
예. 나는 이것이 매우 안전하지 않다는 것을 알고 있습니다. 하지만 그것은하다질문에 답하십시오.
이 경로를 선택하는 경우 수시로 다시 설치해도 괜찮은 시스템에서 수행하십시오. 모든 것을 루트로 실행하면 결국 예상치 못한 결과가 발생할 수 있습니다.
답변2
각 명령을 입력하기 전에 입력할 필요 없이 입력 sudo -i
하면 대화형 루트 셸이 표시됩니다 sudo
.
답변3
젠투 /etc/sudoers
파일을 기본값으로 사용하려면 두 가지 옵션이 있습니다:
옵션 1:
## sudoers file.
.. snip ..
## User privilege specification
##
root ALL=(ALL) ALL
## Add your user here. This allows you to run all commands as root,
## not just the update commands.
scorpion ALL=(ALL) ALL
.. snip ..
옵션 2:
## sudoers file.
.. snip ..
## User alias specification
##
## Groups of users. These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias ADMINS = millert, dowdy, mikef
User_Alias UPDATERS = scorpion
##
## Cmnd alias specification
##
## Groups of commands. Often used to group related commands together.
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
Cmnd_Alias UPDATE = /path/to/apt-get, /path/to/apt
.. snip ..
##
## User privilege specification
##
root ALL=(ALL) ALL
UPDATERS ALL=NOPASSWD: UPDATE
노트
- 이 예에서는 사용자 이름이 이라고 가정합니다
scorpion
. - 나는 모든 명령의 경로가
apt
거기에 있다고 가정하지만 젠투 는/sbin
그것을 사용하지 않으므로 편집하는 것을 잊지 마세요.apt
apt-get
- 명령 별칭과 사용자 별칭을 추가하지 않고도 이 작업을 수행할 수 있지만 IMHO 별칭을 사용하면 명령 추가 및 디버그(필요한 경우)가 더 쉬워집니다.