IT graph

気になったデバイスやプログラムで楽しくやっていけたら良いなと思っております。

Linux group / id / accesslist

■グループの追加・削除・変更
groupadd
groupdel
groupmod

■ユーザーの追加・削除・変更
useradd
  groupも同じ名前になる
userdel
usermod

■パスワードの設定
passwd
gpasswd

■ユーザーをグループに追加・削除
usermod -aG
gpasswd -a/-d/-M

■設定・データベースの確認
getent
  $ getent passwd
  $ getent group

id
groups

■アクセス制御リスト
 getfacl
 setfacl -m g:グループ名:rwx ディレクトリ名
  読み取りの場合でも実行権限が必要っぽい
 setfacl -m d:g:グループ名:rwx ディレクトリ名
 配下の階層でmkdirを行った場合に、アクセス制御リストが引き継がれる。
  上の設定と両方必要。

■アクセス権限設定
 chmod 2XXX
  ディレクトリのオーナーグループとしてファイルを編集する
   既に存在するファイルの場合は、オーナーもオーナーグループも変更しない
   新しくファイルを作成する場合は、オーナーは自分でオーナーグループはディレクトリのオーナーグループと同じ

  

C言語の文字列について

以下のように6文字サイズのchar型変数に6文字を入れた場合

char str2[5] = "test23";
import numpy as np
arr = np.array([1, 2, 3])

以下のようにコンパイル時に警告がでる

hello.c:5:16: 警告: initializer-string for array of ‘char’ is too long
    5 | char str2[5] = "test23";
      |                ^~~~~~~~

以下のように6文字分のサイズに5文字を入れた場合

char str2[5] = "test2";

エラーにならず正常に稼働する

out2-0:t
out2-1:e
out2-2:s
out2-3:t
out2-4:2
out2-5:

16進数表記(utf8)で出力すると最期はnullであることがわかる

out2-0:74
out2-1:65
out2-2:73
out2-3:74
out2-4:32
out2-5:0

clang prinft

printf 標準出力を使う printf(出力文字フォーマット, 出力する変数や値)
sprintf メモリを使う sprinf(出力先アドレス, 出力文字フォーマット, 出力する変数や値)
fprintf ファイルを使う fprintf(出力先ファイル,出力文字フォーマット, 出力する変数や値)
 fprintfの出力先にstdoutを指定すれば標準出力へ出力される

red hat epel install

[root@localhost ~]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:27:40 前の 2024年03月17日 13時15分22秒 に実施しました。
epel-release-latest-9.noarch.rpm 18 kB/s | 19 kB 00:01
依存関係が解決しました。
==============================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
==============================================================================================================================
インストール:
epel-release noarch 9-7.el9 @commandline 19 k

トランザクションの概要
==============================================================================================================================
インストール 1 パッケージ

合計サイズ: 19 k
インストール後のサイズ: 26 k
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : epel-release-9-7.el9.noarch 1/1
scriptletの実行中: epel-release-9-7.el9.noarch 1/1
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.

検証 : epel-release-9-7.el9.noarch 1/1
インストール済みの製品が更新されています。

インストール済み:
epel-release-9-7.el9.noarch

完了しました!
[root@localhost ~]#

ssh

SSHコマンド
 ssh user@host

■ポート確認
 traceroute -T -p 22 host
nmap host (scanしに行くので使う際は注意)

MACについて
 macsshを行う際にconnection refusedが出る場合は、
 「システム環境設定」>「共有」>「リモートログイン」にチェックを入れる

秘密鍵/公開鍵の作成
 ・ssh-kegenで基本的にすべてemptyで登録。
 ・デフォルトはユーザディレクトリ配下の.sshディレクトリ配下に作成される
 ・すでに存在する場合は、更新するかどうかを確認される
 ・以下ファイルが作成される
  authorised_key
  id_rsa (秘密鍵)
  id_rsa.pub (公開鍵)
  known_hosts
  known_hosts.old

■公開鍵のコピー
  ssh-copy-id user@host
  コピー先の.ssh配下のauthorized_keysが更新される