質問: 閲覧ありがとうございます。 VPSで本番環境を初めて構築中の初心者です。rootや一般ユーザーの役割を考えず、エラーに困ったら`sudo`コマンドを多用していたため行き詰り、その原因の一つがパーミッションではないかと考え、質問させていただきました。 前提 -- ローカル:Mac VPS:さくらVPS os:centos7 設定&エラー ------ ``` root@ #ログイン adduser deloy #一般ユーザー登録 passwd deploy gpasswd -a deploy wheel #グループ追加 yum -y install nano groups deploy => deploy wheel exit #終了 ssh deploy@ #ログイン sudo yum -y install git git clone git://github.com/sstephenson/rbenv.git rbenv fatal: could not create work tree dir 'rbenv'.: Permission denied ``` 試したこと(実験) --------- ``` ssh deploy@ #ログイン groups root => root gpasswd -a deploy root groups deploy => root deploy wheel cd /usr/local sudo touch a.txt ls -al -rw-r--r--. root root nano a.txt → Warning: No write permission sudo chmod g+wx a.txt ls -al -rw-rwxr-- root root nano a.txt → Warning: No write permission sudo chmod o+wx a.txt ls -al -rw-rwxrwx root root nano a.txt → success!! ``` 疑問1:a.txtのdeployユーザーをrootグループに追加したのに書き込めないのはなぜ? ----------------------------------------------- deployユーザーはrootグループに所属しており、ファイル所有者rootはrootグループに属しているので、グループ権限を変更すれば(`chmod g+wx`)、deployユーザーは、`sudo`無しで書き込みができると思っていました。しかし、実際にはその他のユーザー権限を変更しなければ書き込めませんでした。 rootグループはrootのみしかなれない? 疑問2:wheelグループ ------------- root権限という言葉から、wheelグループにrootは含まれていると勘違いしていたのですが、wheelグループは`sudo`コマンドを使えるユーザー制限するためだけのグループ?という理解でよろしいのでしょうか? 疑問3:一般ユーザーがsudo無しでコマンドを実行するには? ------------------------------ 『一般ユーザー sudo なし』っと検索しても、ユーザー切替時のパスワード無しがヒットしてしまい、うまく検索できないので助けてください。 `/home/deploy`ディレクト下では、deployユーザーはsudo無しでコマンド実行する事が出来ることは、分かったのですが、それ以外の場合(usr/local等)は、どうなんですか? 一旦`sudo`を付けたコマンドを実行させ、その度に作成されたディレクトリ&ファイルに`chmod`でパーミッションを変更する必要があるのですか? よろしくお願いいたします!!
回答: 疑問1: deployユーザーの所属グループを変更しても、それが有効になるのは次にログインしてからです。 なので、一度ログインし直せばうまくいくケースでした。 疑問2: Yes 疑問3: sudoersというファイルをごにょごにょします。 sudoersをキーワードにぐぐってみてください。