トップ «前の日記(2011-04-15) 最新 次の日記(2011-05-07)» 編集

ORCA愉快日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|01|02|09|
2013|04|

2011-04-17 tdiary 3.0.1の表示がiPod Touch 4thでずれる件の対処

_ [PC] tdiary 3.0.1の表示がiPod Touch 4thでずれる件の対処

このブログもWordPressとか見栄えのいいものにしたいなという気もありますが、リファラのリンクが生成される点や構造がシンプルな点でtdiaryを今でも使用しています。で、最近放置していたtdiaryを2.2.2から3.0.1にアップデートしたときに、iPod Touchで見るとページが左に寄ってしまう現象が起こったのでそのメモ。

□ tdiary 3.0.1の表示がiPod Touch 4thでずれる
tdiary 3.0.1のページをiPod Touch 4thで表示すると、下記のようにページが左にずれて表示されます。
通常のパソコン上のブラウザで見る分には問題なく表示されます。

  
tdiary 3.0.0からiPhone/iPod Touchなどのスマートフォン向けのページ表示機能が
追加されているので、そこが原因のようです。
どうも、iPhone向けに320x240などの解像度で文字を大きくして見やすく表示されるはずが
幅の広いテーブルを作成しているためか最大限テーブルを表示しようとして
アンバランスなことになっているようです。
  
これを直すには、iPhone向けの設定を無効にすればいいわけで、HTML中に
<meta name = "viewport" content = "width = device-width">
のようなタグを表示させなければ、下記のようにページ全体が表示されます。
  
tdiaryのフォルダ中の./plugin/00default.rb を開いて、379行目あたりの
iphone_tagメソッドの中身を変更する。
----------------------------------------------------
def iphone_tag
        if @conf.iphone? then
        <<-CSS
<meta name = "viewport" content = "width = device-width">
----------------------------------------------------
        ↓
----------------------------------------------------
def iphone_tag
        if false then
        <<-CSS
<meta name = "viewport" content = "width = device-width">
----------------------------------------------------
  
もっと良い方法があるかと思いますが、時間がなかったので下記の画像のように
とりあえず対処することはできました。

_ [Ubuntu] sudoのNOPASSWD設定がうまくいかずハマってしまった

単なるsudoのNOPASSWD設定でハマってしまった件のメモ。原因は単純なことなのにどうして気づかなかったのさ..。

sudoの設定を行うには
$ sudo visudo
のようにコマンドを利用して、/etc/sudoersファイルを編集しますが
Ubuntuではデフォルトのユーザでsudoを扱えるよう、インストール時に設定されています。
  
□ 今回ハマった件
下記は、/etc/sudoersファイルのサンプルです。
コメント部分をあえて日本語に訳しておきます。
-----------------------------------------------------------
# /etc/sudoers
#
# このファイルはroot権限で 'visudo' コマンドで編集する必要があります。
#
# sudoersファイルの書き方の詳細についてはmanを参照してください。
#
  
Defaults  env_reset
  
# Host alias specification
  
# User alias specification
  
# Cmnd alias specification
  
# ユーザ特権の指定
root  ALL=(ALL) ALL
user  ALL=NOPASSWD:/usr/local/bin/test.sh .....(1)
  
# sudoグループに属しているすべてのメンバーが、各自のパスワードを入力すれば
# 任意のコマンドを実行できるようにします。
# (後のエントリでこの設定を上書きされるので、これより下に
# 設定を移動させる必要があるかもしれません。)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
  
# adminグループのメンバーがroot権限を取得できるようになります
%admin ALL=(ALL) ALL .....(2)
  
# 自分の設定
user    ALL=NOPASSWD:/usr/local/bin/test.sh .....(3)
-----------------------------------------------------------
  
最初(1)の場所に、userユーザがパスワードなしでスクリプトを実行できるよう
NOPASSWD設定を追加したのですが、これが有効にならずはまってしまいました。
user  ALL=NOPASSWD:/usr/local/bin/test.sh
  
  
【参考】 sudoersのNOPASSWD設定の確認
NOPASSWDがきちんと設定されているか確認を行うには、sudo -kなどで
パスワードキャッシュのタイムアウトを無効にして、コマンドを実行するのが便利です。
例) sudo -k /usr/loca/bin/test.sh
  
man sudoより引用
---------------------------------------------------------
-k  -k (kill) オプションが指定されると、 sudo は有効期間を紀元年 (epoch) に設定することで
ユーザのタイムスタンプを無効にする。 次回 sudo を実行するときは、パスワードが必要とされる。
このオプションにはパスワードが必要ない。 ユーザが .logout ファイルで sudo 権限を 取り消す
ことができるように追加された。
---------------------------------------------------------
  
  
□ 解決編
/etc/sudoersファイルの一番下、(3)の場所にNOPASSWD設定を移動させると
ちゃんとパスワードなしで実行されました。
  
これは、(2)の場所にadminグループ向け(つまりインストール時に作るデフォルトユーザが含まれるグループ)の
エントリがあるため、(1)の設定が上書きされてNOPASSWD設定が無効になっていた
というオチでした。
  
sudoersのエントリは一番下に書くというのを守らなかった上に、設定全体の意味を
理解していなかったという点で反省。
  
下記の参考URLでも、似たような注意点が書かれています。
  
  
□ 参考URL
Ubuntu Wiki - Sudo
https://help.ubuntu.com/community/RootSudo
Ubuntu Wiki - Sudoers
https://help.ubuntu.com/community/Sudoers

トップ «前の日記(2011-04-15) 最新 次の日記(2011-05-07)» 編集