C++ 別ユーザでプロセスを起動する
ユーザーアカウント制御の導入によりEXEファイルの実行に、ユーザ許可が必要になった。
Administrator権限を持つユーザで実行する事により、ユーザーアカウント制御の許可を必要とせずに実行する。
前提条件
- Visual Studio - Visual C++ - Win32コンソールアプリケーション
- 引数で指定するユーザはAdministrator権限を持つユーザ
- RunasExec.exe ユーザ名 パスワード ファイルパス で実行
RunasExec.cpp
#include "stdafx.h" #include <Windows.h> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { if (argc < 4) { // 異常終了 return 9; } // 引数の値を取得 wstring userName = argv[1]; wstring password = argv[2]; wstring filePath = argv[3]; STARTUPINFO sinfo; PROCESS_INFORMATION pinfo; ZeroMemory( &sinfo, sizeof( STARTUPINFO ) ); ZeroMemory( &pinfo, sizeof( PROCESS_INFORMATION ) ); sinfo.cb = sizeof( STARTUPINFO ); // 別ユーザでプロセス起動 if (!CreateProcessWithLogonW( userName.c_str(), // ユーザ名 NULL, // ドメイン名 password.c_str(), // パスワード 0, // ログオン オプション NULL, // 実行可能モジュール名 (LPWSTR) filePath.c_str(), // ファイルパス CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP, // 作成フラグ NULL, // 新しい環境ブロック NULL, // カレントディレクトリの名前 &sinfo, &pinfo)) { // 異常終了 return 9; } CloseHandle(pinfo.hThread); CloseHandle(pinfo.hProcess); // 正常終了 return 0; }
僕のヒーローアカデミア 17
僕のヒーローアカデミア 17 (ジャンプコミックスDIGITAL)
- 作者: 堀越耕平
- 出版社/メーカー: 集英社
- 発売日: 2018/02/02
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
ミリオいいね、主人公だわ。
弱さを認めて成長するし、個性の精細な使い方が素晴らしい。
エリちゃんは治崎の実の娘じゃなかったですね。
前の巻の感想で洗脳率が低いって書きましたが、組長の孫だったんですね。
なら、納得かな。
この巻、話が進むにつれて、みんなバカになっていく感じが凄いですね。
描きたい展開があって、それになぞってキャラクターを動かしていく感じが、また出てきました。
特に サー は酷い。
いいキャラだとは思っているんだけど、出てきた章で壊す所まで行くのはどうんだろう。
予知した未来を捻じ曲げるデク→オールマイトの後継者→主人公みたいな説得を持たせたいんだろうけどさ。
そのためにミリオとサーを消耗的に使う感じがして浅いなぁと思ってしまう。
治崎は仲間と合体するだけで自分ではない個性を使えるのは納得いかないなぁ。
まぁどうでもいいか。
デクのエリちゃんの能力の戻す速度がわかったから、その分、自身を壊してチャラにする発言は狂人すぎてヤバイですね。
私としては治崎から逃げ切れば勝ちだと思うんですが、あえて戦闘する必要ないと思うんですけどね。
この後の展開は、わかんないですが、この章のストーリーは、あくまでも学生なので主人公チームはエリちゃんの救出に注力し、治崎との戦闘はプロに任せるという流れが自然に思いますね。
Linux標準教科書3
10章
- ping
- traceroute ゲートウェイの確認
- ifconfig
- IPアドレスの設定ファイル RedHat Linux系
- netstat ネットワークの状況 データの流れる方向(ルーティング)が調べられる
- route ルーティングの変更
- DNSを使う設定
- /etc/nsswitch.conf hosts: files → /etc/hosts, dns → /etc/resolv.conf
- /etc/hosts
- /etc/resolv.conf
- /etc/nsswitch.conf hosts: files → /etc/hosts, dns → /etc/resolv.conf
- nslookup ターゲットの名前とIPアドレスを返す
- ポート番号 /etc/services
- TCPラッパ
- /etc/hosts.deny アクセス制御
- /etc/hosts.allow アクセス許可
- ファイアウォール iptables
- /etc/sysconfig/iptables
11章
- FHS(Filesystem Hierarchy Standard)
- fdisk パーティションの作成
- mkfs ファイルシステムの作成
- df マウント状態の表示
- mkfs ファイルシステムの作成
- e2label
- マウントするために利用するディレクトリをマウントポイントと呼ぶ
- mount マウント
- umount アンマウント
- mkswap スワップファイルシステムの作成
- swapon スワップ領域の有効
- swapoff スワップ領域を無効
- 自動マウント
- /etc/fstab 設定ファイル
- リムーバブルメディアのマウント
- /mnt, /media
- mount -t iso9660 -o ro /dev/cdrom /media/cdrom
Linux標準教科書2
7章
- コンソール
- $ ユーザ権限
- # 管理者権限
- ユーザ /etc/passwd
- useradd
- usermod
- userdel
- グループ /etc/group
- ユーザは必ず1つ以上のグループに所属していて、主に所蔵するグループをプライマリグループと呼びます。
- groupadd
- groupmod
- groupdel ユーザが所属していないグループのみ削除できる。
- パスワードとパスワードファイル /etc/shadow
- 用意されているグループとユーザ
- su
- sudo
- CentOSでは初期設定のままではsudoコマンドは利用できない。sudoコマンドを使うにはユーザをwheelグループというスーパーユーザ(root)特権を持つグループに登録する必要があります。
- sudoの設定は /etc/sudoersファイルを編集することでユーザがsudoコマンドを利用できるようになります。
- visudo sudo権限ファイルを編集するコマンド
- vigr グループファイルを編集するコマンド
8章
- chown
- chgrp
- chmod
- ファイルを所有するユーザ、ファイル所有グループから所有者を抜いたユーザ、その他のユーザの3つのレベルで権限が設定できる。
- 読み、書き、実行
- setuid, setgid, sticky
- umask
9章
- シェルの指定 #!/bin/bash
- パーミッションの変更
- echo
- export 環境変数
- read
- set シェル変数の一覧表示
- unset
- env 環境変数の一覧表示
- # コメント
- 引用符
- シングルクオート 文字列
- ダブルクオート 引用符内に変数があった場合展開
- バッククオート 引用符内にコマンドがあった場合実行
- 引数 $1, $2, ... $0は実行コマンド名、$#は引数の数
- shift
- エスケープシーケンス \ バックスラッシュ 改行にも使用可能
- source
- シェルの環境設定ファイル .bashrc や .bash_profile などを設定変更後、ログインしなおさずに設定を有効する場合に使用
- if then elif then else then fi
Linux標準教科書1
1章
- シェル
- 入力されたコマンドを理解し、それを実行します。
- 自動実行の環境を提供する。
3章
ファイル操作
- ls(LiSt)
- ls *.conf, ls ???.conf
- cp(CoPy)
- mv(MoVe)
- rm(ReMove) 一度削除したファイルを復活させる事はできません。
5章
- touch ファイルのタイムスタンプの変更
- head
- tail
- tail -f(follow)
- sort
- uniq
- tr(TRanslate)
- diff
6章
- vi
- :q(quit)
- :w(write)
- I 行の先頭まで移動してインサートモード
- A 行末まで移動してインサートモード
- :n 行移動
- gg 1行目へ移動
- G 最終行へ移動
- x 1文字削除 dd 1行削除 yy 1行コピー nyy n行コピー p 次にペースト P 前にペースト u アンドゥ
- /検索文字列 n 下方向へ再検索 N 上方向へ再検索
- :対象行s/検索文字列/置換文字列/オプション
- :ns/old/new n行目の最初のoldをnewに置換して終了
- :ns/old/new/g n行目の全てのoldをnewに置換して終了
- :%s/old/new/g ファイル全体の検索語句を置換する
- :%s/old/new/gc 置換の毎に確認を求める