Files
wiki/infrastructure/linux/commands/permissions/sudo.md
T

52 lines
1.6 KiB
Markdown

# sudoコマンド
`sudo` は、別のユーザーの権限(通常は root 権限)を使用してコマンドを実行するコマンド
## 基本構文
```
sudo [-u <user>] [-s | -i] [<command> [<arg>...]]
```
- `-u <user>` ... root以外のユーザの権限で実行するときに指定
- `<command>` ... 実行するコマンド
- `<arg>` ... `<command>`に渡す引数
## 使用例
### システム用ディレクトリにファイルを作成する
- `/opt`,`/etc`,`/var`などのシステム用ディレクトリは通常rootが所有
- 一般ユーザがそのようなディレクトリにファイルを作成する際には`sudo`を使用
- 書き込み権限があれば`sudo`は不要
```
sudo mkdir /opt/gitea
```
### postgresユーザとしてpsqlを実行する
- PostgreSQLをインストールすると、`postgres`という専用ユーザが作成される
- PostgreSQLでは、ローカル接続時にpeer認証が使用される
- `postgres`ユーザとして実行することで、DBの管理者ロールである`postgres`に接続できる
```
sudo -u postgres psql
```
- `sudo` ... 別のユーザの権限でコマンドを実行
- `-u postgres` ... 実行ユーザに`postgres`を指定
- `psql` ... PostgreSQLのクライアントを起動
### rootユーザとしてログイン
```
sudo -i
```
- `-i`(`--login`)オプションを指定
- rootユーザのログインシェルを起動する
### root以外のユーザとしてログイン
```
sudo -u taro -i
```
- root以外のユーザの権限で実行する場合は`-u`オプションを指定