ディレクトリにファイルを作成しようとしていますが、次の結果が表示されます。
`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への参照を追加するには、ディレクトリに書き込むことができる必要があります。
答え2
~について人々ディレクトリ権限は、rootユーザーまたはrootグループのメンバだけを書き込むことができます。
設定(drwxrwxr-x)は、次のことを意味します。
- root ユーザーには読み取り、書き込み、実行権限があります。
- ルートグループには読み取り、書き込み、実行権限があります。
- 他の人には読み取りおよび実行権限があります。
ユーザーがルートグループにいることを確認するか、次のコマンドを使用して「その他」に書き込み権限を付与します。
chmod o+w public
答え3
私も同様の問題が発生しましたが、ファイルの作成権限がない一般ユーザーであることがわかりました。だからユーザーをrootに切り替えました
command:
su <root user>
パスワードの入力を求められたら、rootパスワードを入力してください(kali Linuxパスワードが高すぎる場合)。
これは私の問題を解決しました。
答え4
あなたのユーザーに「書き込み」権限がありません。権限を変更するには、次のコマンドを使用します。
chmod o+w public**
そうでない場合は、次のコマンドを使用してすべての人(所有者/グループ/その他)の読み取り/書き込み実行権限を設定できます。 (このオプションはお勧めできません。もっと知りたい場合は、次の手順に従ってください。)
chmod 777 public**