rootユーザーなら起動できる。rootじゃなきゃ動かないを解決するにはgroupに追加すれば実行できます。
Ubuntuのroot以外で操作する際必要な設定。
groupに特定のユーザーを追加します。
ここではユーザー名はuserAとします。 環境合わせて置き換えて実行してください。
groups userA
userA adm cdrom sudo dip plugdev lpadmin sambashare docker www-data
cat /etc/group
root:x:0:
data:x:1:
... (省略)
userA:x:1000:
docker:x:999:userA
www-data:x:33:userA
現在のユーザー名を確認するには、以下のコマンドを使用します。
whoami
userA
システム上のすべてのユーザーを表示するには、以下のコマンドを使用します。
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
... (省略)
userA:x:1000:1000:userA,,,:/home/userA:/bin/bash
既存のユーザーを既存のグループに追加するには、usermodコマンドを使用します。
ユーザーuserAをdockerグループに追加する場合
sudo usermod -aG [グループ名] [ユーザー名]
sudo usermod -aG docker userA
変更を有効にするには、一度ログアウトしてから再度ログインするか、newgrpコマンドを使用します。
newgrp [グループ名]
ユーザーをグループから削除するには、deluserコマンドを使用します。
ユーザーuserAをdockerグループから削除する場合
sudo deluser [ユーザー名] [グループ名]
sudo deluser userA docker
Dockerをroot以外のユーザーで操作するには、そのユーザーをdockerグループに追加する必要があります。
sudo usermod -aG docker userA
このコマンドを実行した後、変更を有効にするために一度ログアウトしてから再度ログインするか、以下のコマンドを実行してください。
newgrp docker
以下のコマンドで、現在のユーザーがdockerグループに属しているか確認できます。
groups userA
dockerが表示されていれば、非rootユーザーでDockerコマンドを実行できるようになります。
/var/www/html) の操作権限NginxのデフォルトのWebルートディレクトリは/var/www/htmlです。このディレクトリを非rootユーザーで操作するには、適切な権限を設定する必要があります。
方法は2つあります。
sudo chown -R userA:userA /var/www/html
このコマンドにより、/var/www/htmlディレクトリとその中のすべてのファイルの所有者が現在のユーザーに変更されます。これにより、sudoなしでファイルの作成、編集、削除が可能になります。
Webサーバー(Apache)(Nginx)は通常www-dataユーザーで実行されます。ユーザーをwww-dataグループに追加し、ディレクトリにグループ書き込み権限を付与することで、ユーザーとWebサーバーの両方からアクセスできるようにします。
Nginxはwww-dataではなくnginxの場合もあります。
sudo usermod -aG www-data userA
sudo chown -R userA:www-data /var/www/html #<--ここは人によって異なる。userAではなくrootの場合やwww-dataの場合も
sudo chmod -R 775 /var/www/html
sudo usermod -aG www-data userAで現在のユーザーをwww-dataグループに追加します。その後、sudo chown -R userA:www-data /var/www/htmlでディレクトリの所有者を現在のユーザーに、グループをwww-dataに変更します。最後に、sudo chmod -R 775 /var/www/htmlで所有者とグループに読み書き実行権限を、その他のユーザーには読み・実行権限を付与します。
Ubuntu環境でroot以外のユーザーがDocker、Nginx、Apacheを操作するための設定方法を説明しました。
これらの設定を行うことで、rootユーザー以外でも操作することができます。