質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.22%

sudoとパーミッションの関係

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,519

PartyKids

score 63

閲覧ありがとうございます。
VPSで本番環境を初めて構築中の初心者です。rootや一般ユーザーの役割を考えず、エラーに困ったらsudoコマンドを多用していたため行き詰り、その原因の一つがパーミッションではないかと考え、質問させていただきました。

前提

ローカル:Mac
VPS:さくらVPS
os:centos7

設定&エラー

root@<ip_address> #ログイン
adduser deloy #一般ユーザー登録
passwd deploy
gpasswd -a deploy wheel #グループ追加
yum -y install nano
groups deploy => deploy wheel
exit #終了

ssh deploy@<ip_address> #ログイン
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@<ip_address> #ログイン
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でパーミッションを変更する必要があるのですか?

よろしくお願いいたします!!

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

0

疑問1:
deployユーザーの所属グループを変更しても、それが有効になるのは次にログインしてからです。
なので、一度ログインし直せばうまくいくケースでした。

疑問2:
Yes

疑問3:
sudoersというファイルをごにょごにょします。
sudoersをキーワードにぐぐってみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/07/14 19:02

    疑問3が解決出来ないので質問してもよろしいでしょうか?

    <前提>
    ssh deploy@<ip_address> #ログイン
    cd /usr/local/ drwxr-xr-x. root root
    touch funky → cannot touch ‘funky’: Permission denied
    sudo touch funky → success -rw-r--r-- root root
    funkyディレクト下で作業するとpermission deniedになるので、funkyディレクトリをsudo無しで作成したいです。 つまり、drwx------- deploy deploy でファイルを作成です。

    sudoersを調べても、一般ユーザーの`sudo`実行コマンド制限方法、`sudo`実行時のパスワード省略方法やパスワードのキャッシュ時間の設定等しか見つけられませんでした。

    私の質問内容が不適切だったため、誤解を招くような表現をしてしまったのではと思い、再度質問させていただきました。

    よろしくお願いいたします!!

    キャンセル

  • 2017/07/20 06:25

    全部の疑問に回答していただき、ありがとうございました!

    まだまだ勉強不足ですが、よろしくお願いいたします。

    キャンセル

0

疑問1に対してだけ。gpasswdによってユーザーをグループに追加したときは、一旦ログアウトや再起動をしなければ反映されません。単にそれをしていないだけでは。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/07/14 18:32

    コメントありがとうございます!

    そうだったんですね!

    firewalldやsshdの設定を変更した際には、reloadやrestartしていたので、パーミッションを変更した際にもrestart等があるのでは?と気にはしていたのですが、そのようなコメントが無かったので、特に何かする必要性はないっと思っていました。。。。
    再起動orログアウトだったんですね。

    ご指摘ありがとうございました!

    キャンセル

0

sudoの設定はvisudoコマンドでは?
ただしvi(vim)の操作をできる前提です

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/07/14 18:26

    コメントありがとうございます!

    vimの操作は、現段階では省きたかったので、nanoをインストールしたのですが、sudoersを直接編集しないために、visudoコマンドを用いるですね!

    viが出てきたら、nanoに変換して作業しており、そこまで気が付きませんでした!

    ご指摘ありがとうございます!!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる