English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux sudo命令

Linux 명령어大全

Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

使用权限:在 /etc/sudoers 中有出现的使用者。

语法

sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command

参数说明

  • -V 显示版本编号
  • -h 会显示版本编号及指令的使用方式说明
  • -l 显示出自己(执行 sudo 的使用者)的权限
  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b 将要执行的指令放在背景执行
  • -p prompt 可以更改问密码的提示语,其中 샫为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

在线示例

sudo命令使用

$ sudo ls
[sudo] password for hnlinux: 
hnlinux is not in the sudoers file. This incident will be reported.

指定用户执行命令

# sudo -u userb ls -l

显示sudo设置

$ sudo -L //显示sudo设置
Available options in a sudoers ``Defaults'' line:
syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: 사용자가 인증에 성공할 때 사용할 syslog 우선순위
syslog_badpri: 사용자가 인증에 실패할 때 사용할 syslog 우선순위
long_otp_prompt: OTP 프롬프트를 별도의 줄에 두습니다
ignore_dot: $PATH에 '.'를 무시합니다
mail_always: sudo가 실행될 때 항상 이메일을 보냅니다
mail_badpass: 사용자 인증이 실패할 때 이메일을 보냅니다
mail_no_user: 사용자가 sudoers에 없을 때 이메일을 보냅니다
mail_no_host: 사용자가 이 호스트의 sudoers에 없을 때 이메일을 보냅니다
mail_no_perms: 사용자가 명령어를 실행할 수 없을 때 이메일을 보냅니다
tty_tickets: 각 사용자별로 별도의 타임스탬프를 사용합니다/tty combo
lecture: sudo를 처음 실행할 때 사용자에게 설명을 드립니다
lecture_file: sudo 설명을 포함한 파일
authenticate: 기본적으로 사용자가 인증할 필요가 있습니다
root_sudo: 루트가 sudo를 실행할 수 있습니다
log_host: (비정형) 호스트 이름을 로그에 기록합니다-syslog) 로그 파일
log_year: (비정형) 년도를 로그에 기록합니다-syslog) 로그 파일
shell_noargs: sudo를 인자 없이 호출될 때, 셸을 시작합니다
set_home: shell을 시작할 때 대상 사용자의 $HOME를 설정합니다 -s
always_set_home: 항상 $HOME를 대상 사용자의 홈 디렉토리로 설정합니다
path_info: 유용한 오류 메시지를 제공하기 위해 일부 정보 수집을 허용합니다
fqdn: 완전히 요구합니다-sudoers 파일에 있는 등가 호스트 이름
insults: 비밀번호를 잘못 입력할 때 사용자를 모욕합니다
requiretty: 사용자가 tty를 가지고 있다면만 sudo를 실행할 수 있게 허용합니다
env_editor: Visudo는 EDITOR 환경 변수를 존중합니다
rootpw: root의 비밀번호를 요청합니다, 사용자의 비밀번호는 아닙니다
runaspw: runas_default 사용자의 비밀번호를 요청합니다, 사용자의 비밀번호는 아닙니다
targetpw: 대상 사용자의 비밀번호를 요청합니다, 사용자의 비밀번호는 아닙니다
use_loginclass: 대상 사용자의 로그인 클래스가 있다면 기본 설정을 적용합니다
set_logname: LOGNAME 및 USER 환경 변수를 설정합니다
stay_setuid: 대상 사용자의 효과적인 uid만 설정, 실제 uid는 설정하지 마십시오
preserve_groups: 그룹 벡터를 대상 사용자의 것으로 초기화하지 마십시오
loglinelen: 로그 파일 행을 감싸는 길이(감싸지 않는 경우 0)
timestamp_timeout: 인증 시간 표시 시간 초과
passwd_timeout: 비밀번호 표시 시간 초과
passwd_tries: 비밀번호 입력 시도 횟수
umask: 사용할 umask 또는 0777 사용자의를 사용하려면
logfile: 로그 파일 경로
mailerpath: 메일 프로그램 경로
mailerflags: 메일 프로그램의 플래그
mailto: 메일을 보내는 주소
mailfrom: 메일을 보내는 주소
mailsub: 메일 메시지의 제목
badpass_message: 잘못된 비밀번호 메시지
timestampdir: 인증 시간 표시 디렉토리 경로
timestampowner: 인증 시간 표시 디렉토리 소유자
exempt_group: 이 그룹의 사용자는 비밀번호 및 PATH 요구 사항에서 제외됩니다
passprompt: 기본 비밀번호 표시
passprompt_override: 설정되면, passprompt은 모든 경우에 시스템 표시를 대체합니다.
runas_default: 명령어를 실행할 기본 사용자
secure_path: 사용자의 $PATH를 대체할 값
editor: visudo에 사용할 편집기 경로
listpw: 'list' 가상 명령어에 비밀번호를 요구할 때
verifypw: 'verify' 가상 명령어에 비밀번호를 요구할 때
noexec: 'noexec_file'에 포함된 dummy exec 함수를 프리로드
noexec_file: dummy exec 함수를 포함한 파일
ignore_local_sudoers: LDAP 디렉토리가 활성화되어 있으면, 로컬 sudoers 파일을 무시하겠습니까
closefrom: 명령어 실행 전에 %d 이상의 파일 디스크립터가 닫힐 것
closefrom_override: 설정되어 있으면, 사용자가 `closefrom` 값을 -C 옵션
setenv: 사용자가 임의의 환경 변수를 설정할 수 있도록 허용
env_reset: 환경을 기본 변수 집합으로 재설정
env_check: 정상성을 확인할 환경 변수
env_delete: 제거할 환경 변수
env_keep: 보존할 환경 변수
role: 새 보안 컨텍스트에서 사용할 SELinux 역할
type: 새 보안 컨텍스트에서 사용할 SELinux 타입
askpass: askpass helper 프로그램의 경로
env_file: sudo에 대한 경로-특정 환경 파일
sudoers_locale: sudoers를 파싱할 때 사용할 로케일
visiblepw: 패스워드가 보이더라도 sudo가 패스워드 입력 요청을 할 수 있게 합니다
pwfeedback: 사용자 입력이 있을 때 패스워드 입력 요청에 시각적 피드백 제공
fast_glob: 더 빠른 글로밍을 사용하여 정확도가 낮지만 파일 시스템에 접근하지 않습니다
umask_override: sudoers에 지정된 umask는 사용자의 것을 대체할 수 있으며, 더 허용적인 경우에도 그렇습니다

root 권한으로 이전 명령어 실행

$ sudo !!

특정 사용자로 텍스트 편집

$ sudo -u uggc vi ~www/index.html
//uggc 사용자로 home 디렉토리 아래 www 디렉토리에 있는 index.html 파일을 편집

현재 권한列出

sudo -l

sudo의 버전 정보列出

sudo -V

Linux 명령어大全