Linux基礎介紹【第七篇】

来源:http://www.cnblogs.com/yinshoucheng-golden/archive/2016/12/30/6236471.html
-Advertisement-
Play Games

linux用戶分類 超級用戶:UID=0,root 普通用戶:UID 500起,由超級用戶或具有超級用戶許可權的用戶創建的用戶。 虛擬用戶:UID 1—499,為了滿足文件或服務啟動的需要而存在,一般都不能登錄,只是傀儡用戶。 用戶關聯的四個文件: /etc/passwd:用戶的賬號文件 /etc/s... ...


linux用戶分類

超級用戶:UID=0,root

普通用戶:UID 500起,由超級用戶或具有超級用戶許可權的用戶創建的用戶。

虛擬用戶:UID 1—499,為了滿足文件或服務啟動的需要而存在,一般都不能登錄,只是傀儡用戶。

用戶關聯的四個文件:

/etc/passwd:用戶的賬號文件

/etc/shadow:用戶的密碼文件

/etc/group:組的賬號文件

/etc/gshadow:組的密碼文件

賬號管理

useradd(增):同adduser命令,執行此命令可在系統中添加用戶。

userdel(刪):執行此命令可刪除用戶及相關用戶的配置或文件。

usermod(改):修改用戶的命令,可以通過usermod來修改登錄名、用戶的家目錄等。

usermod -s /sbin/nologin oldboy

usermod -s /bin/bash oldboy

id(查):查看用戶的UID、GID及所歸屬的用戶組。

passwd:執行此命令可為用戶設置密碼,更改/etc/shadow。

chage:修改用戶密碼有效期限,管理/etc/shadow。

su:用戶角色切換工具。

sudo:sudo是通過另一個用戶來執行命令,su是用來切換用戶,然後通過切換到的用戶來完成相應的任務,但sudo能在命令後面直接接命令執行,比如sudo ls /root,不需要root密碼就可以執行只有root才能執行相應的命令或具備的目錄許可權;這個許可權需要通過visudo命令或直接編輯/etc/sudoers來實現。

visudo:visudo配置sudo許可權的編輯命令,也可以直接用vi編輯/etc/sudoers實現,推薦使用visudo來操作(會自動檢查語法)。

/etc/skel目錄

/etc/skel目錄是用來存放新用戶配置文件的目錄,當我們添加新用戶時,這個目錄下的所有文件會自動被覆制到新添加的用戶的家目錄下;預設情況下,/etc/skel目錄下的所有文件都是隱藏文件(以點開頭的文件);通過修改、添加、刪除/etc/skel目錄下的文件,可以為新建的用戶提供統一的、標準的、初始化用戶環境。

刪除/home/用戶家目錄 中的.bash_logout、.bash_profile、.bashrc產生的效果:-bash-4.1$

  1. [root@oldboy xiao1]# rm -f .bash
  2. .bash_logout .bash_profile .bashrc
  3. [root@oldboy xiao1]# rm -f .bash*
  4. [root@oldboy xiao1]# su - xiao1
  5. -bash-4.1$

解決辦法:

從/etc/skel中拷貝.bash_logout、.bash_profile、.bashr到用戶家目錄即可解決。

  1. -bash-4.1$ cp /etc/skel/.bash* /home/xiao1/
  2. -bash-4.1$ logout
  3. [root@oldboy ~]# su - xiao1

/etc/login.defs配置文件

/etc/login.defs文件是用來定義創建用戶時需要的一些用戶的配置信息。如創建用戶時,是否需要家目錄,UID和GID的範圍,用戶及密碼的有效期限等。

/etc/default/useradd文件

/etc/default/useradd文件是在使用useradd添加用戶時的一個需要調用的一個預設文件,可以使用"useradd -D 參數",這樣的命令格式來修改文件裡面的內容。

  1. [root@oldboy ~]# cat /etc/default/useradd
  2. # useradd defaults file
  3. GROUP=100 #依賴於/etc/login.defs的USERGROUPS_ENAB參數,如果為no則此處控制。
  4. HOME=/home #把用戶的家目錄創建在/home中
  5. INACTIVE=-1 #是否啟用賬號過去停權,-1表示不啟用
  6. EXPIRE= #賬號終止日期,不設置表示不啟用
  7. SHELL=/bin/bash #新用戶預設所用的shell類型
  8. SKEL=/etc/skel #配置新用戶家目錄的預設文件存放存放路徑,當用useradd添加用戶時,用戶家目錄下的文件,都從這裡配置的目錄中複製過去。
  9. CREATE_MAIL_SPOOL=yes #創建mail文件

useradd命令

useradd參數選項

註釋說明

-c comment

新賬號passwd擋的說明欄

-d home_dir

新賬號每次登入時所使用的home_dir。預設值為default_home內login名稱,並當成登入時目錄名稱。

-e expire_date

賬號終止日期。日期的指定格式為MM/DD/YY。

-f inactive_days

賬號過期幾日後永久停權。當值為0時賬號則立刻被停權。而當值為-1時則關閉此功能,預設值為-1。

-g initial_group

group名稱或以數字來做為用戶登入起始用戶組(group)。用戶組名須為系統現有存在的名稱。用戶組數字也須為現有存在的用戶組。預設的用戶組數字為1。

-G group,[…]

定義此用戶為多個不同groups的成員。每個用戶組使用","逗號分隔。用戶組名同-g選項的限制。預設值為用戶的起始用戶組。

-m

用戶目錄如不存在則自動建立。如使用-k選項,skeleton dir內的檔案將複製至用戶目錄下。然而在/etc/skel目錄下的檔案也會複製過去。任何在skeleton_diror /etc/skel的目錄也相同會在用戶目錄下一一建立。The-k同-m不建立目錄以及不複製任何檔案為預設值。

-M

不建立用戶家目錄,優先於/etc/login.defs文件的設定。一般創建虛擬用戶時不建立家目錄,部署服務時需要創建虛擬用戶。

-n

預設情況下用戶的用戶組與用戶的名稱會相同。如果命令加了-n參數就不會生成和用戶名的用戶組了。

-s shell

用戶登入後使用的shell名稱。預設值為不填寫,這樣系統會指定預設的登入shell(根據/etc/default/useradd預設的值)。

-u uid

用戶的ID值。這個值必須是唯一的,除非用-o選項。數字不可為負值。

useradd -e、-u、-G、-s、-d多參數組合的例子:

添加用戶oldboy,並設置用戶註釋信息為HandsomeBoy,UID指定為806,歸屬為用戶組root、oldboy、sa成員,其shell類型為/bin/sh,設置家目錄為/oldboy。

  1. [root@oldboy ~]# useradd -c "HandsomeBoy" -u 806 -G root,sa,oldboy -s /bin/sh -d /oldboy6 oldboy6
  2. [root@oldboy ~]# tail -1 /etc/passwd
  3. oldboy6:x:806:806:HandsomeBoy:/oldboy6:/bin/sh
  4. [root@oldboy ~]# id oldboy6
  5. uid=806(oldboy6) gid=806(oldboy6) groups=806(oldboy6),0(root),510(oldboy),511(sa)

groupadd命令

groupadd參數選項

註釋說明

-g gid

指定用戶組GID值。除非接-o參數(如:groupadd -g gid)否則ID值必須是唯一的數字(不能為負數)。如果不指定會從500開始。

passwd命令

passwd參數選項

註釋說明

--stdin

從stdin讀入密碼

-k --keep-tokens

保留即將過期的用戶在期滿後仍能使用

-d --delete

刪除用戶密碼,僅能以root許可權操作

-l --lock

鎖住用戶無權更改其密碼,僅能通過root許可權操作

-u --unlock

解除鎖定

-f --force

強制操作,僅root許可權才能操作

-x --maximum=DAYS

兩次密碼修改的最大天數,後面接數字,僅能root許可權操作

-n --mininum=DAYS

兩次密碼修改的最小天數,後面接數字,僅能root許可權操作

-w --warning=DAYS

在距多少天提醒用戶修改密碼,僅能root許可權操作

-i --inactive=DAYS

在密碼過期後多少天,用戶被禁掉,僅能root許可權操作

-S --status

查詢用戶的密碼狀態,僅能root許可權操作

  1. [root@oldboy ~]# echo 123456|passwd --stdin oldboy
  2. [root@oldboy ~]# echo 123456 >p.log
  3. [root@oldboy ~]# passwd --stdin < p.log

oldboy用戶7天內不能更改密碼,60天以後必須修改密碼,過期前10天提示,過期後30天後禁止用戶登錄。

  1. [root@oldboy ~]# passwd -n 7 -x 60 -w 10 -i 30 oldboy
  2. Adjusting aging data for user oldboy.
  3. passwd: Success
  4. [root@oldboy ~]# chage -l oldboy
  5. Last password change : Dec 29, 2016 #最後密碼更換時間
  6. Password expires : Feb 27, 2017 #密碼過期時間
  7. Password inactive : Mar 29, 2017 #密碼停權時間
  8. Account expires : never
  9. Minimum number of days between password change : 7 #最小修改時間間隔
  10. Maximum number of days between password change : 60 #最大修改時間間隔
  11. Number of days of warning before password expires : 10 #警告時間
  12. [root@oldboy ~]#

/etc/shadow中查看

  1. [root@oldboy ~]# grep "\boldboy\b" /etc/shadow
  2. oldboy:!!:17164:7:60:10:30::

批量創建10個用戶stu01-stu10,並且設置隨機8位密碼,要求不能用shell迴圈(for、while等),只能用命令及管道實現。

echo stu{1..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1#g';

使用SHA演算法來加密日期,並輸出結果的前8個字元:

date +%s | sha256sum | base64 | head -c 8 ; echo

echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|passwd --stdin \1; echo -e "\1 \t `echo "$pass"`">>/tmp/oldboy.log#g'|bash

修改用戶密碼有效期限相關命令chage

用法:chage [選項] 用戶名

chage參數選項

註釋說明

-d --lastday

最近日期,將最近一次密碼設置時間設為"最近日期"

-E --expiredate

將賬戶過期時間設為"過期日期",日期寫法:MM/DD/YY

-h --help

顯示此幫助信息並退出

-l --list

顯示賬戶年齡信息

-m --mindays

最小天數,將兩次改變密碼之間相距的最小天數設為"最小天數"

-M --maxdays

最大天數,將兩次改變密碼之間相距的最大天數設為"最大天數"

-W --warndays

警告天數,將過期警告天數設為"警告天數"

-I --inactive

失效天數,在密碼過期後多少天,用戶被禁掉

修改賬戶過期時間:

  1. [root@oldboy ~]# chage -E ""2017/01/01 oldboy

查看賬戶的狀態:

  1. [root@oldboy ~]# chage -l oldboy
  2. Last password change : Dec 29, 2016
  3. Password expires : Feb 27, 2017
  4. Password inactive : Mar 29, 2017
  5. Account expires : Jan 01, 2017
  6. Minimum number of days between password change : 7 #7天內禁止修改密碼
  7. Maximum number of days between password change : 60 #60天後必須修改密碼
  8. Number of days of warning before password expires : 10 #過期前10天提醒oldboy修改密碼

oldboy用戶8天內不能更改密碼,61天以後必須修改密碼,過期前11通知用戶,過期後31天後禁止用戶登錄。

  1. [root@oldboy ~]# chage -m 8 -M 61 -W 11 -I 31 oldboy
  2. [root@oldboy ~]# chage -l oldboy
  3. Last password change : Dec 29, 2016
  4. Password expires : Feb 28, 2017
  5. Password inactive : Mar 31, 2017
  6. Account expires : Jan 01, 2017
  7. Minimum number of days between password change : 8
  8. Maximum number of days between password change : 61
  9. Number of days of warning before password expires : 11

與passwd -n 8 -x 61 -w 11 -i 31 oldboy、chage -m8 -M61 -W10 -I30 oldboy功能相同只是參數不一樣。

刪除用戶相關命令userdel

語法格式:userdel 用戶名 或語法格式:userdel 用戶名 -r

在生產場景中,不要輕易使用-r參數,這會在刪除用戶的同時刪除用戶家目錄下的所有的文件和目錄。如果一定要刪除家目錄,那麼在刪除前先備份。直接在/etc/passwd中註釋要刪除的用戶記錄是生產場景中常用的方法。

刪除用戶組相關命令groupdel

groupdel是用來刪除用戶組的,要求用戶組名必須是已存在的。用groupdel刪除用戶組實際修改/etc/group(用戶組文件)和/etc/gshadow(用戶組加密文件)。

語法格式:groupdel 用戶組

查看用戶組:

grep 用戶組 /etc/group

grep 用戶組 /etc/gshadow

用戶信息修改相關命令usermod

usermod參數選項

註釋說明

-e expire_date

加上用戶賬號停止日期。日期格式為MM/DD/YY。

-g initial_group

更新用戶新的起始登入用戶組。用戶組名必須已存在。

-U

取消凍結用戶的密碼,使恢復登錄,實際同樣是修改/etc/shadow的

-G group,[…]

定義用戶為一堆groups的成員。每個用戶組只用","逗號隔開。

-l login_name

變更用戶login時的名稱為login_name。其餘信息不變。usermod -l newname oldname

-s shell

指定新登入shell。

-u uid

指定用戶UID只。這個值必須是唯一的,除非接-o參數,如usermod -u 505 -o oldboy(不能為負數)

-L

凍結用戶的密碼,使無法登陸。

-c

修改用戶賬號的備註信息

-d

修改用戶家目錄

-f

修改在密碼過期後多少天關閉該賬號

將oldboy用戶的註釋信息修改為OldBoy,UID修改為1806,歸屬修改為用戶組root、sa成員,其shell類型修改為/bin/tcsh,設置家目錄為/tmp/oldboy。

  1. [root@oldboy ~]# grep oldboy /etc/passwd
  2. oldboy:x:806:806:HandsomeBoy:/oldboy:/bin/sh
  3. [root@oldboy ~]# grep "\boldboy\b" /etc/passwd
  4. [root@oldboy ~]# usermod -c OldBoy -u 1806 -G root,sa -s /bin/tcsh -d /tmp/oldboy oldboy
  5. [root@oldboy ~]# grep oldboy /etc/passwd
  6. oldboy:x:1806:806:OldBoy:/tmp/oldboy:/bin/tcsh

使用戶在2012-01-22後過期

  1. [root@oldboy ~]# usermod -e 01/22/12 oldboy #chage -E 01/22/12 oldboy一樣
  2. [root@oldboy ~]# chage -l oldboy
  3. Last password change : Dec 29, 2016
  4. Password expires : never
  5. Password inactive : never
  6. Account expires : Jan 22, 2012
  7. Minimum number of days between password change : 0
  8. Maximum number of days between password change : 99999
  9. Number of days of warning before password expires : 7

w、who、users、last、lastlog命令

w:顯示已經登錄的用戶,並且都做了什麼的信息。查看的信息與/var/run/utmp文件有關。

  1. [root@oldboy ~]# w
  2.  14:37:32 up 3:47, 1 user, load average: 0.00, 0.00, 0.00
  3. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  4. root pts/0 192.168.31.1 11:43 0.00s 0.13s 0.00s w

who:顯示哪些用戶在登錄,終端及登錄時間,來源主機。

  1. [root@oldboy ~]# who
  2. root pts/0 2016-12-30 11:43 (192.168.31.1)

users:僅僅顯示哪些用戶在登錄

  1. [root@oldboy ~]# users
  2. root

last:顯示已登錄的用戶列表及登錄時間等,查看的信息與/var/log/wtmp及/var/log/btmp兩個文件有關。

  1. [root@oldboy ~]# last
  2. root pts/0 192.168.31.1 Fri Dec 30 11:43 still logged in
  3. reboot system boot 2.6.32-504.el6.x Fri Dec 30 10:50 - 14:40 (03:50)
  4. test tty1 Fri Dec 30 09:01 - down (01:24)
  5. test tty1 Fri Dec 30 09:01 - 09:01 (00:00)
  6. root pts/0 192.168.31.1 Fri Dec 30 08:27 - down (01:59)
  7. reboot system boot 2.6.32-504.el6.x Fri Dec 30 08:26 - 10:26 (02:00)
  8. root pts/1 192.168.31.1 Thu Dec 29 21:04 - 00:06 (03:01)
  9. root pts/1 192.168.31.1 Thu Dec 29 21:04 - 21:04 (00:00)
  10. root pts/0 192.168.31.1 Thu Dec 29 18:28 - down (05:39)

lastlog:報告最近的所有系統用戶的登錄信息,查看的信息與/var/log/lastlog日誌有關。

  1. [root@oldboy ~]# lastlog
  2. Username Port From Latest
  3. root pts/0 192.168.31.1 Fri Dec 30 11:43:36 +0800 2016
  4. saslauth **Never logged in**
  5. postfix **Never logged in**
  6. sshd **Never logged in**
  7. tcpdump **Never logged in**
  8. test tty1 Fri Dec 30 09:01:52 +0800 2016
  9. oldgirl **Never logged in**
  10. xiao1 **Never logged in**

數據文件查看,數據文件不能用cat查看。

  1. [root@oldboy ~]# file /var/log/lastlog
  2. /var/log/lastlog: data

groups命令

語法格式:groups 用戶名

  1. [root@oldboy ~]# groups oldboy #查詢oldboy所屬的用戶組
  2. oldboy : oldboy root sa #oldboy用戶分別為oldboy、root、sa三個組的成員

su命令

語法格式:su [選項參數] 用戶名

su參數選項

註釋說明

-,-l,-login

make the shell a login shell,使一個shell成為登陸的shell,如執行su - oldboy,並且使用oldboy用戶的環境變數配置,如/home/oldboy/.bash_profile等。

-c,--command=COMMAND

切換到一個shell下,執行一個命令,然後退出所切換的用戶環境。

-m,--preserve-environment

切換用戶時,不重置用戶環境變數,-p的功能同-m。

-s,--shell=SHELL

如果/etc/shells允許,則運行指定的shell。

su命令總結:

1、普通用戶切換到root用戶,可以使用su - 或su – root,必須輸入root的密碼才能完成切換。

2、root用戶切換到普通用戶,可以使用"su – 用戶名"的寫法,不需要輸入密碼就能切換完成。在切換到普通用戶後,在執行一些命令如ifconfig時,可能會遭遇到環境變數PATH路徑問題而找不到系統命令(一般是/sbin,/usr/sbin等下麵的命令),這時就需要將普通用戶的PATH,配置成root的PATH。

3、如果僅僅希望以某個用戶的角色執行命令,而不直接切換到該用戶下操作,可以使用"su - 用戶名 -c 命令" 的方式執行。

  1. [root@oldboy ~]# su - oldboy -c "touch a.txt"
  2. [root@oldboy ~]# ls -la /home/oldboy/a.txt
  3. -rw-rw-r-- 1 oldboy oldboy 0 Dec 30 16:05 /home/oldboy/a.txt

sudo命令

sudo工作原理

語法格式:sudo [參數選項] 命令

sudo參數選項

註釋說明

-l

列出用戶在主機上可用的和被禁止的命令,當配置好sudo授權規則後,可用這個參數來查看授權情況。

-v

驗證用戶的時間戳,當用戶運行sudo,輸入用戶的密碼後,在短時間內可以不用輸入口令直接進行sudo操作,用-v可以跟蹤最新的時間戳。

-u

指定以某個用戶身份執行特定的命令操作。oldboy ALL=(ALL) /bin/cp

-k

同-K,刪除時間戳,下一個sudo命令要求提供密碼,前提是該用戶授權中不能有NOPASSWD:參數。時間戳預設5分鐘失效。

visudo相當於vi /etc/sudoers。

visudo -c檢查語法

主機別名:

13 # Host_Alias FILESERVERS = fs1, fs2

14 # Host_Alias MAILSERVERS = smtp, smtp2

用戶別名:

定義系統管理用戶別名ADMINS,包含成員oldboy,mikem及sa組的成員。

User_Alias ADMINS = oldboy, mikem, %sa

註意定義的規範。

定義用戶別名NETADMINS來管理網路,包含成員leo,maya。

User_Alias NETADMINS = leo, maya

定義用戶別名USERADMINS來管理用戶,包含成員zuma。

User_Alias USERADMINS = zuma

特別說明:為了方便管理,要儘可能使用有意義的名稱作為別名。

命令別名:

27 # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

案例:

  1. User_Alias ADMINS = oldboy,%sa
  2. User_Alias CHUJIADMIN = oldboy,oldgirl
  3.  
  4. Host_Alias SERVERS = oldboy,test
  5.  
  6. Cmnd_Alias ADMINCMD = /bin/rm
  7. Cmnd_Alias USER = /usr/bin/useradd
  8.  
  9. Runas_Alias OP = root
  10. Runas_Alias OP1 = oldboy
  11.  
  12. ADMINS SERVERS =(OP) NOPASSWD:ADMINCMD,USER
  13. CHUJIADMIN SERVERS =(OP) NOPASSWD:USER

sudo配置文件/etc/sudoers授權規則註意事項總結:

1、授權規則中的所有ALL字元串必須為大寫字母。

2、禁止的命令儘量放在後面,使用!排除(!/sbin/fdisk)。

3、一行內容超長可以用"\"斜線換行。

4、"!"嘆號表示非,就是命令取反的意思,即禁止執行的命令。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們使用vi或者vim的時候,如果想要顯示行號,可能會這樣做:切換到命令模式,然後輸入set nu,再按回車鍵就顯示了;還有就是咱們在編寫程式的時候,有的時候會希望按下回車鍵後,游標不是每次都在行首,而是與上一行的第一個非空格符處對齊,也就是實現所謂的縮排功能,這是你可以在命令模式下輸入set au ...
  • SOLUTION VERIFIED February 5 2014 KB340153 Environment Red Hat Enterprise Linux 6 (All Versions) Red Hat Enterprise Linux 5 (All Versions) Issue Need ...
  • 1.介紹 雙因素認證:雙因素身份認證就是通過你所知道再加上你所能擁有的這二個要素組合到一起才能發揮作用的身份認證系統。雙因素認證是一種採用時間同步技術的系統,採用了基於時間、事件和密鑰三變數而產生的一次性密碼來代替傳統的靜態密碼。每個動態密碼卡都有一個唯一的密鑰,該密鑰同時存放在伺服器端,每次認證時 ...
  • SOLUTION VERIFIED April 27 2013 KB26727 Environment Red Hat Enterprise Linux 5 Red Hat Enterprise Linux 6 Issue How to create a bridge using a tagged ...
  • not on top of a bond Environment Red Hat Enterprise Linux 7 NetworkManager Issue Need an 802.1q VLAN in RHEL 7 when using NetworkManager. Resolution R ...
  • 我新裝的centos7主機無法使用裡面自帶的網卡,查詢後發現網卡型號為BCM4312。我在看資料安裝的過程中遇到了些問題,糾結了好久,現在分享下要註意的點,為後來的遇到同樣問題的人提供點幫助。現在開始說正事: 若要安裝以 Broadcom BCM4311、BCM4312、BCM4313、BCM432 ...
  • environment Red Hat Enterprise Linux 5.4 or later Red Hat Enterprise Linux 6.0 or later KVM virtual machines question How do I configure a bridged net ...
  • 修改環境變數PATH 最近為root添加一個環境變數發現sudo su進去沒有變化所以總結了一下所有設置環境變數的方法: 查看PATH: 1. 直接在命令行修改,就可以使用,但是只有在當前的視窗和用戶有用, 關閉以後就失效了,所以如果是臨時使用可以這樣設置 2. 修改家目錄下.bashrc文件,只對 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...