web-dev-qa-db-ja.com

許可なしにディレクトリにcd

cdという名前のディレクトリにopenfireingすると、次のエラーが返されます。

bash: cd: openfire: Permission denied

これを回避する方法はありますか?

88
user812954

スーパーユーザーモードを開始し、アクセスする権限がないディレクトリに移動します。 Sudoには管理者パスワードが必要です。

Sudo su
cd directory
73
user812954

@ user812954の答えは非常に役に立ちましたが、2つのステップでこれを行う必要がありました。

Sudo su
cd directory

次に、「スーパーユーザー」モードを終了するには、exitと入力します。

119
Jonathan

自分が所有するディレクトリの場合は、自分自身にアクセスを許可します。

chmod u+rx,go-w openfire

これにより、ディレクトリとその中のファイルを使用する許可(x)と、その中にあるファイルをリストする許可(r)が付与されます。また、グループに対するアクセス許可を拒否します。これは通常正しいです(ただし、グループにディレクトリ内のファイルの作成を許可することもできますが、ディレクトリのスティッキービットを使用することを検討してください)。

それが他の誰かのディレクトリである場合、アクセスできるようにアクセス権を変更するには所有者の助けが必要になるでしょう(またはrootからアクセス権を変更するには助けが必要です)。

41

chmod +x openfireは私のために働いた。 openfireフォルダーに実行許可を追加します。

20
wcyn

いくつかのオプションがあります:

  • そのディレクトリに対するexecute権限を持つ別のユーザーアカウントを使用します。
  • ディレクトリのアクセス許可を変更して、ユーザーアカウントexecuteのアクセス許可を許可します。
    • chmod(1)を使用して権限を変更するか、
    • setfacl(1)コマンドを使用して、ユーザーアカウントのアクセス制御リストエントリを追加します。 (これには、aclオプションを使用してファイルシステムをマウントする必要があります。マウントパラメーターの詳細については、mount(8)およびfstab(5)を参照してください。)

問題について詳しく知ることなく正しいアプローチを提案することは不可能です。ディレクトリのアクセス許可が設定されているのはなぜですか?そのディレクトリにアクセスする必要があるのはなぜですか?

6
sarnold

それを変更するためのSudo権限または自分のユーザーグループ/アカウントでその権限を持たない限り、取得することはできません。

ディレクトリのパーミッションの変更に関する詳細については、ターミナルのchmod manを確認してください。

1
John Riselvato