Linux sudo コマンド

Linux 命令大全Linux コマンド大全

sudo は Super User DO の略で、許可されたユーザーが他のユーザー(通常は root ユーザー)の権限でコマンドを実行できるようにします。つまり、sudo で実行されたコマンドは、あたかも root 自身が実行したかのように動作します。

使用権限: /etc/sudoers に記載されているユーザー。

構文

sudo [选项] 命令

例:

sudo apt update          # 以 root 权限更新软件包列表
sudo vim /etc/hosts     # 编辑需要 root 权限的文件

パラメータの説明:

  • -i: 初期ログインをシミュレートし、対象ユーザーの環境を読み込みます
  • -s: シェルを実行します
  • -uuser: 指定したユーザーとして実行します
  • -l: 現在のユーザーが実行可能な sudo コマンドを一覧表示します
  • -v: ユーザー認証情報を検証します(sudo セッションを延長)
  • -k: sudo の認証情報キャッシュを取り消します

例

root 権限で単一のコマンドを実行:

sudo apt update
sudo systemctl restart nginx
sudo mkdir /opt/myapp

root ユーザーのシェルに切り替え:

sudo -i    # 登录shell,加载root环境变量
sudo -s    # 非登录shell
sudo su -  # 另一种方式

他のユーザーとしてコマンドを実行:

sudo -u username command
sudo -u postgres psql  # 以 postgres 用户运行 psql

利用可能な権限を確認:

sudo -l

システムファイルを編集:

sudo nano /etc/hosts
sudo vim /etc/nginx/nginx.conf

設定ファイル

sudo の設定は /etc/sudoers ファイルに保存されており、visudo コマンドで編集する必要があります:

sudo visudo

一般的な設定例:

# 允许用户免密码执行所有命令
username ALL=(ALL) NOPASSWD: ALL

# 允许用户组执行特定命令
%wheel ALL=(ALL) /bin/systemctl, /usr/bin/apt

よくある質問

ユーザーが sudoers ファイルにない場合:

# 需要 root 用户将目标用户加入 sudo 组:
usermod -aG sudo username  # Ubuntu/Debian
usermod -aG wheel username # CentOS/RHEL

キャッシュ時間の調整:

/etc/sudoers の timestamp_timeout を変更します(単位: 分):

Defaults timestamp_timeout=30

su と sudo の違い

特徴 su sudo
必要なパスワード 対象ユーザーのパスワード 現在のユーザーのパスワード
セッションの持続 手動で exit するまで 単一コマンドまたは短時間のキャッシュ
設定の複雑さ 簡単 sudoers の設定が必要
セキュリティ root パスワードを知っている必要がある より細かい権限制御
監査 限定的 より詳細なログ

su コマンドはシンプルで直接的ですが、現代のシステム管理においては、sudo の方がより高いセキュリティと監査機能を提供するため、通常は sudo が推奨されます。

Linux 命令大全Linux コマンド大全

その他の拡張