web-dev-qa-db-ja.com

DSM(Synology NAS)にログインできない

Synology DSM Webアクセスからロックアウトされたようです。ログインすると、「デフォルトで許可されている」権限がすべて削除され、そのうちの1つ(デスクトップ?)が私の管理アカウントに影響を及ぼしました。ログインページにアクセスすると、ユーザー名、パスワード、2回目の確認が正常に入力され、「認証されていません」エラーが表示されます(注:IPは自動ブロックされません)。私はすべてのパスワードを持っています。ssh経由でデバイスにアクセスでき、SMB経由でデータにアクセスできます。

調査できるのは ソフトリセット を実行することだけですが、これによって特権も修正されるかどうかは不明であり、現在の構成を破棄しない方がよいでしょう。

sshを使用して、DSMにログインするためのカスタム管理ユーザーを追加する権限を修正する方法はありますか?私は/etcでいくつかのファイルを調査してきましたが、あまり成功していません。

3
user1156544

デスクトップに関するTonnyの確認のおかげで、問題を解決することができました。これがあなたに起こった場合は少しイライラするので、共有します。

DSMにパスワードを正常に挿入した後、エラーは次のようになります: You are not authorized to use this service. "このサービスを使用する権限がありません。"

DSM Webアクセスから誤って自分をロックした場合の問題を修正する手順:

  1. sshアクセス権があり、管理者ユーザーを使用する必要があります。そうでない場合は、おそらく ソフトリセットを行うため が必要です。
  2. (私はLinuxを使用しています)実行:ssh your_username@your_synology_ip
  3. cd /etc
  4. grep your_username /etc/passwd(例:grep administrator /etc/passwd)答えはadministrator:x:1021:100::/var/services/homes/administrator:/bin/shのようになります。例では、IDに興味があります:1021
  5. 念のため、データベースのバックアップを作成してください:cp synoappprivilege.db synoappprivilege.db.org
  6. Sudo sqlite3 synoappprivilege.dbパスワードを要求されます。 your_usernameのパスワードを挿入します(sshに使用したのと同じパスワード)。プロンプトが表示されます:

    SQLite version 3.10.2 2016-01-20 15:27:19
    Enter ".help" for usage hints.
    sqlite>
    
  7. テーブルをチェックします(厳密には必要ありません)。

    sqlite> .tables
    AppPrivRule
    
  8. クエリテーブル(厳密には必要ありません):

     sqlite> select * from AppPrivRule;
    

    これにより、次のようなテーブルの内容がダンプされます。

     2|0|SYNO.SDS.WebDAVServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
     2|0|SYNO.SDS.MailServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
     2|0|SYNO.SDS.BackupService.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
     2|0|SYNO.SDS.MailPlusServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
    ...
    
  9. 意図せずに削除した権限はSYNO.Desktopであり、おそらく前のコマンドには表示されません。だから、それを挿入する必要があります(note:grepで以前に取得したユーザーIDを使用します。私の場合は1021):

    sqlite> insert into AppPrivRule VALUES(0,1021,'SYNO.Desktop','0.0.0.0','0000:0000:0000:0000:0000:FFFF:0000:0000','','');
    
  10. すべてが正常であることの確認...

    sqlite> select * from AppPrivRule;
    
    2|0|SYNO.SDS.WebDAVServer.Instance|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
    ...
    0|1021|SYNO.Desktop|0.0.0.0|0000:0000:0000:0000:0000:FFFF:0000:0000||
    

やった!ログインできます。

問題を修正した後、同じ解決策 here を見つけましたが、最初のインスタンスの検索エンジンから取得することは不可能でした。また、そのリンクのinsertには小さな間違いがあることに注意してください。

7
user1156544

興味深い質問。私は自分のSynoを少し掘り下げてこれを思いつきました:

Ssh経由で/ etc/groupを調べます。次のような行があるはずです。

administrators:x:101:john,admin,plex

(「プレックス」は、Plexパッケージをインストールした場合にのみ存在します。)

その行に管理者アカウントを追加します。私が知る限り、それがDSM Web管理に入るのに必要な唯一のものです。通常のWebサーバーアクセス(個人用のホームページ)の場合は、同じファイルの "http"行にユーザーを追加する必要もあります。

次に、ファイル/etc/synoappprivilege.dbをコンピューターにプルします(carefull、これはバイナリです。テキストモードでコピーしないでください)。
これは実際の権限を含むSQLiteデータベースです。
このファイルをHEXエディターにロードして、デスクトップセクションを探します。
これは次のようになります。

YNO.Desktop0.0.0.00000:0000:0000:0000:0000:FFFF:0000:000MW

YNOとMWは異なる値を持つ可能性があります。重要な部分は数字です。これらは上記と同じである必要があります。
HEXエディターを使用してこれを変更し、変更したファイルをSynoに戻します(元のバックアップコピーを保管してください!!!)。

この変更が自動的に反映されるかどうかはわかりません。そのため、新しい設定を有効にするために再起動が必要になる場合があります。

1
Tonny