Nmapの真実(続) by abendさん のファンなので乗っかって書いてみました。 @ymzkei5
Ubuntu LinuxではOSのインストール時には管理者であるルート(root)のパスワードは設定されていない。 管理者(root)権限でコマンドを実行する際にはsudoコマンドを用いる必要がある。 sudoを用いた場合コマンドを実行する前にパスワードを要求されるが、このパスワードはインストール時に作成した現在ログイン中のユーザのパスワードを入力しなければならない。 ※GUIベースでsudoを使用したい場合にはgksudoを用いればよい。 また、この状態ではsuコマンドでrootにはなれい。 (su: Authentication failureと表示されて拒否される) suコマンドでrootになる場合にはrootのパスワードを作成する必要がある。 パスワードの作成は以下の方法で可能 [コマンド] $ sudo su - # passwd ※2007/01/10 関連記事 (Ubuntu
スニーカーに仕込んだセンサーで運動量を測定、iPodにリアルタイム表示する「Nike+iPod」が発表されました。もう終了しちゃいましたが、米国の人気TVドラマ「SEX AND THE CITY」のミランダ用小ネタ(デジタルガジェット好きな女性なんです)にピッタリかも。ところで、このTVドラマ、歴代のPowerBookが登場するので、機会があれば是非。 さて、今回はパワーマネジメント用のコマンド「pmset」について。システム環境設定の「省エネルギー」ペインの代替として機能する一方、ペインには省略されている各種スイッチも用意されているので、pmsetでなければ変更できない設定もある。特にMacBook/MacBook Proユーザは、知っておいて損はないはず。なお、本稿ではMacBook 1.83GHz/Mac OS X 10.4.6をテスト機として使用しているので、念のため。 pmset
この文書はRootSudo(英文)の翻訳です。 誤記、誤訳が疑われる箇所については、オリジナルの文書を参照下さい。 注意: sudoの設定についての詳細は、設定ファイル/etc/sudoersを参照下さい。 背景 Linux(およびUnix一般では)、rootという名前の管理者アカウントが存在します。Windowsにおいては、Administratorsグループに相当します。管理者アカウントでは、どんな操作でもできてしまいます。それゆえ日々の作業を管理者で行うのは非常に危険です。コマンド入力を間違えてシステムを破壊するといったことも起き得ます。理想的には操作に必要な権限のみを持ったユーザで、作業を行うべきです。ときには、rootになることが必要かも知れませんが、ほとんどの場合は、一般ユーザで問題ありません。 Ubuntuのデフォルト設定では、rootアカウントのパスワードはロックされた状態
普段サインインしているユーザーアカウントとは異なる、別のユーザーの設定情報を知りたい、あるいは設定を変更したい、ということはないだろうか? もちろん、そのユーザーアカウントでサインインし直せば簡単に実現できることだ。しかし、サインインにはそれなりの時間がかかるし、別のユーザーの環境だと不慣れで作業しにくく、効率が悪くなりがちだ。 そこで活用したいのが、Windows OS標準装備の「別のユーザーとして実行」という機能だ。これだとサインインしているユーザーを変えることなく、別のユーザーの権限で指定のプログラムを起動できるので、サインインし直すより速やかに情報取得や設定変更などの作業がこなせる。 本Tech TIPSでは、「runas」というコマンドを利用して、別のユーザー資格情報によるプログラム実行をコマンドラインで実現する方法と注意点を説明する。 この機能をGUIで実現する方法については、
要点 ⑴sudoした場合は環境変数を引き継がない。 ⑵sudoで環境変数を引き継ぐにはsudo -E some_commandかsudoersにenv_keepを書く。 ⑶sudo ${pathが通っているコマンド}を実行する場合、カレントユーザのpathによって実行するコマンドが決まる。 sudoについて調べたきっかけ 今まで「root権限でコマンドを実行したい場合」にsudoを使っていたのですが、 とあるrubyのスクリプトをsudoで実行したところ以下のようなエラーがでました。 $ sudo /usr/local/hoge/fuga.rb /usr/local/hoge/fuga.rb:3:in `require': no such file to load -- thor (LoadError) from /usr/local/hoge/fuga.rb:3 rootとカレントユーザ
このエントリは KLab Advent Calendar 2017(兼 mruby Advent Calendar 2017)の 12 日目の記事です。 今年は(前半は)Keepalived にフルタイムでコントリビュートしていたり(後半は)ひたすら mruby をいじっていたりと、実に OSS 充な一年だった @pandax381 です。 タイトルにある試みについては、2015 年の時点で東京大学の品川先生が「mruby を Linux カーネル内で動作させる」という素晴らしい記事を書かれていて、Kernel module に組み込んだ mruby が動作することを実証されています。 mruby をカーネル内で動作させるために大きく問題となるのが、浮動小数点演算です。mruby は Float を標準的なクラスとして提供していると共に VM 内部でも浮動小数点演算を行っている一方で、Ke
/etc/ssh/sshd_configを編集して、RSA公開鍵認証の有効化と各種の制限を行い、セキュリティを強化する。順番は前後するが、目的別に見ていく。 まず、RSA公開鍵認証の有効化。sshd_configの#RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeyFile .ssh/authorized_keysをRSAAuthentication yes PubkeyAuthentication yes AuthorizedKeyFile .ssh/authorized_keysに修正(「#」を削除)。これで、公開鍵と秘密鍵、パスフレーズによる認証が可能になる。 次に、#PermitRootLogin yesをPermitRootLogin noにして、rootで直接ログインできないようにする。これにより
「複数のリモートホストで同じコマンドを一斉実行したい」と思うことはよくありますが、これらのツールを使うことで実現出来ます。 Cluster SSH ClusterIt DSH - dancer's shell / distributed shell GXP Grid & Cluster Shell Parallel ssh Parallel Distributed Shell PyDSH ssssh Svengali この中でも Parallel Distributed Shell(以下、pdsh)は学習コストが低く、簡単に使い始めることが出来ます。今回はこの pdsh を使ってみます。前提条件として、ssh で公開鍵認証方式を利用するにはなどを参考に、操作元となるホストから操作対象となる複数のリモートホストへ ssh の公開鍵認証方式でログイン出来るよう、予め設定しておきます。 インスト
最近、旅行に行きたくて仕方ありません。原稿が行き詰まっているので逃避したい(おいおい)というド真ん中な理由はさておき、近頃のホテルはブロードバンド/無線LAN装備が当たり前になりつつあるので、いろいろ試してみたいという動機もあるのですよ。MacBook/MacBook Proはモデムを標準装備していませんから、過去のノウハウも使えませんし…… さて、今回はSpotlightのトラブル対策について。基本的にSpotlightはメンテナンスフリーだが、GUIベースの管理ツールは機能が大幅に簡略化されているため、トラブル時の活躍は期待できない。いざというときのために、Spotlightのトラブル対策術をマスターしよう。 いつの間にやら「mds-crash-state」が Tigerを使い続けていると、Spotlightの検索結果が最新の状態を反映していないことに気付くことがある。その場合、Fin
ユーザーが別のユーザーの権限を利用してプログラムを実行できるコマンド「sudo」に、パスワードなしで特権の獲得を許す脆弱性が見つかりました。この脆弱性は2011年7月から存在しており、各Linuxディストリビューションは修正対応を発表しています。 CVE-2021-3156: Heap-Based Buffer Overflow in Sudo (Baron Samedit) | Qualys Security Blog https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit Buffer overflow in command line unescaping https://www.sudo.ws/a
あなたはシステム管理者から通常の講習を受けたはずです。 これは通常、以下の3点に要約されます: #1) 他人のプライバシーを尊重すること。 #2) タイプする前に考えること。 #3) 大いなる力には大いなる責任が伴うこと。 これはsudoコマンドを打った時にたまに出てくる警告文です。 この記事を書こうと思ったきっかけはこのツイートを見たことです。 とあるシステムで特権ユーザーにスイッチする時に「大いなる力には大いなる責任が伴う」ってメッセージが出てくるんやけど、めっちゃすこ。 彡(^)(^) — gonsuke777 (@ora_gonsuke777) April 26, 2021 わかる。 自分は初めてみた時はドキッとしました。 「sudo使おうとしてごめんなさい・・・。でも仕方ないよね?」 と改めて確認したので効果ありました。笑 「大いなる力には大いなる責任が伴う」 この元ネタはスパイ
ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ https://mac-tegaki.comへ移転中 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.
なぜDockerコマンドにはsudoが必要なのか? The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can access it with sudo. For this reason, docker daemon always runs as the root user. To avoid having to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it make
Javaで実装された画面処理から、ファイルシステム上にあるsudoを含むシェルスクリプトをキックする処理を実行したところ、以下のようなメッセージを標準エラー出力に出して処理に失敗した。環境はCentOS 5(RHELでも同様)。 sudo: sorry, you must have a tty to run sudosudoの設定としては、visudoコマンドで/etc/sudoers に下記の書式 ユーザ ホスト = (権限) コマンド 例)hoge ALL = (root) /sbin/rebootで設定を入れ、ファイルを:wqした瞬間に設定が有効になる。が、SSHクライアントやコンソール上での実行以外では前述の「you must have a tty to run sudo」のメッセージで実行できない。これを回避するためには、sudoのデフォルト設定の「Defaults requir
@kazuho さんが最近作ったnginxの2倍速いという噂のh2oをamazon linuxでビルドするメモ。 さすがにh2oをmacでbuildするのはこの短時間じゃ無理だった。前に一度まとめた事があるのでメモを開放しておく。 cmake を 3.0.2 にする sudo yum install curl curl-devel sudo yum install libarchive libarchive-devel sudo yum install expat expat-devel wget http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz tar -xvf cmake-3.0.2.tar.gz cd cmake-3.0.2 ./bootstrap --prefix=/usr \ --system-libs \ --mandir=/
JPCERT-AT-2021-0005 JPCERT/CC 2021-01-27(新規) 2021-01-28(更新) I. 概要2021年1月26日(現地時間)、sudoにおけるヒープベースのバッファオーバーフローの脆弱性(CVE-2021-3156)に関する情報が公開されました。sudoersファイル(通常は/etc/sudoers配下)が存在する場合に、脆弱性を悪用することにより、ローカルユーザがrootに権限昇格する可能性があります。 Sudo Buffer overflow in command line unescaping https://www.sudo.ws/alerts/unescape_overflow.html なお、本脆弱性を発見したQualys社より、脆弱性の技術的な解説や脆弱性を実証する動画が公開されています。今後、脆弱性を悪用する実証コードなどが公開され、攻
CentOS のApache でDocumentRoot とされている/var/www/html をサーバ間で同期するために % rsync -avz -e ssh --delete /var/www/html foo@example.com:/var/www/htmlとrsync を実行しても、foo に/var/www/html への書き込み権限がないため成功しない。 # PermitRootLogin yes な方は勝手にどうぞ。 NFS が使えれば手っ取り早いのだが、一つの解決策として example.com に以下のスクリプトを置き(/home/foo/rsync.sh とする) #!/bin/sh /usr/bin/sudo /usr/bin/rsync $* visudo で foo ALL=(ALL) NOPASSWD: /usr/bin/rsync と設定しておく。 あと
ちょい分かりにくかったので、設定メモです。やりたいことは、sudo で実行する際に、find コマンド等、よく使う、かつ、実行してもあまり被害がないコマンドに関しては、パスワード入力なしで実行できるようにしたいということです。 sudo コマンドに関する設定は、「/etc/sudoers」にかかれています。 設定を変更するのは、これを直接編集するのではなく、「visudo」コマンドを実行します。このコマンドで設定を行うと、終了時にSyntax のチェックなどを行ってくれます。 $sudo visudo ユーザー「lukesiliva」は、「find」コマンドだけについては、sudo で実行する際にパスワードを聞かれないようにしたいという設定は以下のようになります。 こで、find コマンドのみパスワード入力を求められず、他のコマンドをsudo で実行する際には、今まで通りパスワードを求めら
Linuxで作業をする場合、通常は一般ユーザーで行い、必要があるときだけrootになるのが基本だ。しかし、1コマンドを実行するためだけにsuでrootになってexitで抜けるのは面倒だ。また、rootは何でも実行でき、ファイルの削除や変更も自在なので事故が起こりやすい。 例えば、ソースプログラムをダウンロードしてコンパイルするところまでは一般のユーザーでも行うことができるが、プログラムのインストールにはroot権限が必要だ。このようなときは、sudoコマンドでroot権限が必要なコマンドを実行すればいい。 sudoコマンドを使用できるようにするには、visudoコマンドで/etc/sudoersファイルにユーザーIDを登録する。以下の例では、noriというユーザーIDを登録している。なお、visudoコマンドを実行するときは、rootでログインしなければならない。 # sudoers fi
サーバの移転作業時など、rootしかアクセスできない設定ファイルやアクセス権を保ったままrsyncしたいことってありませんか? そういった際には、sudo の -A オプションと rsync の --rsync-path オプションを使うと良いようです。 まず、リモートサーバに、パスワードを標準出力に出力するスクリプトファイルを配置します(ファイルのパーミッションを厳しくするのを忘れずに)。 % cat > bin/askpass #! /bin/sh echo "{{my_password}}" % chmod 700 bin/askpass % そして、rsync を実行する際には --rsync-path オプションを使い、リモートサーバの rsync を sudo -A 経由で起動するようにすれば良いのです。 % sudo rsync -avz -e ssh \ --rsync-p
ref:ウノウラボ Unoh Labs: 専用サーバを構築するときにまず行う4つの設定 む。 /etc/sudoers の編集には visudo を使いましょう。文法チェックもしてくれる /etc/shadow の編集には sudo vipw -s としましょう。まぁインストール直後だと問題ないだろうけど su を禁止するのはいいけど、この設定だと sudo -u user -s とか、sudo sh -c su とやってしまえば通過できてしまう。まぁ、su を禁止することで類似する行為をするな、というメッセージにはなるので、まったくの無意味だとは言わないが。sudo で実行したコマンドはログに残るし つうか、半端に一部のユーザに su 出来るようにするのは変でないかい?postgres の権限で実行したいなら % sudo -u postgress commandsで十分。root と
いままでpip実行するたびに、「これどこかのsetup.pyに一行でもid_rsaとかfirefoxのprofileデータをどこかにアップロードするコード混じってたら終わりだよな」と思ってたけど、 https://pytorch.org/blog/compromised-nightly-dependency/ いよいよそういうことが起こってきたので、なんとか対応したほうがいいという気持ちになった。今年中に使用感を悪化しない範囲でどこまでできるかを探りたいと思いますね。 ブラウザを別UIDで実行する firefoxのデータに自由にアクセスできたらMFAとか意味ないんだよなあ… ブラウザのデータを別プロセスから読みたいとか、ブラウザにパイプ繋げたりとかしたい場合はないので、別ユーザにして、isolationすべきという気がする。 firefoxだけ起動できる UID を作って、その UID で
ただし毎回sudoしていると不便なので早く改善して欲しいですね。 どういう物が危険か具体的に書くと、 sudo gpasswd -a hoge docker のようにするとsudoなしでdockerコマンドが使えるようになりますが、sudoなしでroot権限が手に入れられることになります。 どんな風に危険なのか? ユーザ権限の実行可能ファイルがrootのファイルを好き放題にいじれる 例え管理者でなくても(=一般ユーザでも)行える 特に目立った制約(いじれないファイルや厳しい条件)がない 以上より、Windowsでありがちな「何かよくわからないアプリケーションをダウンロードした」が致命傷になります。 Windowsだと絶対にUACが出ますが、これは出ない上に管理者を取られる最悪クラスです。 まあ私は知らないスクリプトなんて実行する機会は殆ど無いので大丈夫ですが。 解決方法 そもそもLinux
この記事は KMC Advent Calendar 2015 - Adventar19日目の記事です。18日目は、murataさんのKMCとPiet,そして最強のPietの為にdllを動的にC#で読みこむ話 - <(/^^)/⌒●~* $> :(){ :|:& };:でした。 はじめに KMC 4回生kazakami https://twitter.com/Kazakami_9です。 * 今日はshellチャンネルの話しです。 shellチャンネル自体は10日目のアドベンドカレンダーであるmesos+marathon+docker と slack の shell チャンネルの話 - KMC活動ブログでもでてきています。 shellさんについて $から始まる文字列がslackで発言されるとそれをコマンドとして解釈して実行し、標準出力をslackで発言するという脆弱性の塊のようなbotです。(
rootになってなにやらしたいときって、unixコマンドのsuとかsudoを使いますよね。私もよく仕組みが分からないまま、使ってました。使いつつ、suとsudoの違いって一体なんだ?って思ってた。調べた結果、分かったsuとsudoの違いは以下。 ●su(Switch User)=>他のユーザーに変身する。 〜使い方〜 su 変身したいユーザー 〜特記事項〜 ・変身したいユーザーを指定しない場合は、rootユーザーになる。 ・変身しようとするユーザーのパスワードが必要。 ・rootユーザーから他のユーザーに変身する際は、パスワード不要。 ●sudo=>sudo以降に打った、通常だと実行権限のないコマンドを、特別に実行する。 〜使い方〜 sudo 実行したいコマンド 〜特記事項〜 ・sudoを実行するユーザーのパスワードが必要つまりは、suもsudoも、「root権限でなにかしらのコマンドを実
2012年7月27日金曜日 Mountain LionにおけるWeb共有の消滅と403 Forbiddenの解決策 Mountain Lionがとても良いです。 しかし、Web共有がシステム環境設定の共有より消えました。 何もしなくても、Web系の開発が楽なのがMacの良い所でもあったのに、これだと困る。 しかし、Apacheは標準で搭載されているようで、 sudo apachectl stop でWeb共有の停止(Apache停止) sudo apachectl restart でApache 再起動 sudo apachectl start でWeb共有の開始(Apache起動) ができます。 ワ─イ♪└┤*´∀`*├┘ワ─イ♪と思ったのもつかの間、 Lionまでは、Web共有のスイッチを入に変え、 http://localhost/~USERNAME/ にアクセ
Touch ID搭載Magic KeyboardのTouch IDを利用してApple Silicon搭載のMacで「sudo」を実行する方法です。詳細は以下から。 Appleは2021年04月、Apple M1チップや4.5K Retinaディスプレイを搭載した「iMac (24-inch, M1, 2021)」を発表するとともに、このiMacのオプションとしてAppleの生体(指紋)認証センサーTouch IDを搭載した「Touch ID搭載Magic Keyboard/(テンキー付き)」を追加し、 2021年08月からは、このTouch ID搭載Magic Keyboardの単体販売を税込み15,800円(テンキー付きは18,800円)で開始しましたが、このTouch ID搭載Magic KeyboardはMacBook Air/Proに標準搭載されているTouch IDと機能的に互
※ご注意 本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。また、本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。 前回は、sudoの基本的な使い方と例をいくつか紹介した。今回も引き続きsudoを用いたコマンドの利用制限を中心に説明する。 sudoコマンドのおさらい sudoの設定例に入る前に、sudoの基本的な使い方をおさらいしておこう。 sudoコマンドの使い方 前回説明したとおり、sudoの使い方はとてもシンプルで実行するコマンドの前にsudoと入力するだけだ。例えば、/var/log/secureというファイルを特定ユーザーの権限で参照したい場合は、
ちゃんとマニュアルは読もうね!という話。Emacsでリモートサーバのファイルを直接編集するtrampは多くのサーバを同時に扱う仕事にはとても重宝する。使い方は簡単で、C-xC-fでファイルを開く時に/ssh:user@host:/path/toのようなファイル名を使う事で自動的にsshでリモートホストにログインしてファイルを開く。また、このバッファでファイルを変更して保存するとリモートホストにファイルをコピーするのであたかもローカルのファイルのようにリモートのファイルを扱う事ができる。また、trampをつかうことでローカルホストのファイルをroot権限で扱うこともできる。たとえば、/sudo:root@localhost:/etc/passwdなどのような名前でEmacsからファイルを開く事で/etc/passwdというファイル名をroot権限で扱う事ができる。いつも使っている扱い慣れたE
基本的にAnsible側に制御を委ねることで冪等性の保持やエラーハンドリングが成されるので、やりたいtaskに対してまずはmoduleを探すべき(sedを使わずにlineinfileモジュールを使えないかとか)ではあるのだが、どうしてもmoduleで実現できない場合にシェルコマンド直書きになってしまう場合はある。 てかコマンド書いちゃうならAnsibleじゃなくてシェルスクリプトでいいじゃんって話でさ。 ※追記 2017-04-05 17:00 記事執筆時点から時を経た現在の自分の見解としては、shell, command両モジュールの活用には以下の面から否定的であり、なるべくコマンド実行は行わないべきと考えています。 冪等性の保証が困難になる。 Ansible Playbookは実現されるべきシステムの「状態」を示した「実行可能なドキュメント」という側面があるが、コマンドが記載されている
tramp の最初の一回目の認証で待たされる感覚が嫌いなので、私はよくsudo をやらずにそのままファイルを開いてしまいます。そうして「ああ、やっぱり編集したい」となり、sudo で開きなおします。 作業の流れ的に美しくありませんし、毎回引っかかるのでストレスにもなります。 vim ですと「:e sudo:%」でカレントファイルを sudo で開きなおしてくれるようです。いいなあ。 ということで 自動的に sudo で開きなおしてくれる機能を作ろうかと思ったら、すでにあったのでそれを導入します。 元のlispは、書き込み不可なファイルすべてをsudoで開きなおすか聞いてくるのでうっとおしいので、少し修正しました。 root所有なファイルを開いた時だけ、sudoで開き直すか聞いてくるようにしました。 以下を ~/.emacs にコピペしします。 (defun file-root-p (fil
sudo -u hogeなどで実行すると、sudoを実行したユーザの環境変数が引き継がれない。 昔は、こんなこと考えずに引き継がれてた気がするが、どうやらsudoのバージョンが上がって 仕様変更されたらしい。 http://arika.org/2009/04/24/sudo-and-env 環境変数を引き継ぐためにはvisudoを使ってsudoersファイルに環境変数を記述するのが 定石のようだが、/etc配下はできるだけ触りたくない。 そこで下記の方法を見つけた。-Eをつけるだけで良いらしい。 http://d.hatena.ne.jp/Yudoufu/20110326/1301129885 ただし、man sudo しても-Eオプションは何故か載っていなかった。 (manにないだけで実際には使用できる。) manの最後にver1.6.6とあるのでマニュアルが古いと思われる。 sudo[
連載「OSS脆弱性ウォッチ」では、さまざまなオープンソースソフトウェアの脆弱性に関する情報を定期的に取り上げ、解説していく。2017年5月30日、Linuxのsudoコマンドに全特権取得の脆弱性が報告された。連載初回は、こちらの詳しい説明と情報をまとめる。 「OSSセキュリティ技術の会」の面和毅です。本連載「OSS脆弱性ウォッチ」では、さまざまなオープンソースソフトウェア(OSS)の脆弱(ぜいじゃく)性に関する情報を定期的に取り上げ、解説していきます。 2017年5月30日、Linuxのsudoコマンドに全特権取得の脆弱性(CVE-2017-1000367/CVE-2017-1000368)が報告されました。連載初回は、こちらの詳しい説明と情報をまとめます。 脆弱性発見の経緯 2017年5月30日、Linuxのsudoコマンドに全特権取得の脆弱性(CVE-2017-1000367)が報告さ
sudo からrootになるのを完全に防止したい 経緯 ある人にサーバーにログインしてもらうためにユーザーを作りました。 rootのファイルを触るので、sudo 権限を付与しました。 ただ、rootユーザーでの作業はさせず、全て sudo を通して作業をして欲しいと考えました。 前提 OS : CentOS7系 対策したこと sudoersの設定で su を実行できなくしました。 これで sudo su で、rootになることは出来ません。 ただ、sudo bash や sudo visudo などの様々なコマンドを駆使してsudoersを書き換えられるとrootになることは出来ます。 今回は、そこまですることはないと、 bash などは禁止にはしませんでした。 作業は全部sudoを使って欲しいという意思表示のつもりです。 質問したいこと sudo 権限は与えたいけど、rootユーザーにな
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く