ユーザーのパーミッションコントロールが不能に - 解決

「http://〜〜〜/path/to/nanika」というアホなユーザーを作成しパーミッション設定してしまった所、ユーザーの追加削除などが全くコントロール不能に。

クリップボードにあると期待した 'anonymous' の文字列が URL に変わってました。ぎゃふん orz



で削除しようと思ったんですが Web-Admin からでは削除不能。 仕方ないので、コンソールから削除しようにも削除できず。 最終手段で

trac-admin trac-path permission remove * *

で、まっさらにしようにも全く出来ず…うわん。orz

ど、どうすりゃえぇんだ…!?







SQLite のデーターベースを直接いじる…? マジか…!? おいらSQLなんて知らんぞぉぉぉぉ!?






ソフトウェア開発技術者試験に合格している人の発言ですが無害です。



結局いじった

sqlite3 なんてコマンドがあるんですねぇ。

マジで SQL なんて初めてだった故に結構おっかなびっくりで作業してましたが、結論から言えば、db/trac.db を開いて

delete from permission where action='TICKET_MODIFY';

の1行ですみました。(誤爆して登録したのが、唯一の TICKET_MODIFY だったからなんですけれども^^;)

アクセス権を管理している permission テーブルには

  • username
  • action

の2つのカラムしか無いので、

delete from permission where username='kanaria';
delete from permission where action='kasira';

の2パターンぐらいしかなさげな感じです。とはいえ、SQLなワケですから and 等でつなげて複雑な文を実行してみたり、%でワイルドカード指定もできる…と思います(試してないけど)



…しかし、WebAdmin でも trac-admin でも、変なユーザー名だと削除できなかったのは何でだろう…。エラーもどこにはかれるのか分からんし…うぐぅ

# /var/log/message でも /var/log/httpd/error_log でもなさげ