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

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

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

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

Q&A

解決済

1回答

1078閲覧

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

mjk

総合スコア303

Ubuntu

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

0グッド

0クリップ

投稿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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

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

回答1

0

自己解決

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

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


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

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

投稿2022/11/25 06:35

mjk

総合スコア303

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問