前提
今日、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
umaskについて調べてみてください。
恒久的に反映させるためにbashの場合.profileファイルを修正することになるかと思います。
コメントありがとうございます。早速調べてみます。
umask 022 と ~/.bash_profile の一番下あたりに 記載してみては? アカウントごとに 777を与えるのは一般的では ありませんからね
コメントありがとうございます。
Ubuntuを今日入れたばかりで手探り状態なので基本的なことが分かっていませんので、
話が噛み合っていなかったらごめんなさい。
調べてみたところ新規ファイル作成したのは、.shのシェルスクリプトなので、
umask 022を002とかに変更しても結果が変わりませんでした。
ここからはなんとなくの予想なのですが...
シェルスクリプトを作ってすぐに動かしてとんでもないことにならないように、
あえて実行権限は付かないのかなと。
exeファイルは実行権限付いてるようなので運用的に問題無さそうです。
後ほど質問はクローズしようかなと思っています。
コメント頂いているのにすみません。
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はここに制限を加える形でパーミッションを指定します。
詳細で丁寧な解説と外部リンクありがとうございます。
もしよろしければ回答へ転記して頂ければBA変更します。
質問に対する回答にはなっていないですし、解決済ではありますがもしかしたら何かしら設定方法があって回答される方がいるかもしれないので、回答としての記載は控えておきます。

回答1件
あなたの回答
tips
プレビュー