新しいグループircuser
と新しいユーザーを追加しました。ircuser
私はその中にvisudo
次の行を入れました。
myuser localhost=(ircuser) NOPASSWD: /usr/bin/irssi
ircuser
設定ファイル、キャッシュなどを保存する必要があるディレクトリは次のとおりです。
drwxrwx--- 2 ircuser ircuser 4096 Mar 2 10:28 ircuser
コマンドを実行するとき:
sudo -Hu ircuser /usr/bin/irssi
または
sudo -u ircuser /usr/bin/irssi
ircuser
プログラムはディレクトリに設定ファイルを保存できません。
** ERROR **: Couldn't create /home/myuser/_web/ircuser/.irssi directory
aborting...
Aborted
ただし、動作方法は次のとおりですircuser
。
ps auxw | grep irssi
ircuser 11962 0.0 0.0 23684 2504 pts/6 S+ 11:18 0:00 /usr/bin/irssi
それではirssi
実行されますが、ircuser
同じユーザーが所有するディレクトリには書き込めませんか?そのままにするには何を変更する必要がありますか?
ベストアンサー1
問題は、ircuserホームディレクトリに接続されている親ディレクトリの1つにeXecute権限がないことです。すべてのユーザーがトラバース(ディレクトリを表示する必要はありません)できるようにするには、ユーザーにグループまたは他のグループを介した実行権限が必要です。次の権限がある場合:
drwxrwx--- 2 myuser myuser 4096 Mar 2 10:28 /home/myuser
そして、ircuserはmyuserグループに属していないため、そのディレクトリに対する権限がある場合でも、ircuserはその下のすべてのファイルにアクセスできません。これを試してみると:
drwxrwx--x 2 myuser myuser 4096 Mar 2 10:28 /home/myuser
その後、ircuserはmyuserのホームディレクトリを参照できませんが、その下にある一部のファイルにアクセスできます。/home/myuser/_web/ircuser
更新:上記の説明からいくつかの詳細を省略しました。ファイルシステムを参照すると、権限が評価されます。ルートディレクトリからアクセスできないフォルダは、現在のディレクトリからアクセスできます。作業ディレクトリを別の場所に変更すると、現在のディレクトリへのハンドルが失われ、そこにあるファイルへのアクセスが失われます。 sudo su - ircuserなどのコマンドを使用すると、suはroot権限を放棄する前にircuserのホームディレクトリに切り替えます。この時点で、ircuserのホームディレクトリが現在の作業ディレクトリであるため、これに有効なハンドルがあります。 irssi が起動すると、ircuser のホームディレクトリから ircuser として実行されます。現在のディレクトリに対するeXecute権限があるため、.irssiにアクセスしようとすると機能します。 eXecute 権限のないディレクトリを通過しなければ失敗します。たとえば、ファイルを開くには、/home/myuser/_web/ircuser/.irssi
現在のディレクトリから始めて相対パスを使用します。これは、eXecute権限のない場所に../../_web/ircuser/.irssi
移動する必要があるためです。/home/myuser