user1とsu - user1 -c "command"を実行したときに結果が異なるのはなぜですか?

user1とsu - user1 -c

次のように実行するときユーザー1同じディレクトリ(/ホーム/ユーザー1/WWW)

[user1@server1 WWW (master)]# touch c

ディレクトリにファイルcを作成します。

[root@server1 WWW (master) ACCEPTATIE SERVER]# su - user1 -c "touch c"

エラーが発生しました

タッチ:「c」をタッチできません:権限が拒否されました。

なぜですか?

ベストアンサー1

これにより、su - usernameそのユーザーでフルログインが実行されます。つまり、そのユーザーのホームディレクトリに移動します。したがって、この方法で実行すると、touch cユーザーのホームディレクトリからコマンドを実行しようとします。

-代わりにコマンドラインから削除してください。

su user1 -c "touch c"

touch cこれは次のように実行されますuser1現在の目次。


推測:

su -他のユーザーが所有する名前のファイルがホームディレクトリにすでに存在するため、元のコマンドは失敗しました。cuser1

おすすめ記事