同じグループであってもファイルを読み取ることができません

同じグループであってもファイルを読み取ることができません

ユーザーの 1 つのファイル (別のユーザーのホーム ディレクトリにある) への新しいシンボリック リンクを作成しました。ただし、ユーザーが同じグループに属し、ファイルのアクセス許可が 755 であるにもかかわらず、読み取ることができません。

[lmurugan@localhost ~]$ ls -lrt
total 0
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log
[lmurugan@localhost ~]$ less 3030.log
3030.log: Permission denied


[lmurugan@localhost ~]$ ls -lrt
total 0
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log

[lmurugan@localhost ~]$ id
uid=1006(lmurugan) gid=1000(dkanagaraj) groups=1000(dkanagaraj)

[lmurugan@localhost ~]$ id dkanagaraj
uid=1000(dkanagaraj) gid=1000(dkanagaraj) groups=1000(dkanagaraj),10(wheel)

[dkanagaraj@localhost .forever]$ ls -lrt /home/dkanagaraj/.forever/f3-w.log
-rwxr-xr-x. 1 dkanagaraj dkanagaraj 425361 Feb 16 16:46 /home/dkanagaraj/.forever/f3-w.log

[dkanagaraj@localhost .forever]$ ls -lrt /home/dkanagaraj/.forever/z_lZ.log
-rwxr-xr-x. 1 dkanagaraj dkanagaraj 570027 Feb 16 16:46 /home/dkanagaraj/.forever/z_lZ.log

答え1

コマンドの出力を混同しています。

まず、「3030.log」はリンクです

[lmurugan@localhost ~]$ ls -lrt 
total 0 
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log

最初の位置の「l」は「-> /home/dkanagaraj/.forever/z_lZ.log」と同様にこれを示しています。

リンク先のファイルの権限と、親ディレクトリの権限、dkanagaraj、.foreverを表示します。

ls -l /home/dkanagaraj/.forever/z_lZ.log

見るhttp://linuxcommand.org/lts0070.phpファイルとディレクトリの両方の権限についての説明。

答え2

bodhi.zazen さんの回答は正しいですが、私は少し違った答えをしたいと思います。権限は inode に付与され、シンボリックリンクとそのターゲットはそれぞれ独自の inode を持ちます。フーそして問題、 下に:

$ ls -l foo issues
lrwxrwxrwx 1 jklowden jklowden    6 Feb 18 16:46 foo -> issues
-rw-rw-r-- 1 jklowden jklowden 2380 Jan 29 14:02 issues

$ stat foo
  File: ‘foo’ -> ‘issues’
  Size: 6               Blocks: 0          IO Block: 4096   symbolic link
Device: 811h/2065d      Inode: 11406493    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/jklowden)   Gid: ( 1000/jklowden)
Access: 2016-02-18 16:46:52.224805576 -0500
Modify: 2016-02-18 16:46:40.905398163 -0500
Change: 2016-02-18 16:46:40.905398163 -0500
 Birth: -

$ stat issues 
  File: ‘issues’
  Size: 2380            Blocks: 8          IO Block: 4096   regular file
Device: 811h/2065d      Inode: 11405468    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/jklowden)   Gid: ( 1000/jklowden)
Access: 2016-01-29 14:05:26.122808636 -0500
Modify: 2016-01-29 14:02:52.106866058 -0500
Change: 2016-01-29 14:02:52.106866058 -0500
 Birth: -

通常、ファイルの権限は、そのファイルで何ができるかを制御しますが、ほとんどのシステムでは、シンボリックリンクファイルの権限は何も制御しません。(chmod 0 foo、 そしてなおln -sf フーバー動作します。) ここでは、inode 11405468 の権限が重要です。

[以下は訂正です。明確なコメントをくださった dave_thompson_085 に感謝します。]

あなたの例では、実際のファイル (シンボリックリンクではない) は、もちろん ですf3-w.log。これはあなたのグループ dkanagaraj によって所有されており、グループの読み取り権限を持っているため、使用したシンボリックリンクに関係なく、その内容を読み取ることができるはずです。

ファイルを読む権限はまたそこに至る経路によって制御されます。 ファイルにアクセスする場合、パス名にリストされているすべてのディレクトリに対する実行権限が必要です。Linux プログラミング インターフェース、セクション15.4.3、ページ297)。シンボリックリンクはターゲットへの絶対パス名を使用するため、ドカナガラジグループのニーズ実行する各パス名コンポーネントに対する権限: /、、、および。パス権限制約は、シンボリックリンク自体を含むすべてのファイルに適用されますが、その点はカバーされていると思います homedkanagaraj.forever

関連情報