ディレクトリにファイルを作成しようとしていますが、次のようになります。
`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
writeおよびexecuteアクセス権がない場合、publicディレクトリの内容を編集することはできません。
新しいファイルを作成しようとしていることを示しています。 test
ファイルがpublic
に存在しない場合、touch
は新しいファイルを作成しようとします。これは、親ディレクトリに対するwriteおよびexecute権限がないと実行できません。ディレクトリをトラバースするには、実行が必要です。新しいファイルのiノードエントリを追加するには、書き込みが必要です。どうやら、これらの権限のいずれかまたは両方を持っていません。
test
ファイルがpublic
に既に存在する場合、touch
はデフォルトでファイルの変更時刻を更新します。変更日時はファイルのiノードに格納されるため、これにはwritefileへのアクセスのみが必要です。ファイルがすでに存在する場合は、ls -l public/test
などのコマンドを使用してファイルの権限を調べ、書き込みアクセス権があるかどうかを確認する必要があります。
ディレクトリrwxrwxr-x
の権限ビットマスクは、次のことを意味します。
root
ユーザー、つまりディレクトリの所有者は、最初のrwx
ブロックで示されているように、directoryへの書き込み権限を持っています。このユーザーは、ディレクトリ(r
ビット)を読み取り、その内容をアクセスするためにトラバースすることもできます(x
ビット)。root
グループのメンバー、つまりディレクトリ自体のグループで、それ自体がroot
ユーザーではない場合も、2番目に示されているように、ディレクトリーの読み取り、書き込み、およびトラバースを行うための同様の権限がありますrwx
ブロック他のすべてのユーザーは、最後のr-x
ブロックで示されているように、読み取りと実行の権限のみを持っています。前述のように、ディレクトリの場合、実行権限により、そのディレクトリを走査してその内容にアクセスできます。これについては、 この質問 を参照してください。
次のいずれかを行うには、システム管理者(あなたかもしれません!)に相談する必要があります。
public/
のようなコマンドを使用して、chown user public/
ディレクトリの所有者にします。これは、編集権限が必要な唯一のユーザーである場合に適しています。publiceditors
を作成し、public/
のようなコマンドを使用して、これをchgrp publiceditors public/
ディレクトリのグループとして設定します。あなたと、ディレクトリを変更する機能を必要とする他のユーザーがグループのメンバーとしてリストされていることを確認します。このアプローチは、複数のユーザーが編集機能を必要とする場合に機能します。root
グループのメンバーにします(お勧めしません)。root
またはSudo
とsu
パスワードを使用するなど、ログインまたはroot
_にアクセスできるようにします。chmod o+w public
のようなコマンドを使用して、ディレクトリの権限をすべてのユーザーに書き込み権限を付与に変更します。これにより、ボックス上のeveryoneがパブリックディレクトリ内のファイルを編集および削除できるようになります。*これは望ましくないかもしれません。*カーネルの必須アクセス制御など、他のアクセス制御の実施がない場合。
Linuxボックスを使用している場合、ディレクトリでは、読み取り許可ビットを使用してディレクトリのリストを読み取ることができます。書き込み許可ビットを使用すると、リストされているディレクトリを更新できます。これは作成ファイル*、-名前の編集ファイルに必要ですリンク解除 (削除)ファイル。実行ビットを使用すると、ディレクトリをトラバースしたり、そのファイルにアクセスしたりできます。詳細については、 Linuxディレクトリのアクセス許可 を参照してください。
*実際には、ファイルをディレクトリにリンクしています。ほとんどの場合、これはファイル作成の時点で行いますが、より複雑な例もあります。たとえば、元々ファイルシステムの別の場所に存在していたファイルへのハードリンクを作成するには、新しいファイルを作成していないにもかかわらず、リンクのターゲットディレクトリへの書き込みアクセスが必要になります。
追加するファイルに関連するiノードへの参照を追加するには、ディレクトリに書き込むことができる必要があります。
同様の問題に直面しましたが、私は通常のユーザーであり、ファイルを作成する権限がありません。したがって、ユーザーをrootに切り替えました
command:
su <root user>
Rootパスワードを入力するように求められます(kali Linuxパスワードがtoorの場合)
これで私の問題は解決しました
publicディレクトリ権限に関しては、ユーザーrootまたはグループrootのメンバーのみが書き込みできます。
構成されているもの(drwxrwxr-x)の意味:
ユーザーがルートグループに属していることを確認するか、次のコマンドを使用して「その他」への書き込みアクセス権を付与します。
chmod o+w public