ディレクトリにファイルを作成しようとしていますが、次の結果が表示されます。
`touch`: cannot touch ‘test’: Permission denied
これは私のコマンドです:
[user@xxx api]$ ls -l
total 184
...
drwxrwxr-x 2 root root 4096 2016-04-12 14:38 public
..
[user@xxx api]$ cd ./public
[user@xxx public]$ touch test
touch: cannot touch ‘test’: Permission denied
ベストアンサー1
このコンテンツは編集できません。人々ディレクトリ(ない場合)書くそして実装するライセンス。
新しいファイルを作成しようとしていることを示します。
test
ファイルがまだ存在しない場合は、public
新しいファイルtouch
を作成しようとします。もしなければ書くそして実装する親ディレクトリに対する権限。ディレクトリに移動するには実行が必要で、新しいファイルのinodeエントリを追加するには書き込みが必要です。明らかに、これらの権限の一方または両方は持っていません。test
ファイルがすでに存在するpublic
場合、デフォルトでtouch
はファイル変更時間が更新されます。ただ書く入場文書これは、変更日時がファイルのinodeに保存されるために必要です。ファイルがすでに存在する場合は、コマンドを使用して書き込みls -l public/test
権限があることを確認するなど、ファイル権限を確認する必要があります。
以下を示すディレクトリ権限ビットマスクrwxrwxr-x
:
root
ディレクトリの所有者であるユーザーは、ディレクトリへの書き込みアクセス権を持っています。目次最初のブロックに示すようにrwx
。このユーザーはまた、ディレクトリ(r
ビット)を読み、それらをナビゲートしてその内容(x
ビット)にアクセスできます。- このグループ
root
(つまり、ディレクトリ内のグループ)のメンバーは自分自身ではなく、root
ディレクトリを読み、書き込み、および閲覧するための同様の権限を持ちます。目次rwx
2番目のブロックに示すように
他のすべてのユーザーは、r-x
最後のブロックに示すように読み取りおよび実行権限のみを持ちます。前述のように、ディレクトリの場合、実行権限を使用すると、ディレクトリに移動してその内容にアクセスできます。バラよりこの問題これをより明確に理解するには。
許可はどのように受けられますか?
次のいずれかを実行するには、システム管理者(おそらくあなた!)に連絡する必要があります。
- あなたをそうする
public/
ディレクトリ所有者同様のコマンドを使用してくださいchown user public/
。これは、編集権限が必要な唯一のユーザーである場合に適しています。 - 作る適切な名前を持つ新しいグループ、おそらく同様のコマンドを使用して
publiceditors
ディレクトリにグループ化します。あなたとディレクトリを変更する必要がある他のユーザーがこのグループのメンバーとしてリストされていることを確認してください。この方法は、複数のユーザーが編集機能を必要とする状況に適しています。public/
chgrp publiceditors public/
- あなたのユーザーアカウント
root
グループメンバー(私がお勧めしたいわけではありません)。 - あなたにアクセス権を与えるログインするか、他の人であるふりをする
root
、パスワードの使用sudo
またはsu
使用などroot
- 変化ディレクトリ権限到着すべてのユーザーに書き込み権限を付与する、同様のコマンドを使用してください
chmod o+w public
。これが提供することに注意してください。みんなボックス内のパブリックディレクトリのファイルを編集して削除できます。 *おそらくこれをしたくないでしょう!
*カーネルの必須アクセス制御など、他のアクセス制御の実施がない場合。
何をしますか読む、書くそして実装するディレクトリの文脈では、権限はどういう意味ですか?
Linux システムのディレクトリにあると仮定すると、読み取り権限ビットを使用すると、ディレクトリのリストを読み取ることができます。書き込み許可ビットを使用すると、リストされたディレクトリを更新できます。作る1つの文書*、名前を編集ファイルの解く(ファイルを削除します。実行ビットを使用すると、ディレクトリに移動してファイルにアクセスするなどの操作を実行できます。Linux ディレクトリ権限。
*効果的にファイルをディレクトリにリンクします。ほとんどの場合、ファイルを作成するときにこれを行いますが、より複雑な例もあります。たとえば、元のファイルシステムの他の場所に存在していたファイルへのハードリンクを作成するには、新しいファイルを作成しなくても、リンクの宛先ディレクトリへの書き込みアクセス権が必要です。
なぜ書く入場目次?
追加するファイルの関連するinodeへの参照を追加するには、ディレクトリに書き込むことができる必要があります。