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

bash linux root shell symbolic-link

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

$ chown -h myuser:mygroup mysymbolic/

でも、変わらない。rootでログインしています。現在のユーザー/グループはroot:rootになっています。何か問題があったのでしょうか?

  338  None  2009-11-09


ベストアンサー

ターゲットの先にスラッシュを入れていました

chown -h myuser:mygroup mysymbolic/

最後にスラッシュを削除しただけで動作します。これが正しい方法です

 chown -h myuser:mygroup mysymbolic

405  rizidoro  2009-11-09


私自身もこれを試してみましたが、うまくいきました。もし -h があれば、シンボリックリンクの所有者を変更しますが、そうでない場合は、リンクではなくファイル自体の所有者を変更します

しかし、シンボリックリンクがディレクトリにリンクされていると動作しないようです

29  Arto Uusikangas  2009-11-09


-hでもディレクトリをchownにすることはできませんでしたが、フルパスを使うとうまくいきました

# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps/
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# pwd
/var/www/html
# chown -h deploy:deploy /var/www/html/apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 deploy deploy   32 Dec 30 09:02 apps -> /u/apps/

8  Steve Tauber  2013-12-30


ターゲットはファイルかディレクトリか?

ディレクトリであれば、-H (大文字の H) を試してみてください

5  None  2009-11-09


simply.

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

は十分であり、動作するはずです!

4  Aziz Zoaib  2017-12-05


myuserのホームにあるmyuserでそのリンクを再作成し、sudoでこのリンクをターゲットの場所にmvします

例えば(myuserとして), ln -s somedir/ linkname (ユーザのディレクトリにsomedir/が存在しない場合はリンク切れになります)

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

3  wangdong  2012-04-26


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

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

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

1  cgrey  2014-09-16


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

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

1  AnomalySmith  2015-11-01


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  RaamEE  2016-08-11


走るまでは私も同じでした

chown -R user:group file.so >>

-Rはディレクトリ用なのでよくわかりませんが、うまくいきました

0  Newbie01  2020-08-11


タイトルとURLをコピーしました