web-dev-qa-db-ja.com

フォルダにファイルを作成:権限が拒否されました

Ubuntu 12.04のディレクトリにファイルをコピーするときに問題が発生します。ホームディレクトリにディレクトリを作成して、コピー先のパスが次のようになるようにします。

/home/sixven/camp_sms/inputs

しかし、iniがターミナルで次のコマンドを実行して、次のようにサンプルファイルを作成します。

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

そのディレクトリに直接ファイルをコピーできません。 chownchmodコマンドを使用してファイルをコピーする権限を割り当てるにはどうすればよいですか?

使用するユーザーとグループがわかりません。

39
franvergara66

まず、Ubuntuのディレクトリのデフォルトの権限は644であることを知っておく必要があります。つまり、所有者ではないディレクトリにファイルを作成することはできません。

user:francisco-vergaraが所有するディレクトリ/home/sixven/camp_sms/inputsにファイルを作成するためにuser:sixvenとして試みています。

だからこれを解決する方法:

  1. ディレクトリの権限を変更して、他のユーザーがファイルを作成できるようにすることができます。

    Sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    このコマンドは、ディレクトリの権限を再帰的に変更し、他のすべてのユーザーが内部のファイルとディレクトリを作成/変更および削除できるようにします。

  2. このディレクトリの所有者の船を変更し、user:francisco-vergaraを所有者にすることができます

    Sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    しかし、このようにuser:sixvenはこのフォルダに再び書き込むことができないため、循環無限ループに移動する可能性があります。

したがって、オプション1を使用することをお勧めします。

または、このディレクトリに両方のユーザーがアクセスする場合は、次のトリックを実行できます。

ディレクトリの所有権をuser:francisco-vergaraに変更し、グループの所有者はgroup:sixvenのままにします。

Sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

同様に、両方のユーザーがディレクトリを引き続き使用できます。

しかし、前に言ったように、オプション1を使用するのが最も簡単で効率的です。

58
Maythux

ファイルの所有権を変更するには、これをrootとして実行します。

chown -R user:user /home/sixven

Chmodを使用する場合:

ユーザーがファイルのグループの一部であることを知っている場合

chmod -R g+rw /home/sixven

さもないと:

chmod -R o+rw /home/sixven

しかし、この方法はあまりにも安全ではありません。

12
Ghassan

デフォルトのUMASK 022(Ubuntuの場合)であるため、/ home/usernameの権限は755になります。ユーザーfrancisco-vergaraとしてログインし、ユーザーsixyen Homeでファイルを作成しようとしました:/home/sixven。他のユーザーへの書き込み権限はありませんsixvenのユーザー/グループのみが書き込みアクセス権を持っています。

そのディレクトリへの書き込みアクセスが必要な場合は、usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixvenを使用してグループsixvenの一部である必要があります(使用しないでください)悪い習慣)。

1
Rahul Patil