Ubuntu:同じ資格情報で作成されたディレクトリにファイルをコピーできません。

Ubuntu:同じ資格情報で作成されたディレクトリにファイルをコピーできません。

私はWindows 7をUbuntu 12.04.2 LTSにリモート切り替えしています。

私はUbuntu(および通常は* nix)を初めて使用し、新しく作成されたディレクトリに権限を割り当てる方法を理解する必要があります。

Putty SSHセッションを通じて:

$bash
myaccount@mybox:/$ cd /etc/puppet
myaccount@mybox:/etc/puppet$ sudo mkdir device
myaccount@mybox:/etc/puppet/device$ 
myaccount@mybox:/etc/puppet/device$ ls -ld
drwxr-xr-x 2 root root 4096 Jul 2 17:57

その後、WinSCPセッション(SCPモード、myaccount@myboxとしてもログイン)を介してファイルを/ etc / puppet / deviceにコピーしてみました。

ただし、これはポップアップウィンドウにエラーが発生して失敗します。

Error
Copying file 'myfile' failed.
scp: /etc/puppet/device/myfile: Permission denied

自分のアカウントにディレクトリを作成するのに十分な権限が割り当てられている場合は、そのディレクトリにファイルをコピーする権限も必要です。

それとも、ディレクトリの作成とファイルの移動は別の役割に属していますか?

注:投稿を選択したい場合は、コメントに理由を説明してください。匿名でクリックするだけでは、これらのフォーラムがどのように機能するかを理解するのに役立ちません。私はルール、完全な詳細、フォローアップのコメントなどに従っているようです。

答え1

私は何かを見落とさなかったことを願っています。

  • sudoディレクトリを作成したことがありますか?
  • lsディレクトリがルート所有であることを明示的に指定しました。
  • ユーザー "myaccount" としてフォルダにファイルをコピーしようとすると拒否されます。

これは通常の動作です。次のオプションがあります。

  • 「その他」書き込み許可(chmod o + w /etc/puppet/device =>非常に悪い考え)
  • たとえば、「adm-puppet」というグループを作成し、そのディレクトリにファイルを作成できるすべてのユーザーと puppet ユーザーを追加します。次に、グループの所有権をそのグループに変更します。
  • このディレクトリにファイルを書き込むことができるユーザーを既存のPuppetグループに追加します。
  • 拡張機能の使用前方十字靭帯S

答え2

sudoを使用してファイルまたはディレクトリを作成すると、そのコマンドがrootとして実行されるため、当然、ファイルはrootが所有します。

通常のユーザーとしてファイル/ディレクトリを作成できない場合(ヒント:ディレクトリは特別なファイルにすぎません)、rootは(chown構文)を使用してchown user:group file通常のユーザーに「提供」できます。

複数のユーザー(すべてではない)がファイルへの書き込み権限を必要とする場合は、グループを使用する必要があります。グループが不要であると考えると、通常は既存のユーザー名を持つグループ(この場合はルートとなし)を使用できます。間違った選択です。したがって、ユーザーは通常別々のグループを持つことになります。

複数のユーザーを含むグループを使用している場合は、グループにディレクトリへの書き込みアクセス権を付与する権限も変更する必要があります。ディレクトリへの書き込みアクセスは、その中にファイルを作成して削除できることを意味します(実行はナビゲーション、読み取りは内容のリスト)。これを行うために使用しますchmod g+w dirname

関連情報