権限は拒否されましたが、グループの権限はredhatで適切に見えます


11

私はユーザーftpadminを持っています:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(git)

注意すべき重要なグループは「git」です

それから私は私のgitリポジトリを持っています:

ls -al
drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

したがって、ftpadminはgitのメンバーであり、gitはグループ内のユーザーにすべての権限を与えています。ftpadminとしてログインしたときにこれが表示されるのはなぜですか。

-bash-3.2$ ls -al /home/git/
ls: /home/git/fsg: Permission denied
...

許可が必要なようです...

更新 / home / gitの権限は

drwxrw-rw-   6 git      git          4096 Apr 26 09:20 git

まだよさそうだ...

/ home / gitの新しい権限を更新します

drwxrwxrw-   6 git      git          4096 Apr 26 09:20 git

/ home / git / fsgの権限は次のとおりです。

drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

しかし、私はまだ得る

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied

1
の権限は/home/git何ですか?
Zoredache

drwxrw-rw- 6 git git 4096 Apr 26 09:20 git
Tony

drwxrwxr-xグループメンバー以外は読み取り専用にしたいが、グループメンバーが変更できるようにする必要があります。する必要がありますdrwxrwx---あなたが唯一のグループメンバーだけがそこになりたい場合。
Avery Payne、

4
グループ検索を可能にするには、ディレクトリにグループ「x」ビットを設定する必要があります。「rw-」権限では、名前を指定してファイルを開く(r)か、ファイルを作成する(w)ことができますが、ファイルをリストまたは検索することはできません(x)。
mpez0

うまくいきませんでした。私の最新の更新を参照してください
トニー

回答:


9

具体的には、mpez0に+1を与えたいと答えました。「グループ検索を許可するには、ディレクトリにグループ「x」ビットを設定する必要があります。「rw-」権限により、名前(r)が指定されたファイルを開くか、ファイルを作成できます(w)、ただしファイル(x)の一覧表示や検索は行いません。」

とても忘れやすいので、彼の解決策は真ん中に埋もれています。これは、ユーザーとグループのファイル/ディレクトリの権限に関して、新しいLinuxユーザーにとっては間違いなく問題です。

エイブリーが言ったすべてがお金で正しかった、もう一度私があなたに+1を与えることもできればいいのに。

もう1つのより詳細な例は、新しいLinuxユーザーに役立つ可能性があります(クレジットを探すのではなく、明確にするために別の例を示しています)。自分のPCで、特定の開発プロジェクト用に追加のユーザーを作成したいと思っていました。私のマシンとWeb上の同じ場所にあるサーバーとの間のSSH、SFTPの問題をテストしていた。すべてを設定した後、同じ「Permission denied」エラーが発生しました...はい、mpez0が指摘した他のアクセス権に基づく検索の問題を除いて、それは正しいように見えました。

注:新しいLinuxユーザーの場合、権限はユーザー、グループ、その他、またはそれぞれrwx、rwx、rwxであり、次のようになります。

drwxr-xr--   

user has read + write + execute, rwx 
group has only read and execute, r-x
other has only read acces r--

「その他」の場合、ディレクトリを検索/検索するには不十分であるため、エラーメッセージが表示されます。

これが私がやったことです(ステップ6でエラーメッセージが発生しました)

1)ユーザーhoiuserを作成しました(ユーザー情報を表示するには、finger cmd、「finger hoiuser」を使用するか、「cat / etc / passwd」ファイルを読み取ることができます)

2)グループhoidevsを作成しました(グループにユーザー「hoiuser」を追加しました)

root@zareason-breeze:/etc# cat group | grep hoidevs 
hoidevs:x:1010:userz,hoiuser 

新しい「グループ」権限をアカウントIDに関連付けるには、ログオフしてから再度ログインする必要があることに注意してください。

3)ディレクトリ/ home / userz / data / Sites / hoiのchgrp hoidevsとファイルの場所を作成

hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

4)ターミナルウィンドウを開き、ユーザーuserzがアクティブでした

5)su-hoiuser(ユーザーhoiuserに切り替え)

6)/ home / userz / data / Sitesをcdしようとした

hoiuser@zareason-breeze:/home/userz/data$ cd Sites
-su: cd: Sites: Permission denied    (voila, the problem)


userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr--  11 userz userz  4096 2012-02-24 16:20 ./
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/

7)サイトの権限を変更しました

userz@zareason-breeze:~/data/Sites$ chmod 755 .
userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr-x  11 userz userz  4096 2012-02-24 16:20 ./

そして出来上がりの問題が修正されました...ここに証明があります

hoiuser@zareason-breeze:/home/userz/data$ id
uid=1009(hoiuser) gid=1009(hoiuser) groups=1009(hoiuser),1010(hoidevs)

hoiuser@zareason-breeze:/home/userz/data$ cd Sites        (<- yea no error message)
hoiuser@zareason-breeze:/home/userz/data/Sites$ cd hoi
hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x 11 userz userz 4096 2012-02-24 16:20 ../
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

私たちの経験豊富なLinux / Unixユーザーでさえ、時々リマインダーが必要です。

指摘したように、ファイルがあるディレクトリに正しい権限を与えるだけでは十分ではありません。また、そのディレクトリに至るまでのすべてのディレクトリに正しい権限、特に「その他」の権限があることを確認する必要もあります。 「検索」して、ディレクトリとファイルを探します。xが実行を意味する場合、ほとんど直感的ではありません。

私のサブディレクトリ構造は/ home / userz / data / Sites / hoi / html /でした

自宅から

userz@zareason-breeze:~$ pwd
/home

これは、chmodの前の私のディレクトリ構造でした。

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr--  11 userz userz     4096 2012-02-24 16:20 Sites/    (<-- Do you see it, other is r--)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

これは、chmodの後のディレクトリ構造でした

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr-x  11 userz userz     4096 2012-02-24 16:20 Sites/      (<-- Fixed by the chmod > 755 ., now r-x)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

唯一の変更点は、ディレクトリ「Sites」に対する「other」のrx権限であったことに注意してください。これが他の人の役に立つことを願って、それは私にとって良い復習でした。


3
FreeBSDとOpenBSDでも同様の問題がありました。私にとって重要なのはこの部分 でした。新しい「グループ」権限をアカウントIDに関連付けるには、ログオフして再度ログインする必要があることを忘れないでください。 案の定、FreeBSDのドキュメントには次のように記載されています。
iboisver 2013

6

ファイルにアクセスするには、ファイルを含むディレクトリに対する権限が必要です。/ home / gitの権限は何ですか?(はい、Zoredache、私はあなたにそれを指摘するための+1を与えました)


フォローアップ:グループがディレクトリに入るには、グループの実行(x)ビットセットが必要です。Windowsの「トラバースディレクトリ」設定の大まかなアナログと考えてください。これがないと、グループはアクセスを拒否されます。あなたが絶望的であるならば、あなたはすることができます:

chmod g+x /home/git
chmod g+x /home/git/fsg

以下を試して、それぞれからメッセージを投稿してください。

cd /home
cd /home/git
cd /home/git/fsg

それらのそれぞれにからアクセスできる必要がありますftpadminそれらのいずれかがそうでない場合、それはあなたが入るのを止めます/home/git/fsg


drwxrw-rw- 6 git git 4096 Apr 26 09:20 git
Tony

理にかなっていますが、/ home / git / fsgで引き続き拒否されます。これはdrwxrwxr-x 7 git git 4096 Apr 20 14:17 fsg
Tony

そして、その最後の「許可が拒否されました」で、グループ実行ビットが設定されていますか?親にも許可がない場合は、子供に許可があってもかまいません。
Avery Payne

最新のアップデートをチェックしてください。私はそこに権限を配置し、グループ実行ビットが設定されます
トニー

私はあなたのために結果を持って見る/home/gitと、/home/git/fsgしかし、の結果は何でしたか/home
エイブリーペイン

4

ルートアクセスを介してユーザーXのグループを変更した後、ログアウトして、そのユーザーXで再度ログインする必要があります。そうしないと、新しいグループは考慮されません。


3

もう一度ログインするか、実行su - ftpadminして現在のシェル内でログインしてください。ログイン時にグループが設定されるため、グループに「まあまあ」を追加しただけで、古いグループ設定がまだ使用されている可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.