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

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

新規登録して質問してみよう
ただいま回答率
86.02%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

Ubuntuの新規ファイル作成時のアクセス権限が無いので変更したい

mjk
mjk

総合スコア301

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

1回答

0グッド

0クリップ

334閲覧

投稿2022/11/25 04:49

前提

今日、Ubuntu(20.04 LTS)を新規インストールした時に最初に作られるuserで、exeファイルを作って実行しようとすると権限がない旨のエラーが出て実行できませんでした。

調べてファイルに直接全権限を与えて実行は出来たのですが、今後新規ファイル作成する毎に権限を変更するのは手間です。

ファイル新規作成時の権限
-rw-r--r--

実現したいこと

userによる新規ファイル作成時に全権限を与えることをデフォルトにしたい。
ローカルPCで個人でしか使っていないので複雑な権限管理などは不要なので、
シンプルな設定でどこで何を作っても利用できるようにしておきたいです。

試したこと

chmod -R 777 directory
個別に権限を変更することは出来ましたが、毎回変更するのは面倒そうです。

補足情報(FW/ツールのバージョンなど)

Ubuntu 20.04 LTS
WSL2
VSCode 1.73.1
Windows10 x64 19044

以下のような質問にはグッドを送りましょう

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

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

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

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

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

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

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

適切な質問に修正を依頼しましょう。

Crimson_Tide

2022/11/25 05:10 編集

umaskについて調べてみてください。 恒久的に反映させるためにbashの場合.profileファイルを修正することになるかと思います。
mjk

2022/11/25 05:36

コメントありがとうございます。早速調べてみます。
nanami12

2022/11/25 05:41 編集

umask 022 と ~/.bash_profile の一番下あたりに 記載してみては? アカウントごとに 777を与えるのは一般的では ありませんからね
mjk

2022/11/25 06:15

コメントありがとうございます。 Ubuntuを今日入れたばかりで手探り状態なので基本的なことが分かっていませんので、 話が噛み合っていなかったらごめんなさい。 調べてみたところ新規ファイル作成したのは、.shのシェルスクリプトなので、 umask 022を002とかに変更しても結果が変わりませんでした。 ここからはなんとなくの予想なのですが... シェルスクリプトを作ってすぐに動かしてとんでもないことにならないように、 あえて実行権限は付かないのかなと。 exeファイルは実行権限付いてるようなので運用的に問題無さそうです。 後ほど質問はクローズしようかなと思っています。 コメント頂いているのにすみません。
Crimson_Tide

2022/11/25 09:30 編集

umaskの設定でデフォルトで実行ビットが立ったファイルができるかのようなコメントをしてしまいましたが誤っておりました。大変申し訳ありません。 デフォルトの許可設定がファイルでは666、ディレクトリでは777でそれに対してumaskが適用されるようです。 そのためファイルにumaskをどう設定しても実行ビットは立ちません。 (umask022なら 666-022=644(rwxr--r--)) 容易に実行できるファイルが作成されないための設定かと思います。 .cppファイルをg++でコンパイルし、実行ファイルを作成すると以下のようなアクセス権が設定されました。 umask000 の時 rwxrwxrwx umask 027の時 rwxr-x--- umask 111の時 rw-rw-rw- プログラム(実行コマンド)によっては、ファイル作成時に777からumaskを適用した権限を付与しているように見受けられます。 以下ubuntuの公式ドキュメントから拾えればよかったのですが見つけられなかった為、ubuntu外のドキュメントですが参考まで 【Solaris】 https://docs.oracle.com/cd/E19683-01/816-3946/customize-17/index.html > たとえば、umask が 000 に設定されている場合は、新規に作成される全ファイルのアクセス権は次のとおりです (読み取り権と書き込み権があり、実行権なし)。 > rw-rw-rw- (mode 666) > 新規に作成される全ディレクトリのアクセス権は次のとおりです (読み取り権、書き込み権、実行権の全アクセス権がある) 。 > wxrwxrwx (モード 777) 【RedHat】 https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/s2-setting-default-permissions-for-new-files-using-umask > セキュリティー上の理由から、レギュラーファイルにはデフォルトで実行権限が設定されていません。したがって、umask がいかなる権限も禁止しない 0000 であっても、新しいレギュラーファイルは実行権限を持ちません。ただし、ディレクトリーは実行権限を持つ状態で作成できます。 https://atmarkit.itmedia.co.jp/ait/articles/1907/26/news011.html > Linuxでファイルやディレクトリを作成する際、基本的なパーミッションは制限が最も少ない状態になっています。ファイルは「所有者」「グループ」「その他」ともに読み書き(rw)が可能な「666」(rw-rw-rw-)、ディレクトリはさらに実行(x)も可能な「777」(rwxrwxrwx)です。umaskはここに制限を加える形でパーミッションを指定します。
mjk

2022/11/25 11:22

詳細で丁寧な解説と外部リンクありがとうございます。 もしよろしければ回答へ転記して頂ければBA変更します。
Crimson_Tide

2022/11/25 14:52

質問に対する回答にはなっていないですし、解決済ではありますがもしかしたら何かしら設定方法があって回答される方がいるかもしれないので、回答としての記載は控えておきます。

回答1

0

自己解決

自己解決しました
質問の内容の解決では無いのですが、
運用的に問題無さそうなので質問をクローズさせて頂きます。
クローズの為の自己解決回答なので何かしら回答があればBA変更させて頂きます。

コメントを頂いた方ありがとうございました。


ファイルの権限
シェルスクリプトファイル.shを新規作成した場合は、
umask 022002に変更しても実行権限が付与されませんでした。

それを調べている過程で後から気づいたのですが、
exeファイルは元々実行権限が付与されているので運用上問題無さそうです。

投稿2022/11/25 06:35

mjk

総合スコア301

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。