私は(他のユーザーのホームディレクトリにある)ファイルを指すユーザーのための新しいシンボリックリンクを作成しました。ただし、同じグループのユーザーであり、ファイル権限が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 foo バー効率的。 ) ここでは、inode 11405468に対する権限が最も重要です。
[次の内容が修正されました。明確なコメントをいただいたdave_thompson_085に感謝します。 ]
あなたの例では、実際のファイル(シンボリックリンクではない)はもちろんですf3-w.log
。このファイルはグループ dkanagaraj の一部であり、グループの読み取り権限があるため、使用するシンボリックリンクに関係なくその内容を読み取ることができるようになります。
ファイルを読み取る権限は次のとおりです。返品パスに従って制御されます。 ファイルにアクセスするには、パス名にリストされているすべてのディレクトリに対する実行権限が必要です。(Linuxプログラミングインターフェース、セクション15.4.3、297ページ)。シンボリックリンクはターゲットの絶対パス名を使用するためデカナガラージグループのニーズ実装する各パス名コンポーネントの権限:/
、、および。パス権限制約はシンボリックリンク自体を含むすべてのファイルに適用されますが、あなたはその問題を解決したと思います。 home
dkanagaraj
.forever