システムに関するメモが入ったフォルダが入っています。
私は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
フォルダを実行しました。
chown
ルートに実行し、chgrp
ルートに戻って再び user1 に戻りました。
root 権限でフォルダに入り、ファイルを開くことができます。
ユーザー1はできません。
ここで何が起こっているのか、何か手がかりはありますか?
答え1
これは権限所有権の問題ではなく、問題です。
実行権限 (省略形で、内の のx
箇所に表示されます) は、お客様が示した権限には明らかに存在しません。-
rw-
実行権限は、ディレクトリの場合、通常のファイルとはまったく異なる働きをします。ディレクトリの場合、実行権限はディレクトリに入る(つまり、cd
ディレクトリにアクセスするか、ファイル マネージャーで開く)。また、ディレクトリ内のファイルにアクセスすることもできます (ただし、成功するかどうかは、アクセスするファイルのアクセス許可など、他のアクセス許可にも依存します)。
root
は、通常の方法では権限によって制限されないため、ディレクトリに入ることができます。多くの場合、 として実行されるコマンドとアプリケーションは、root
ユーザーの希望に従うために権限を尊重しようとします。ただし、root
任意のファイルまたはディレクトリに対して、任意の操作 (OS が実行できる操作) を実行する権限があります。root
シェルでは、cd
実行権限のないディレクトリへの は成功します。
ソリューション問題を解決するには、次を実行します:
chmod u+x masternotes
これにより、( +
) の所有者masternotes
( )にディレクトリに対するu
実行権限 ( ) が与えられます。x
その後、通常のユーザーとしてディレクトリに入り、そこにあるファイルにアクセスできるようになります。
グループ所有者のメンバーにもこれを実行させたい場合は、代わりに以下を実行できます。
chmod ug+x masternotes
しかし、おそらくあなたは、ユーザー固有のグループ(フォルダーを所有するグループ)の唯一のメンバーです。
chmod
ここでのコマンドはない実行する必要があるroot
--私は意図的にないどちらのコマンドにも含まれていますsudo
。自分のフォルダの権限を自分で変更できるので、root
変更する必要はありません。
ご興味があれば実行権限を数値で設定する加算する数字ごとに(ゼロから始めて)次の点に注意してください。
- 読み取りの場合は4。
- 2は書き込み用です。
- 実行の場合は1。
例えば誰もが読んで実行できるようにしたいのであればsome-file
ただし、所有者だけが書き込みできるようにするには、次のようにします。
chmod 755 some-file
お勧めしますコミュニティドキュメントのFilePermissions実行可能ビットやフォルダーに対するその特別な意味など、Ubuntu のファイル権限の詳細については、 を参照してください。