’, Â, � etc... How to fix strange encoding characters in WP or other SQL database
目次:
- Sudoのインストール(sudoコマンドが見つかりません)
- UbuntuおよびDebianにSudoをインストールする
- CentOSおよびFedoraにSudoをインストールします
- Sudoersへのユーザーの追加
- 須藤の使用方法
- パスワードタイムアウト
- ルート以外のユーザーとしてコマンドを実行する
- 須藤でリダイレクトする方法
- 結論
sudoコマンドを使用すると、プログラムを別のユーザー(デフォルトではrootユーザー)として実行できます。 コマンドラインで多くの時間を費やす場合、sudoは非常に頻繁に使用するコマンドの1つです。
rootとしてログインする代わりにsudoを使用すると、rootパスワードを知らなくても個々のユーザーに制限された管理特権を付与できるため、より安全です。
このチュートリアルでは、
sudo
コマンドの使用方法を説明します。
Sudoのインストール(sudoコマンドが見つかりません)
sudoパッケージは、ほとんどのLinuxディストリビューションにプリインストールされています。
sudoパッケージがシステムにインストールされているかどうかを確認するには、コンソールを開き、
sudo
と
Enter
を押します。 sudoがインストールされている場合、システムに短いヘルプメッセージが表示されます。インストールされていない場合は、
sudo command not found
などのメッセージが表示
sudo command not found
ます。
sudoがインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
UbuntuおよびDebianにSudoをインストールする
CentOSおよびFedoraにSudoをインストールします
Sudoersへのユーザーの追加
デフォルトでは、sudoアクセスを許可するほとんどのLinuxディストリビューションでは、
sudoers
ファイルで定義されたsudoグループにユーザーを追加するのと同じくらい簡単です。 このグループのメンバーは、ルートとして任意のコマンドを実行できます。 グループの名前は、配布ごとに異なる場合があります。
CentOSやFedoraなどのRedHatベースのディストリビューションでは、sudoグループの名前は
wheel
です。 ユーザーをグループに追加するには、次を実行します。
usermod -aG wheel username
Debian、Ubuntu、およびそれらの派生物では、グループ
sudo
メンバーにsudoアクセスが許可されます。
usermod -aG sudo username
Ubuntuのルートユーザーアカウントは、セキュリティ上の理由からデフォルトで無効になっています。ユーザーは、sudoを使用してシステム管理タスクを実行することをお勧めします。 Ubuntuインストーラーによって作成された最初のユーザーはすでにsudoグループのメンバーであるため、Ubuntuを実行している場合は、ログインしているユーザーに既にsudo特権が付与されている可能性があります。
たとえば、ユーザー
linuxize
が
mkdir
コマンドのみをsudoとして実行できるようにするには、次のように入力します。
sudo visudo
次の行を追加します。
linuxize ALL=/bin/mkdir
ほとんどのシステムでは、
visudo
コマンドはvimテキストエディターで
/etc/sudoers
ファイルを開きます。 vimの経験がない場合は、ファイルを保存してvimエディターを終了する方法についての記事を確認してください。
ユーザーがパスワードを入力せずにsudoコマンドを実行できるようにすることもできます。
linuxize ALL=(ALL) NOPASSWD: ALL
須藤の使用方法
sudo
コマンドの構文は次のとおりです。
sudo OPTION.. COMMAND
sudo
コマンドには、その動作を制御する多くのオプションがありますが、通常、
sudo
はオプションなしで最も基本的な形式で使用されます。
sudoを使用するには、コマンドの前にsudoを付けるだけです。
sudo command
command
は、sudoを使用するコマンドです。
Sudoは
/etc/sudoers
ファイルを読み取り、呼び出し側のユーザーにsudoの評価が付与されているかどうかを確認します。 セッションで初めてsudoを使用するときは、ユーザーパスワードの入力を求められ、コマンドはrootとして実行されます。
たとえば、
/root
ディレクトリ内のすべてのファイルをリストするには、次を使用します。
sudo ls /root
password for linuxize:….bashrc.cache.config.local.profile
パスワードタイムアウト
デフォルトでは、sudoは5分間のsudoの非アクティブ後にパスワードの再入力を求めます。
sudoers
ファイルを編集して、デフォルトのタイムアウトを変更できます。
visudo
ファイルを開きます:
sudo visudo
以下の行を追加してデフォルトのタイムアウトを設定します
10
は分単位で指定されたタイムアウトです。
Defaults timestamp_timeout=10
Defaults:user_name timestamp_timeout=10
ルート以外のユーザーとしてコマンドを実行する
sudo
は通常のユーザーにルート権限を提供するためだけに使用されるという誤った認識があります。 実際、
sudo
を使用して、任意のユーザーとしてコマンドを実行できます。
-u
オプションを使用すると、指定したユーザーとしてコマンドを実行できます。
次の例では、
sudo
を使用して
whoami
コマンドをユーザー「richard」として実行しています。
sudo -u richard whoami
whoami
コマンドは、コマンドを実行しているユーザーの名前を出力します。
須藤でリダイレクトする方法
sudo echo "test" > /root/file.txt
bash: /root/file.txt: Permission denied
これは、出力のリダイレクト「
>
」が、sudoで指定されたユーザーではなく、ログインしているユーザーの下で実行されるために発生します。 リダイレクトは、
sudo
コマンドが呼び出される前に発生します。
1つの解決策は、
sudo sh -c
を使用してrootとして新しいシェルを呼び出すことです。
sudo sh -c 'echo "test" > /root/file.txt'
別のオプションは、以下に示すように、通常のユーザーとして
tee
コマンドに出力をパイプすることです。
echo "test" | sudo tee /root/file.txt
結論
sudo
コマンドの使用方法と、sudo特権を持つ新しいユーザーの作成方法を学習しました。