2020年8月20日木曜日

CentOS8 4K ディスプレイ マウスカーソルを大きくする。

【マウスポインタ拡大】
# dnf install dconf-editor
$ dconf-editor
/org/gnome/desktop/interface/cursor-size
Use default value  -> off
Custom value -> 48

2020年8月2日日曜日

LVM ファイルシステムのマウント

# mount /dev/nvme0n1p3 /mnt/m2
mount: /mnt/m2: 未知のファイルシステムタイプ 'LVM2_member' です.

#  fdisk -l /dev/nvme0n1
ディスク /dev/nvme0n1: 953.9 GiB, 1024209543168 バイト, 2000409264 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: CF0AC781-3B8D-47EF-9919-C722FCFC6598

デバイス       開始位置   終了位置     セクタ サイズ タイプ
/dev/nvme0n1p1     2048    1230847    1228800   600M EFI システム
/dev/nvme0n1p2  1230848    3327999    2097152     1G Linux ファイルシステム
/dev/nvme0n1p3  3328000 2000408575 1997080576 952.3G Linux LVM

# pvs
  PV             VG   Fmt  Attr PSize   PFree
  /dev/nvme0n1p3 cl   lvm2 a--  952.28g    0
  /dev/sda3      cl00 lvm2 a--  464.17g    0

#  vgdisplay cl
  --- Volume group ---
  VG Name               cl
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               952.28 GiB
  PE Size               4.00 MiB
  Total PE              243784
  Alloc PE / Size       243784 / 952.28 GiB
  Free  PE / Size       0 / 0  
  VG UUID               r9wuW5-nnFa-Wvvd-rFFJ-W443-pKW7-oSnE5b

VG nameを変更する場合(同じ場合UUIDで変更)
# vgrename  r9wuW5-nnFa-Wvvd-rFFJ-W443-pKW7-oSnE5b cl-rename

# vgscan --mknodes
  Found volume group "cl00" using metadata type lvm2
  Found volume group "cl" using metadata type lvm2


# lvscan
  ACTIVE            '/dev/cl00/swap' [15.74 GiB] inherit
  ACTIVE            '/dev/cl00/home' [<398.43 GiB] inherit
  ACTIVE            '/dev/cl00/root' [50.00 GiB] inherit
  ACTIVE            '/dev/cl/root' [146.69 GiB] inherit
  ACTIVE            '/dev/cl/home' [745.05 GiB] inherit
  ACTIVE            '/dev/cl/swap' [<60.54 GiB] inherit

# mount /dev/cl/home /mnt/m2

inactiveの場合activeに変更
# vgchange -ay
  3 logical volume(s) in volume group "cl01" now active
  3 logical volume(s) in volume group "cl00" now active
  3 logical volume(s) in volume group "cl" now active

2020年8月1日土曜日

CentOS8インストール

■CentOS8.2インストール
1)OSインストール
               https://www.centos.org/download/






2)tweaks起動( メニューバー設定)
       拡張機能の必要なものをON

3)入力ソースに「日本語(かな漢字)をインストール
# dnf -y install libkkc libkkc-data ibus-kkc
再起動
 











4) epelリポジトリの登録
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf repolist all   ←確認

5)clamのインストール(設定は別途)
# dnf --enablerepo=epel install clamav clamav-scanner-systemd clamav-update

6) zabbix リポジトリの登録
# dnf install https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
※ 最新版のURLを確認

7) zabbix クライアントのインストール(設定は別途)
# dnf install https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-agent2-5.4.7-1.el8.x86_64.rpm

8)mariadbのインストール
   a.)  リポジトリ登録
           下記でrepoファイル作成。
           http://downloads.mariadb.org/mariadb/repositories/
          # vi  /etc/yum.repos.d/mariadb.repo
    b.) インストール
          #  dnf install MariaDB

※ 各項目の設定は別途


【CentOS8 インストールUSB からresucueモード起動】

CentOS8 ブートでロックして 起動しなくなったのでレスキューモードで復旧

# hostnamectl set-hostname buffy.com
# nmcli device
# nmcli connection up enp39s0
# ip a
# nmcli device
# ip a

# chroot /mnt/sysimage
# dnf install grub2-efi-x64-modules.noarch
# lsblk
# grub2-install /dev/nvme0n1
# grub2-mkconfig -o /boot/grub2/grub.cfg  # not UEFI
# grub2-mkconfig -o / boot / efi / EFI / centos /grub.cfg      #for UEFI
# touch /.autorelabel

# systemctl status initrd-switch-root.service
Failed to switch root: Specified switch root path 'sysroot' does not seem to be an OS Tree. os-release file is missing.
initrd-switch-root.service:Main process exited, code=exited, status=1/FAILURE
initrd-switch-root.service:Failed with result 'exit-code'.

# cp /boot/initramfs-*.x86_64.img /root    #backup
# dracut --force --regenerate-all

2020年7月22日水曜日

guacamole rdp 接続できない。

# journalctl -u guacd -f

guacd[6309]: WARNING: Support for protocol "rdp" is not installed

【NG】
# rpm -qa guacd  *rdp*
freerdp-libs-2.0.0-4.rc4.el7_8.x86_64
freerdp-devel-2.0.0-4.rc4.el7_8.x86_64

 【OK】
 # rpm -qa guacd *rdp*
freerdp-libs-1.0.2-15.el7.x86_64
freerdp-devel-1.0.2-15.el7.x86_64




【対応】
# yum remove  freerdp-libs

# vi /etc/yum.repos.d/CentOS-Vault.repo
# C7.6.1810
[C7.6.1810-base]
name=CentOS-7.6.1810 - Base
baseurl=http://vault.centos.org/7.6.1810/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1 ←一時的に1にする。

# yum install freerdp-devel-1.0.2-15.el7

# vi /etc/yum.repos.d/CentOS-Vault.repo
 enabled=0 ←0に戻す。

2020年6月18日木曜日

Django プロジェクト作成

1.環境構築
1-1 インストールモジュールとバージョン

$ python3 --version
Python 3.6.8

$ mysql --version
mysql  Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)

$  mysql --version
mysql  Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

1-2 pythonのインストール

python Ver3.6をインストール

# yum install python36 python3-libs python36-devel
# python36 -m ensurepip       # pip(パッケージ管理ツール) を使えるようにする。
                              # 以降は、pipでパッケージをインストール。

1-3 python仮想実行環境の構築
pythonは、様々なバージョンの組み合わせの仮想実行環境を構築する事ができます。
# cd /usr/bin
# ln -s /usr/libexec/platform-python3.6 python36
# mkdir ~/Python_env
# cd ~/Python_env
# python36 -m venv venv36-d30
(# chmod -R a+rq /usr/local/venv36-d30)             # 一般ユーザで実行する場合
$ source ~/Python_env/venv36-d30/bin/activate

※下記環境がセットされる。
VIRTUAL_ENV=/home/takahab/Pyhton_env/venv/venv36
PATH=/home/takahab/Python_env/venv/venv36-d30/bin:$PATH
deactivate () {}

※ 必要なモジュールをpip3でインストールする。

1-4 Djangoのインストール
Django 3.0をインストール
$ pip3 install --upgrade pip
$ pip3 install Django

$ pip3 list
Package    Version
---------- -------
asgiref             3.2.10
Django             3.0.9
pip                     20.2
pytz                   2020.1
setuptools     39.2.0
sqlparse          0.3.1


1-5 モジュール更新( アプリケーションのバージョン環境に合わせる)

$ source /usr/local/venv36-d30/bin/activate
$ pip3 install --upgrade pip   (--proxy=http://192.168.1.xx:3128)
$ pip3 list
$ pip3 list --outdated               # 更新モジュールを表示します。
$ pip3 list --outdated | awk 'NR>2 {print $1}' | xargs pip3 install -U
$ pip3 freeze>requirements.txt
$ pip3 install -r requirements.txt   # requirements.txt内のバージョンの
                                     # モジュールをインストールします。

1-6 Djangoプロジェクトの作成

$ django-admin startproject Config
$ mv Config Project
$ cd Project
$ python36 manage.py startapp app

Project
├── Config
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   └── settings.cpython-36.pyc
│   ├── asgi.py
│   ├── settings.py          # 各種設定
│   ├── urls.py
│   └── wsgi.py              # Web Server Gateway Interface(ウィズギー)
├── app
│   ├── __init__.py
│   ├── admin.py

│   ├── apps.py
│   ├── migrations            # データベース定義を自動的に作成管理するコードが自動生成される。
│   │   └── __init__.py
│   ├── models.py             # データベースフィルド定義
│   ├── tests.py
│   └── views.py              # GET/POST 処理
└── manage.py


1-7 settings.pyの編集

$ vi ./Config/settings.py
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'app.apps.ApiConfig',             # 追記
]


$ vi Config/urls.py
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),

    path('app/', include('app.urls',   namespace='app')),    # 追記
]


# 以下、新規ファイル作成
$ vi app/urls.py
from django.urls import path
from . import views

app_name = 'app'

urlpatterns = [
    path('',        views.Index_View.as_view(), name='index') ,
    path('index/',  views.Index_View.as_view(), name='index') ,
]


2 デーベース

2-1 mysqlデータベース設定

mysql> create database django;            # django用空DB作成

mysql> use mysql
mysql> select user, host, plugin from user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| admin            | %         | mysql_native_password |<--※
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)
mysql> quit

2-2 settings.pyの設定

$ vi Config/settings.py
import pymysql
pymysql.install_as_MySQLdb()
※  mysqlデータベースのバージョンによって初期化方法は異ります。

DATABASES = {
   'default': {
      'ENGINE': 'django.db.backends.mysql',
      'NAME': 'django',       # 予め空DBを作成しておく。
      'USER': 'admin',
      'PASSWORD':'password',
      'HOST': '',
      'PORT': '',
      'OPTIONS': {
            'charset': 'utf8mb4',
      },
      'ATOMIC_REQUESTS': True,
   },
   'service_db': {
      'ENGINE': 'django.db.backends.mysql',
      'NAME': 'service_data',   # 予め空DBを作成しておく。
      'USER': 'admin',
      'PASSWORD':'password',
      'HOST': '',
      'PORT': '',
      'OPTIONS': {
            'charset': 'utf8mb4',
      },
      'ATOMIC_REQUESTS': False,
   }
}

※  mysqlデータベースのインストール方法は省略します。

2-3 oracleの設定
# python36 -m pip install cx_oracle

ここから該当バージョンのドライバをタウンロード
https://www.oracle.com/technetwork/jp/database/features/instant-client/index-352321-ja.html
instantclient-basic-linux.x64-11.2.0.4.0.zip

# cd /opt/libs
# unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
# ln -s /opt/libs/instantclient_11_2 /opt/libs/oracle
# vi /etc/profile
export LD_LIBRARY_PATH=/opt/libs/oracle:$LD_LIBRARY_PATH
# . /etc/profile

# vi /etc/sysconfig/httpd
LD_LIBRARY_PATH=/opt/libs/oracle:$LD_LIBRARY_PATH



3. サービスの起動(デバック起動)
3-1 起動前準備

1) キャシュクリア
$ vi clean
rm -f  app/migrations/000?_initial.py
rm -f  app/migrations/000?_auto_*.py
rm -rf app/migrations/__pycache__

2) マイグレションと起動
$ vi build
echo python36 manage.py makemigrations-------------------------------
python36 manage.py makemigrations

echo python36 manage.py migrate--------------------------------------
python36 manage.py migrate

echo python36 manage.py createsuperuser------------------------------
python36 manage.py createsuperuser

echo python36 manage.py runserver 0.0.0.0:8000-----------------------
python36 manage.py runserver 0.0.0.0:8000

3-2 起動
$ ./clean
$ ./build
ユーザ名、mail、パスワード入力

※ 2回目以降のユーザ名入力は、[Cntl+C]でキャンセルする事ができます。


4. Apache連携_(20210726更新)

VENV仮想環境を構築してから下記を行う。
0) コンパイル環境とHTTPD開発環境をインストール
# dnf group install "Development Tools"
# dnf install httpd-devel
# dnf install python36-devel
# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
# dnf install MariaDB-devel

1) WSGIインストール
$ pip3 install mod-wsgi
$ pip3 install mod-wsgi-httpd
※ mod-wsgi-httpdは、少し時間がかかる


$  pip3 freeze|grep wsgi
mod-wsgi==4.8.0
mod-wsgi-httpd==2.4.46.1

# vi /etc/httpd/conf.modules.d/20-wsgi.conf
LoadModule wsgi_module /var/www/wsgi/test/myenv/venv36-d324/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

# vi /etc/httpd/conf.d/wsgi.conf

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

WSGISocketPrefix /var/run/wsgi

WSGIDaemonProcess test user=apache group=apache processes=10 threads=15 \
       home=/var/www/wsgi/test\
       python-home=/var/www/wsgi/test/myenv/venv36-d324 \
       python-path=/var/www/wsgi/test/django:/var/www/wsgi/test/myenv/venv36-d324/lib/python3.6/site-packages

WSGIScriptAlias  /test /var/www/wsgi/test/Config/wsgi.py process-group=test

Alias /static/  /var/www/wsgi/test/static/
Alias /media/   /var/www/wsgi/test/media/

WSGIPassAuthorization on

<Location /test>
       WSGIProcessGroup test
</Location>




4. Apache連携

VENV仮想環境を構築してから下記を行う。

0) コンパイル環境とHTTPD開発環境をインストール
# dnf install httpd
# dnf group install "Development Tools"
# dnf install httpd-devel

1) WSGIインストール
# pip3 install mod-wsgi
# pip3 install mod-wsgi-httpd
# ※ mod-wsgi-httpdは、少し時間がかかる。
# pip3 freeze|grep wsgi
mod-wsgi==4.6.5
mod-wsgi-httpd==2.4.35.1
# ls /usr/local/venv36/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

※ pip3 install mod-wsgiで下記エラーが発生
※RuntimeError: The 'apxs' command appears not to be installed or is not executable.
下記をインストール
# dnf install httpd-devel

2) Apache(httpd)の設定
# vi /etc/httpd/conf.modules.d/20-wsgi.conf
LoadModule wsgi_module /usr/local/venv36/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
# httpd -M|grep wsgi
wsgi_module (shared)
# vi /etc/httpd/conf.d/wsgi.conf
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300 

WSGIApplicationGroup %{GLOBAL}

WSGISocketPrefix /var/run/wsgi

WSGIDaemonProcess test user=apache group=apache processes=1 threads=100 maximum-requests=10000 \
       home=/var/www/wsgi/test \
       python-home=/var/www/wsgi/test/myenv/venv36-d324 \
       python-path=/var/www/wsgi/test/django:/var/www/wsgi/test/myenv/venv36-d324/lib/python3.6/site-packages \
       lang=ja_JP.utf8

WSGIScriptAlias  /test /var/www/wsgi/test/Config/wsgi.py process-group=test

Alias /static/  /var/www/wsgi/test/static/
Alias /media/   /var/www/wsgi/test/media/

WSGIPassAuthorization on

<Location /test>
       WSGIProcessGroup test 
</Location>


# vi /etc/sysconfig/httpd
LD_LIBRARY_PATH=/opt/libs/oracle:$LD_LIBRARY_PATH

# mkdir /var/www/wsgi

# apachectl configtest
Syntax OK
# curl localhost/analyze
# systemctl restart httpd

※pip3 install 時のエラー
ERRPR:   /bin/sh: mariadb_config: コマンドが見つかりません
# yum install MariaDB-devel
ERROR: /usr/bin/ld: -lmariadb が見つかりません
# yum install MariaDB-shared
ERROR: ImportError: Unable to find zbar shared library
# yum install zbar

5. ディレクトリ体型

Analyze                          # プロジェクト
├── Config                       # プロジェクトの設定
│   ├── routers.py
│   ├── settings.py              # 各種設定
│   ├── urls.py                  # URL(ベース)
│   └── wsgi.py
├── README
├── Users                        # ログインアプリ
│   ├── __init__.py
│   ├── __pycache__
│   ├── migrations
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── models.py                # データベースが自動生成される。
│   ├── tests.py
│   ├── urls.py
│   └── views.py                 # リクエスト(get/post)を受けてレスポンスを返す。
├── api                          # クラウドAPI
│   ├── __init__.py
│   ├── __pycache__
│   ├── admin.py
│   ├── apis_net.py
│   ├── apis_ttg.py
│   ├── apps.py
│   ├── database_net.py
│   ├── database_ttg.py
│   ├── errors.py
│   ├── main.py
│   ├── models.py
│   ├── sliputil.py
│   ├── tables.py
│   ├── tests.py
│   ├── totalizer.py
│   ├── urls.py
│   └── views.py
├── app                          # 顧客情報照会アプリ
│   ├── __init__.py
│   ├── __pycache__
│   ├── migrations
│   ├── admin.py
│   ├── apps.py
│   ├── business.py
│   ├── forms.py
│   ├── jasper.py
│   ├── models.py
│   ├── ora2xls.py
│   ├── oracle.py               # oracle sql クラス定義
│   ├── oracle_base.py          # oracle sql ベースクラス
│   ├── oracle0.py              # oracle sql ファイル(サンプル)
│   ├── oracle1.py              # oracle sql ファイル(コールセンター用SQL)
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── menu                          # メニューアプリ
│   ├── __init__.py
│   ├── __pycache__
│   ├── migrations
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── menus.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── shop                         # レジ検証アプリ(ネットショップ)
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── core
│   │   ├── README
│   │   ├── carts.py
│   │   ├── cipher.py
│   │   ├── cloud.py
│   │   ├── databases.py
│   │   ├── payments.py
│   │   ├── settings.py
│   │   └── slips.py
│   ├── forms.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   ├── utils.py
│   └── views.py

├── assets                       # static 収集領域
├── static                       # static 格納場所(bootstrap,js,css 等 )
├── media                        # upload 等領域
├── templates                    # Django テンプレート
│   ├── Users
│   ├── app
│   ├── menu
│   └── shop

├── env                          # 仮想環境設定シェル
├── clean                        # キャッシュ/マイグレション情報クリアシェル
└── build                        # マイグレーション&デバック実行


6. djangoフレームワーク

6-1 構造


    DB────>sql────>VIEW────>context──── template── SCREEN(data table)  # 検索、並び換えが可能
                             │                  └──>SCREEN(chartjs)    # 各種グラフ
                             ├─── jasperReport(pdf)
                             ├─── jasperReport(excel)   # ページ区切り有
                             ├─── jasperReport(csv)     # ページ区切り有
                             ├─── jasperReport(json)    # ページ区切り有
                             ├─── dataGenerator(excel)  # ページ区切り無
                             ├─── dataGenerator(csv)    # ページ区切り無
                             └─── dataGenerator(json)   # ページ区切り無


views.py

  context ={ 'fields':{ 'key1':val1, 'key2:val2 } }

template.html

       {% for key, val in fields.items %}
          {{ key }}:{{ val }}
       {% endfor %}


  ※  python 表記

       fields = context[ 'fields' ]
       for key , val in fields.items():
          print( key, ':', val )

2020年6月4日木曜日

CentOS8 samba インストール

【amazon linux2023 samba 設定】
# dnf -y install samba
# vi  /etc/samba/usershares.conf <<__EOF__
[data]
 comment = Share Folder for All Users
 path = /data
 browsable = yes
 writable = yes
 read only = no
 create mask = 755
__EOF__

# mkdir /data
# chmod -R a+rwx  /data
# chown -R nobody:nobody /data

# useradd  user01
# smbpasswd -a user01
systemctl start smb nmb
 systemctl enable smb nmb

# smbstatus -S                                            # サーバ側
# dnf install samba-client                      # client 側
# smbclient -L //localhost -U sysadm

#-----------------------------------------------------------------------------------------
#----------以下 2020 6/4 -----------------------------------------------------------
sh-4.4# dnf -y install samba
sh-4.4#  which smbd nmbd
/sbin/smbd
/sbin/nmbd
sh-4.4# systemctl start smb nmb
sh-4.4#  systemctl enable smb nmb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.

sh-4.4# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp39s0
  sources:
  services: cockpit dhcpv6-client mysql ssh
  ports: 3389/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

sh-4.4#  firewall-cmd --add-service=samba --permanent
success
sh-4.4#  firewall-cmd --reload
success
sh-4.4#  firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp39s0
  sources:
  services: cockpit dhcpv6-client mysql samba ssh
  ports: 3389/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

sh-4.4# vi /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
workgroup = WORKGROUP
server string = SAMBA SERVER Version %v
netbios name = fs
security = user

passdb backend = tdbsam

dos charset = CP932
wins support = yes
# printing = cups
# printcap name = cups
load printers = no
disable spoolss = yes
# cups options = raw

[Share]
comment = Share Folder for All Users
path = /home/share/
browsable = yes
read only = no

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

#[printers]
# comment = All Printers
# path = /var/tmp
# printable = Yes
# create mask = 0600
# browseable = No
#
#[print$]
# comment = Printer Drivers
# path = /var/lib/samba/drivers
# write list = @printadmin root
# force group = @printadmin
# create mask = 0664
# directory mask = 0775
sh-4.4#
sh-4.4# cd /home
sh-4.4# mkdir share
sh-4.4# chmod -R a+rwx share
sh-4.4# chown -R nobody:nobody share
sh-4.4# # systemctl restart smb nmb
sh-4.4# systemctl status smb nmb
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-06-04 15:22:26 JST; 59min ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 27908 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 26213)
   Memory: 19.7M
   CGroup: /system.slice/smb.service
           ├─27908 /usr/sbin/smbd --foreground --no-process-group
           ├─27911 /usr/sbin/smbd --foreground --no-process-group
           ├─27912 /usr/sbin/smbd --foreground --no-process-group
           └─27913 /usr/sbin/smbd --foreground --no-process-group

 6月 04 15:22:26 libra.jp systemd[1]: Starting Samba SMB Daemon...
 6月 04 15:22:26 libra.jp smbd[27908]: [2020/06/04 15:22:26.332766,  0] ../../lib/util/become_daemon.c>
 6月 04 15:22:26 libra.jp smbd[27908]:   daemon_ready: daemon 'smbd' finished starting up and ready to>
 6月 04 15:22:26 libra.jp systemd[1]: Started Samba SMB Daemon.

● nmb.service - Samba NMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-06-04 15:22:26 JST; 59min ago
     Docs: man:nmbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 27909 (nmbd)
   Status: "nmbd: ready to serve connections..."
    Tasks: 1 (limit: 26213)
   Memory: 5.3M
   CGroup: /system.slice/nmb.service
           └─27909 /usr/sbin/nmbd --foreground --no-process-group

 6月 04 15:23:00 libra.jp nmbd[27909]:
 6月 04 15:23:00 libra.jp nmbd[27909]:   Samba name server LIBRA is now a local master browser for wor>
 6月 04 15:23:00 libra.jp nmbd[27909]:
 6月 04 15:23:00 libra.jp nmbd[27909]:   *****
 6月 04 15:23:00 libra.jp nmbd[27909]: [2020/06/04 15:23:00.369477,  0] ../../source3/nmbd/nmbd_become>
 6月 04 15:23:00 libra.jp nmbd[27909]:   *****
 6月 04 15:23:00 libra.jp nmbd[27909]:
 6月 04 15:23:00 libra.jp nmbd[27909]:   Samba name server LIBRA is now a local master browser for wor>
 6月 04 15:23:00 libra.jp nmbd[27909]:
 6月 04 15:23:00 libra.jp nmbd[27909]:   *****


sh-4.4# pdbedit -a -u takahab -f "Masanobu Takahashi"
new password:
retype new password:
Unix username:        takahab
NT username:       
Account Flags:        [U          ]
User SID:             S-1-5-21-3479312465-2406587434-1385072247-1000
Primary Group SID:    S-1-5-21-3479312465-2406587434-1385072247-513
Full Name:            Masanobu Takahashi
Home Directory:       \\fs\takahab
HomeDir Drive:     
Logon Script:       
Profile Path:         \\fs\takahab\profile
Domain:               FS
Account desc:       
Workstations:       
Munged dial:       
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    木, 04  6月 2020 16:03:13 JST
Password can change:  木, 04  6月 2020 16:03:13 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
sh-4.4# pdbedit -L
takahab:1000:Masanobu Takahashi
sh-4.4# pdbedit -L -v -w
---------------
Unix username:        takahab
NT username:       
Account Flags:        [U          ]
User SID:             S-1-5-21-3479312465-2406587434-1385072247-1000
Primary Group SID:    S-1-5-21-3479312465-2406587434-1385072247-513
Full Name:            Masanobu Takahashi
Home Directory:       \\fs\takahab
HomeDir Drive:     
Logon Script:       
Profile Path:         \\fs\takahab\profile
Domain:               FS
Account desc:       
Workstations:       
Munged dial:       
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    木, 04  6月 2020 16:03:13 JST
Password can change:  木, 04  6月 2020 16:03:13 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
LM hash             : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
NT hash             : 2C356A91505CE6E3673D17DDB5BCC0E4

2020年5月13日水曜日

Django Object of type 'UUID' is not JSON serializable

Django のpkをuuid に変えたところ、

ERROR :   Object of type 'UUID' is not JSON serializable

下記で解消。

vi models.py
#
# Fixed for the following error by takahab
# ERROR: Object of type 'UUID' is not JSON serializable
#
#--------------------ここから-------------------------------
from json import JSONEncoder
from uuid import UUID
JSONEncoder_olddefault = JSONEncoder.default
def JSONEncoder_newdefault(self, o):
    if isinstance(o, UUID): return str(o)
    return JSONEncoder_olddefault(self, o)
JSONEncoder.default = JSONEncoder_newdefault
#-----------------ここまで----------------------------------

NEXTJS PWA化

$ cd frontend $ npm install @ducanh2912/next-pwa $ vi next.config.ts<<__EOF__ import withPWAInit from "@ducanh2912/next-pwa"...