2009-11-09 13:02:39 +0000 2009-11-09 13:02:39 +0000
319
319

chownがシンボリックリンクを変更しない

シンボリックリンクのユーザー/グループをコマンドで変更しようとしています:

$ chown -h myuser:mygroup mysymbolic/

でも変更されません。私はrootでログインしています。現在のユーザー/グループはroot:rootに設定されています。何か問題があったのでしょうか?

回答 (8)

391
391
391
2009-11-09 13:16:42 +0000

私はターゲットの最後にスラッシュを入れていた:

chown -h myuser:mygroup mysymbolic/

はちょうど最後にスラッシュを削除して動作します。ここに正しい方法があります:

chown -h myuser:mygroup mysymbolic
29
29
29
2009-11-09 13:08:43 +0000

私はこれを自分で試してみました。hをつけるとシンボリックリンクの所有者を変更しますが、そうでない場合はファイル自体の所有者を変更します。

7
7
7
2013-12-30 16:43:51 +0000

でもディレクトリをchownできませんでしたが、フルパスを使うとうまくいきました。

4
4
4
2017-12-05 11:02:14 +0000

単純に、

chown -h myuser:mygroup <symlink> [without trailing slash]

で十分で、うまくいくはずです! &nbsp.

3
3
3
2012-04-26 09:15:50 +0000

そのリンクを myuser で myuser のホームに再作成し、そのリンクを sudo で目的の場所に移動します。(myuserとして), ln -s somedir/ linkname(ユーザのディレクトリにsomedir/が存在しない場合はリンク切れになる)

そして、sudo mv linkname targetlocation(targetlocation/somedir/が存在すれば有効なリンクになる)

1
1
1
2014-09-16 17:46:29 +0000

私も同じような問題を抱えていました。私の場合、どのようにchmodを呼んでも、rootであってもシンボリックリンクをchmodすることができませんでした。さらに混乱させるために、nautilusはオーナー/グループを何も表示していませんでした。オーナーは何も表示されていませんでした。そこで私はchmodが機能しておらず、nautilusがクラッシュしてしまったので、rootで実行しているnautilusを使ってシンボリックリンクを変更しようとしました!

しかし、問題が解決したと思います。シンボリックリンクが指し示していたディレクトリは、シンボリックリンクとは異なるパーミッションを持っていました。そこで、ターゲットディレクトリを(-hを使って)自分のユーザ/グループ名にchmodしてみました。そして、シンボリックリンクを同じものにchmodしたところ、うまくいきました。そして、nautilusでシンボリックリンクの詳細を表示すると(root権限で)クラッシュしなくなりました。

同じような問題を抱えている他の人のために、ターゲットディレクトリ/ファイルの権限をチェックして、シンボリックリンクを設定している権限と互換性があることを確認してください。

1
1
1
2016-08-11 05:24:48 +0000

Solaris の場合 (S11.3 で検証済み)、ディレクトリへのシンボリックリンクには

root@ac11x017:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx 1 root root 16 Jun 15 09:08 dumpdir -> /data/dumpdir/
root@ac11x017:/var/tmp$ chown -RP oracle:oinstall dumpdir
lrwxrwxrwx 1 oracle oinstall 16 Jun 15 09:09 dumpdir -> /data/dumpdir/
``` を実行する必要があります。
1
1
1
2015-11-01 19:12:57 +0000

シンボリックリンクの owner を変更することは、ターゲットを割り当てたい新しいユーザーが accessible である場合にのみ機能することに注意してください。

例えば、ターゲットが割り当てたいユーザーが十分な権限を持っていないフォルダ内にある場合、ln -s command の動作は全く何もしないようになっています。