小編習𠍿在tmux 裡使用 F11/F12 切換視窗
自從送修了macbook ,換了個螢幕,系統也被清除了,從此 F11 就壞了
查了一下google 大神,原來F11 被"指揮中心"用掉了
我個人是不太用指揮中心,所以就 .. 幹掉他
MacOS:flush DNS cache
MacOS 10.11 以後
Linux:限制使用者登入(LDAP適合),利用 pam_access 模組
簡易的需求範例,root , mis群組 可登入,其餘禁止 , 利用 pam_access.so
/etc/security/access.conf
+ : root : ALL + : (mis) : ALL - : ALL : ALL
/etc/pam.d/sshd , 取消 pam_access.so 的 mark
#account required pam_access.so -> account required pam_access.so
設定完就直接生效了,請留意 access.conf 設定
其他常見寫法
[+|-] : [user|(group)] : [ALL|ttyx|IPv4|IPv6|domain] + : allow - : deny user : root , All , other_user (Group) : (root) ,(user) , (other_group) IPv4 : 127.0.0.1 IPv6 : ::1 Domain : foo.com# root 只能從 127.0.0.1 登入 + : root : 127.0.0.1 #mis 群組 和 wang 這個user 可以從任人何地方登入 + : (mis) wang : ALL #其餘拒絕 - : ALL : ALL
Linux: sudo 免用密碼設定範例
編輯 sudo 設定檔
visudo
指定帳號 sudo 免密碼
#單帳號 user1 ALL=NOPASSWD: ALL # “%” 為群組 %user ALL=NOPASSWD: ALL
指定帳號 sudo 特定程式免密碼
user1 ALL=NOPASSWD:/bin/chmod
指定帳號 sudo 特定程式+特定操作免密碼
user1 ALL=NOPASSWD:/bin/chmod [0–7][0-5][0–5] /var/www/html/,/bin/chown root:root /var/www/html/
切換 root 環境,需密碼操作
%mis ALL=(ALL) PASSWD: /bin/bash, /bin/sh
Msyql:mysql_config_editor 免密碼登入-加密版
在批次處理 mysql 作業,為免去人工輸入密碼,通常有三種做法,我還是小嫩嫩的時候都是用第一種…
- 直接在bash 填入密碼,簡單好用但是不安全,mysql 還會發警告
mysql -uroot -pxxxx Warning: Using a password on the command line interface can be insecure
- 針對所有使用者免必密碼-修改my.cnf
vim /etc/my.cnf [client] user=“root” password=“xxxx”
2–1 針對個別使用者的免密碼-在自己的家目錄建立~/.my.cnf
vim ~/.my.cnf [client] user=“root” password=“xxxx”
最好加個權限控管,因為“明碼”,你知道的! chmod 600 ~/.my.cnf
接著 打入mysql -uroot 就可操作 mysql 了
以上都是明碼,我也不太喜歡,還好 mysql 出了第三種方法,就是 mysql_config_editor
host: mysql_config_editor set –login-path=name –host=localhost –user=root –password Enter password: (input) “xxxx”Socket: mysql_config_editor set -G name -S /tmp/mysql.sock -u root -p Enter password: (input) “xxxx”
-h,–host=name 添加host到登陸文件中 -G,–login-path=name 在登錄文件中為login path添加名字(默認為client) -p,–password 在登陸文件中添加密碼(該密碼會被mysql_config_editor自動加密) -u,–user 添加用戶名到登陸文件中 -S,–socket=name 添加sock文件路徑到登陸文件中 -P,–port=name 添加port到登陸文件中
接著你就會發現在家目錄下有個 ~/.mylogin.cnf 加密的二進制檔案,相對安全[不會有人承諾100%安全的..],你可以用以下指令查看已建置的內容
mysql_config_editor print –all
然後使用以下指令操作mysql
mysql –login-path=name
移除設定
mysql_config_editor remove –login-path=name
更多說明請見 https://dev.mysql.com/doc/refman/5.7/en/mysql-config-editor.html
Percoan 體系注意:
Percona client 5.7 找不到 mysql_config_editor 的解法
apt install libperconaserverclient20-dev #注意:有可能會連mysql-server 一起update,production 環境要留意
PVE:lxc:TASK ERROR: clone failed: zfs error: cannot create use ‘none’ to disable quota/refquota
當clone lxc 時出現:
依字面意思去檢查了zfs 的設定
pve> zfs get quota,refquota data/subvol–108-disk–0 NAME PROPERTY VALUE SOURCE data/subvol–116-disk–0 quota none default data/subvol–116-disk–0 refquota none default
看似沒有問題,卻依然無法成功
比對了跟可以正常clone 的lxc ,原來 refquota 不是none
難道是我英文不好… 依原始HD大小修改一下設定
pve> zfs set refquota=8G data/subvol–108-disk–0
就可以clone了[拍手]
Mysql:5.7 sql_mode 新預設值
通常遇到升到5.7 ,又沒改default value,會碰到2個問題
- datetime default value 是 0000–00–00 00:00:00 不給建table
- group by 在 select 中,必需明確定義(不能是只是‘*’)
都不難解,但取決於是開發階段還是升級,開發階段就改code 符合mysql 吧, 嚴謹總是比較好!
至於升級… 訂定目標吧
無奈解法:改回5.6 的預設值(記得也要修改mysql.cnf):
1 2 3 4 5 6 7 8 9 10 11 |
快速查詢 Select @@sql_mode; 動態設定 SET GLOBAL sql_mode=’NO_ENGINE_SUBSTITUTION’; my.cnf sql_mode=NO_ENGINE_SUBSTITUTION |
Mysql 5.7 預設 sql mode 說明
ONLY_FULL_GROUP_BY
在嚴格模式下,不要讓GROUP BY部分中的查詢指向未選擇的列,否則報錯。
NO_ZERO_DATE
在嚴格模式,不要將’0000–00–00’做為合法日期。你仍然可以用IGNORE選項插入零日期。在非嚴格模式,可以接受該日期,但會生成警告。
NO_ZERO_IN_DATE
在嚴格模式,不接受月或日部分為0的日期,對年不限制。如果使用IGNORE選項,我們為類似的日期插入’0000–00–00’。在非嚴格模式,可以接受該日期,但會生成警告。
ERROR_FOR_DIVISION_BY_ZERO
在嚴格模式,在INSERT或UPDATE過程中,如果被零除(或MOD(X,0)),則產生錯誤(否則為警告)。如果未給出該模式,被零除時MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作結果為NULL。
NO_AUTO_CREATE_USER
在嚴格模式下,防止GRANT自動建立新使用者,除非還指定了密碼。
NO_ENGINE_SUBSTITUTION
如果需要的儲存引擎被禁用或未編譯,可以防止自動替換儲存引擎。
STRICT_TRANS_TABLES
為事務儲存引擎啟用嚴格模式,也可能為非事務儲存引擎啟用嚴格模式,非法資料值被拒絕,下面有詳細說明。
嚴格模式控制MySQL如何處理非法或丟失的輸入值。有幾種原因可以使一個值為非法。例如,資料型別錯誤,不適合列,或超出範圍。當新插入的行不包含某列的沒有顯示定義DEFAULT子句的值,則該值被丟失。
對於事務表,當啟用STRICT_ALL_TABLES或STRICT_TRANS_TABLES模式時,如果語句中有非法或丟失值,則會出現錯誤。語句被放棄並滾動。
對於非事務表,如果插入或更新的第1行出現壞值,兩種模式的行為相同。語句被放棄,表保持不變。如果語句插入或修改多行,並且壞值出現在第2或後面的行,結果取決於啟用了哪個嚴格選項:
對於STRICT_ALL_TABLES,MySQL返回錯誤並忽視剩餘的行。但是,在這種情況下,前面的行已經被插入或更新。這說明你可以部分更新,這可能不是你想要的。要避免這點,最好使用單行語句,因為這樣可以不更改表即可以放棄。
對於STRICT_TRANS_TABLES,MySQL將非法值轉換為最接近該列的合法值並插入調整後的值。如果值丟失,MySQL在列中插入隱式 預設值。在任何情況下,MySQL都會生成警告而不是給出錯誤並繼續執行語句。
嚴格模式不允許非法日期,例如’2004–04–31’。它不允許禁止日期使用“零”部分,例如’2004–04–00’或”零”日期。要想禁止,應在嚴格模式基礎上,啟用NO_ZERO_IN_DATE和NO_ZERO_DATE SQL模式。
如果你不使用嚴格模式(即不啟用STRICT_TRANS_TABLES或STRICT_ALL_TABLES模式),對於非法或丟失的值,MySQL將插入調整後的值並給出警告。在嚴格模式,你可以通過INSERT IGNORE或UPDATE IGNORE來實現。
Mysql: ALL PRIVILEGES 帳號依然無開帳號 ( ERROR 1044)
一直以來用root@localhost 開帳號都沒什麼問題,開了一個[email protected] 給dev 用,就出問題了
1 2 |
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON `t_table`.* TO 't_user'@'%' IDENTIFIED BY "xxxx"; ERROR 1044 (42000): Access denied for user 'root'@'127.0.0.1' to database 't_table' |
檢查一下權限,發現也沒問題
1 2 3 4 5 6 |
mysql > show grants; +—————————————————+ | Grants for root@127.0.0.1 | +—————————————————+ | GRANT ALL PRIVILEGES ON *.* TO ‘root’@’127.0.0.1’ | +—————————————————+ |
再往下查
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
mysql> select * from mysql.user where user='root' \G *************************** 1. row *************************** Host: localhost User: root Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: Y References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: Y Create_tablespace_priv: Y ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: mysql_native_password authentication_string: *xx password_expired: N password_last_changed: 2019-08-28 02:24:39 password_lifetime: NULL account_locked: N *************************** 2. row *************************** Host: 127.0.0.1 User: root Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: Y Create_tablespace_priv: Y ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: mysql_native_password authentication_string: *xx password_expired: N password_last_changed: 2019-08-28 03:50:21 password_lifetime: NULL account_locked: N 2 rows in set (0.00 sec) |
眼尖的你有發現嗎 ?
“Grant_priv: N”
查了一下google 大神,原來必需要有 Grant_priv 才能 Grant, 卻不包含在 ALL PRIVILEGES 裡
解法:
1 2 |
mysql> UPDATE mysql.user SET Grant_priv = ‘Y’ WHERE user = ‘root’ AND host = ‘127.0.0.1’; mysql> flush privileges; |
打完收工!
linux-nslcd(LDAP) thread 調整
nslcd default threads = 5
啟動 nslcd 即有5條thread 對 LDAP server 連連
不懂預設值為什麼要設定這麼大
因為我有200台VM,LDAP 就要吃一千條連線
不過有大量登入需求可能真需要放大,但我目前沒有這種服務..
1 2 3 4 |
vim /etc/nslcd.conf threads = 2 /etc/init.d/nslcd restart |
打完收工
update :
查找 ldap 連線
1 2 3 4 |
簡易版 lsof -i tcp:389 進階版 netstat -anp | grep :389 | awk '{split($5,IP,/:/); print IP[1],$7 }' | sort | uniq -c | sort -g | awk '{ print $0 ; count+=$1 } END{ print "Total:",count }' |
MacOS-mkvtoolnix-mkv 編輯指令
mkvtoolnix
mkvtoolnix 可以拿來做 mkv 簡單的併接,剪裁,字幕加減等等
缺點是在mac 上不支援GUI
安裝:
1 |
brew install mkvtoolnix |
會產以下4個tool
mkvextract mkvinfo mkvmerge mkvpropedit
本次僅使用 add srt 的功能
1 2 3 |
mkvmerge -o out.mkv source.mkv sub.srt or mkvmerge -o out.mkv source.mkv –language 0:chi –track-name 0:zh_TW sub.srt |
languages 有iso , 可用以下指令查詢
mkvmerge –list-languages
4G 檔案走SMB,大概只花了不到5分鐘,蠻快的