システムに関するメモが入ったフォルダーがあります。
User1としてログインしています
cd masternotes
は以下を生成します。
bash: cd: mastersnotes: permission denied
whoami
は以下を生成します:user1
ls -l
は以下を生成します。
drw-rw-rw-. 2 user1 user1 4096 Mar 26 20:47 masternotes
ls -l
ディレクトリ内で生成されるもの:
-rw-rw-rw-. 7 user1 user1 345 Oct 7 2006 crontab
-rw-rw-rw-. 7 user1 user1 348 Oct 7 2006 crontab~
-rw-rw-rw-. 7 user1 user1 3702 Oct 7 2006 grep_usage.txt
-rw-rw-rw-. 7 user1 user1 91868 Oct 7 2006 lvm-layout-10-14-03.tif
-rw-rw-rw-. 7 user1 user1 30 Oct 7 2006 mysql
-rw-rw-rw-. 7 user1 user1 35764 Oct 7 2006 notes
フォルダーに対してchmod -R 666 masternotes
を実行しました。
Rootにchown
を実行し、rootにchgrp
を実行して、user1に再び戻りました。
ルートは下降してフォルダに入り、ファイルを開くことができます。
user1はできません。
ここで何が起こっているのかについての手がかりはありますか?
これは permissions の問題であり、所有権の問題ではありません。
実行権限(x
と省略され、-
がrw-
にある場所に表示されます)は、私たちが示した権限からは著しく欠落しています。
実行許可は、ディレクトリの場合と通常のファイルの場合とでは大きく異なります。ディレクトリの場合、実行権限により、ディレクトリを入力する(つまり、cd
する、またはファイルマネージャで開く)ことができます。また、ディレクトリ内のファイルへのアクセスを試行する機能も提供します(ただし、成功するかどうかは、アクセスされるファイルのアクセス許可を含む他のアクセス許可にも依存します)。
root
は、通常の方法では許可によって実際にバインドされていないため、ディレクトリに入ることができます。多くの方法で、root
として実行されるコマンドとアプリケーションは、ユーザーの要望を順守するためにアクセス許可を尊重しようとします。ただし、root
には、任意のファイルまたはディレクトリに対して(OSが実行可能な)操作を実行する権限があります。 root
シェルでは、実行許可のないディレクトリへのcd
ingが成功します。
問題の解決策は以下を実行することです:
chmod u+x masternotes
これにより、ディレクトリのmasternotes
(u
)実行可能権限(x
)の所有者(+
)が与えられます。
その後、通常のユーザーとして、ディレクトリに入り、そこにあるファイルにアクセスを試みることができます。
グループ所有者のメンバーにもこれを実行させたい場合は、代わりにこれを実行できます。
chmod ug+x masternotes
ただし、おそらくユーザー固有のグループ(フォルダを所有している)の唯一のメンバーです。
ここでのchmod
コマンドは、notをroot
---として実行する必要がありますnotいずれかのコマンドにSudo
が含まれています。あなたはフォルダをownしているので、自分で権限を変更することができます。あなたのためにroot
は必要ありません。
実行許可を数値で設定することに興味がある場合、追加する数字ごとに(ゼロから始まる)覚えておいてください:
たとえば、誰もが読み取りおよび実行できるようにしたい場合some-file
が、所有者のみが書き込みできるようにすると、使用します:
chmod 755 some-file
Ubuntuのファイルのアクセス許可(フォルダーの実行可能ビットとその特別な意味を含む)をさらに読むには、 コミュニティドキュメントのFilePermissions をお勧めします。