Linux用戶和組管理

眾所周知,Linux是一個多用戶、多任務(Multi-Tasks、Multi-Users)的操作系統。那么Linux是如何區分和認證用戶的,系統對每個用戶的授權是如何管理的,出現問題如何追溯每個用戶在系統內的操作記錄,等等,這些就涉及到Linux中用戶和組的管理。

  1. AAA介紹
  2. Linux用戶類別
  3. Linux用戶標識(UID)
  4. Linux組類別
  5. Linux組標識(GID)
  6. Linux中用戶和組的相關數據庫文件
  7. Linux用戶和組管理命令
    (1) groupadd命令
    (2) groupmod命令
    (3) groupdel命令
    (4) useradd命令
    (5) usermod命令
    (6) userdel命令
    (7) passwd命令
    (8) gpasswd命令
    (9) newgrp命令
    (10) chage命令
    (11) id命令
    (12) su命令
    (13) 其它幾個用戶和組管理相關命令
  8. Linux用戶和組管理命令的相關示例
  9. 通過更改用戶和組的配置文件,直接添加或修改用戶和組

首先介紹以下AAA。

1、AAA介紹

AAA指的是Authentication、Authorization、Accounting,即認證、授權和審計。

  • 認證:驗證用戶是否可以獲得權限,是3A的第一步,即驗證身份;
  • 授權:授權用戶可以使用那些服務或資源,即身份驗證成功后,賦予這個身份相應的權限;
  • 審計:記錄用戶的操作情況,在Linux中,日志就是審計的一種手段。

Linux的用戶和組管理可以說是基于AAA進行的,首先用戶登錄輸入用戶名密碼,就是認證的過程;其次,在用戶登錄成功后,所擁有的權限各不相同,這就是授權;最后,用戶的操作歷史會記錄在日志中,這是審計。
接下來介紹Linux中用戶和組的類別,以及Linux是如何標識每個用戶和組的:

2、Linux用戶類別

Linux中,用戶分為兩大類、三小類:
分別為管理員(一般為root)和普通用戶
普通用戶中,又劃分為兩類,分別為系統用戶登錄用戶

  • 管理員
    即超級用戶,可以操作系統中任意文件和命令,擁有最高的管理權限。
    Tips:一般情況下盡量不要使用root登錄系統,避免誤操作。
  • 普通用戶
    又分為登錄用戶和系統用戶:
    • 登錄用戶
      一般為管理員手動添加的用戶,默認僅擁有操作自身家目錄中文件及目錄的權限,以及進入與瀏覽相關目錄文件的權限(如/etc、/var/log等),但沒有創建、修改、刪除等權限。
    • 系統用戶
      一般為系統安裝后默認存在的,且默認情況下不能登錄系統,它們的存在主要是為了滿足系統進程對文件屬主的需求。
      Tips:在部署某些服務是,也可以手動添加某些系統用戶。

3、Linux用戶標識(UID)

Linux系統使用UID(User ID)來標識不同用戶。
UID是16bits的二進制數字,所以換算成十進制,UID的范圍是0~65535,Linux根據用戶類別,對UID劃分做了規定:

  • 管理員
    UID為0
    Tips:當用戶UID為0時,該用戶就是管理員,所以不只root才是管理員,可以手動指定,但不建議。
  • 普通用戶(1~65535)
    • 系統用戶
      一般發行版為1499(CentOS7為1999)
    • 登錄用戶
      一般發行版為50065535(CentOS7為100065535)

Tips:Linux是根據“名稱解析庫”(/etc/passwd)來進行用戶名和UID的解析的,后面會詳細介紹Linux中用戶和組的相關信息庫文件。

4、Linux組類別

Linux對組有三種劃分方法:

  • 第一種組類別,和用戶劃分類似,兩大類三小類
    • 管理員組
    • 普通用戶組(包括系統用戶組和登錄用戶組)
  • 第二種組類別
    • 用戶的基本組(主組)
      用戶必須有且只能有一個基本組。
    • 用戶的附加組 (附屬組)
      用戶可以有0個、1個或多個附加組。
      基本組和附加組就比如,每個人有一個用來安家的房子(基本組),還可以有N個用于投資的房子(附屬組)。
  • 第三種組類別
    • 私有組
      每新建一個用戶,如果不指定-g參數,都會自動創建一個和用戶名同名的組,且組內只包含用戶本身。
    • 公共組
      組內可包含多個用戶。

5、Linux組標識(GID)

Linux系統使用GID(Group ID)來標識不同組。
GID的劃分和UID相同,這里不再贅述。

6、Linux中用戶和組的相關數據庫文件

Linux中,與用戶和組相關的信息主要存儲在/etc/passwd、/etc/shadow、/etc/group三個文件中(存儲格式中各字段用:分隔):

  • /etc/passwd:存儲用戶賬戶信息
    存儲格式為,name:password:UID:GID:comment:directory:shell
    • name:用戶登錄名;
    • password:用戶口令,用占位符x表示;
    • UID:用戶ID,用戶登錄時,系統根據UID,而非用戶名來識別用戶;
    • GID:用戶所屬的主組ID;
    • comment:用戶的注釋信息;
    • directory:用戶家目錄的絕對路徑;
    • shell:用戶的默認shell。
  • /etc/shadow:存儲用戶密碼信息
    存儲格式為,
    登錄名:$加密算法$salt$加密了的密碼:最后一次更改密碼的日期:密碼最小期限:密碼最大期限:密碼警告時間段:密碼禁用期:賬戶過期日期:保留字段
    • 字段1:name用戶登錄名;
    • 字段2:加密的密碼,$為分隔符,首先是使用的加密算法,其次是salt(隨機數),最后才是加密了的密碼本身;
    • 字段3:從1970年1月1日算起,密碼被修改的天數(最近一次更改密碼);
    • 字段4:密碼最小期限,即密碼最近更改日期到下次允許更改日期之間的天數(比如設置為10,則表示更改密碼后10天內不允許再次更改;0表示無限制,可在任何時間修改);
    • 字段5:密碼最大期限,密碼最近更改日期到系統強制用戶更改密碼日期之間的天數(比如設置為100,則表示更改密碼后100天,系統將強制要求再次更改密碼;1表示永不修改);
    • 字段6:密碼警告時間段,密碼過期前,用戶被警告的天數(比如,上個例子設置密碼最大期限為100,密碼警告時間段設為5,則表示更改密碼后第96-100這5天,用戶將被警告“密碼即將過期”;-1表示沒有警告);
    • 字段7:密碼禁用期,密碼過期后,到系統自動禁用賬戶的天數(-1表示永遠不會禁用);
    • 字段8:賬戶過期日期(-1表示該賬戶被啟用);
    • 字段9:保留條目,目前沒用。
  • /etc/group:存儲用戶組信息
    存儲格式為,group_name:password:GID:user_list
    • group_name:組名;
    • password:用戶組的口令,用占位符x表示,一般Linux用戶組都沒有口令;
    • GID:組ID;
    • user_list:用戶列表,注意,這里列出的是以該組為附加組的用戶列表,以此組為主組的用戶沒有列在此處。

7、Linux用戶和組管理命令

  • 組管理:groupadd,groupmod,groupdel
  • 用戶管理:useradd,usermod,userdel
  • 密碼管理:passwd,gpasswd
  • 其它相關命令:newgrp,chage,chsh,id,su

(1) groupadd命令

  • groupadd - create a new group
    新建組

  • groupadd [options] group

    • -g GID:指定GID:默認是上一個組的GID+1
    • -r:創建系統組
  • 例如,現在創建名為mygroup1和mygroup2兩個組,查看其GID,分別為1000和1001,GID加1:
    [root@localhost ~]# groupadd mygroup1;groupadd mygroup2
    [root@localhost ~]# tail -2 /etc/group
    mygroup1:x:1000:
    mygroup2:x:1001:

  • 再創建一個名為mygroup3的組,指定其GID為2222:
    [root@localhost ~]# groupadd -g 2222 mygroup3
    [root@localhost ~]# tail -1 /etc/group
    mygroup3:x:2222:

(2) gourpmod命令

  • groupmod - modify a group definition on the system
    更改用戶組屬性
  • groupmod [options] GROUP
    • -g GID:--gid GID:修改GID
    • -n NEW_NAME,修改組名
  • 例如:將mygroup1的GID改為1111,組名改為MYGROUP:
    [root@localhost ~]# groupmod -g 1111 -n MYGOURP mygroup1
    [root@localhost ~]# tail -1 /etc/group
    MYGOURP:x:1111:

(3) groupdel命令

  • groupdel - delete a group
    刪除組
  • groupdel [options] GROUP
  • 當某user以某group為主組時,是無法使用groupdel命令刪除該group的,但附加組不受影響
    [root@localhost ~]# useradd user2 -g mygroup2 \\創建user2用戶,指定主組為mygroup2
    [root@localhost ~]# groupdel mygroup2 \\刪除mygroup2
    groupdel: cannot remove the primary group of user 'user2' \\提示無法刪除
    [root@localhost ~]# useradd user3 -G mygroup3 \\新建user3用戶,添加附加組mygroup3
    [root@localhost ~]# groupdel mygroup3 \\直接刪除

(4) useradd命令

  • useradd - create a new user or update default new user information
    新建用戶或修改新建用戶時的默認屬性

  • useradd [options] LOGIN

    • -u UID:--uid UID:指定UID,默認是上一個用戶UID+1
    • -g GROUP:--gid GROUP:指定用戶的基本組,此組必須事先存在
    • -G:--groups GROUP1,GROUP2...,指定用戶的附加組,這些組必須事先存在
    • -c COMMENT:--comment COMMENT:添加注釋
    • -d:--home HOME_DIR:指定用戶家目錄,通過復制/etc/skel并重命名實現的,指定的家目錄路徑如果事先存在,則不會為用戶復制環境初始化配置文件(如.bashrc等)
    • -s:--shell SHELL:指定用戶默認shell,可用的所有shell列表存儲在/etc/shells文件中
    • -r:--system:創建系統用戶
  • 例如,創建suse用戶,指定其UID為1100,指定其主組/基本組為slackware,指定附加組為group1,group2,添加注釋“slackware management”,指定家目錄為/home/susehome,默認shell為/bin/zsh:
    [root@localhost ~]# useradd -u 1100 -g slackware -G "group1,group2" -c "slackware management" -d /home/susehome -s /bin/zsh suse
    [root@localhost ~]# tail -1 /etc/passwd
    suse:x:1100:2224:slackware management:/home/susehome:/bin/zsh

  • 這里-d指明的家目錄事先不存在,所以會將骨架信息復制過來:
    [root@localhost susehome]# ls -A /home/susehome/
    .bash_logout .bash_profile .bashrc .mozilla

  • 如果指定的家目錄事先存在,則不會從/etc/skel復制信息:
    [root@localhost home]# mkdir /home/suse2home
    [root@localhost home]# useradd -d /home/suse2home suse2
    useradd: warning: the home directory already exists.
    Not copying any file from skel directory into it.
    [root@localhost home]# ls -A /home/suse2home
    [root@localhost home]#

  • useradd -D [options]:顯示或修改用戶創建時的默認配置屬性
    用戶創建時的配置屬性如下:

    • GROUP:是否創建用戶私有組,默認100,是
    • HOME:家目錄起始位置,默認/home
    • INACTIVE:密碼過期到用戶注銷的時間,默認-1,不注銷
    • EXPIRE:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    • SHELL:默認shell,默認為xxxxxxxxxxxxxxxxxxx
    • SKEL:從哪復制用戶骨架信息,默認/etc/skel
    • CREATE_MAIL_SPOOL:是否創建郵件目錄,默認yes,(在/var/spool/mail/)
  • Tips:

    • 創建用戶時的諸多默認配置保存在/etc/login.defs文件中;
    • useradd -D 修改的配置結果保存在/etc/default/useradd文件中。
  • useradd -D顯示的內容
    [root@localhost home]# useradd -D
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes

  • /etc/default/useradd文件中的內容:
    [root@localhost mail]# cat /etc/default/useradd
    # useradd defaults file
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes

(5) usermod命令

  • usermod - modify a user account
    修改用戶屬性
  • usermod [options] LOGIN
    和useradd的選項大致相同
    • -u UID:--uid UID:修改UID
    • -g GROUP:--gid GROUP:修改用戶的基本組,此組必須事先存在
    • -G:--groups GROUP1,GROUP2...,修改用戶的附加組,這些組須事先存在。
      注意,原來的附加組會被覆蓋。
      如果只添加不覆蓋,則配合使用-a選項。
    • -a:--append:與-G一同使用,添加用戶的附加組
    • -c COMMENT:--comment COMMENT:修改注釋
    • -d:--home HOME_DIR:修改用戶家目錄
      用戶原有的文件不會被轉移至新位置。
      如果需要轉移,則配合使用-m選項。
    • -m:--move-home:只能與-d選項一同使用,用于將原來的家目錄移動為新的家目錄。
    • -l:--login NEW_LOGIN:修改用戶登錄名
    • -s:--shell SHELL:修改用戶默認shell
    • -L:--lock:鎖定用戶的密碼,即禁止用戶登錄。
      其實就是在/etc/passwd文件中用戶原來的密碼字符串前添加一個“!”,使其不能匹配。
    • -U:--unlock:解鎖用戶的密碼
  • usermod的常用選項和useradd相同,只需注意-d和-G兩個選項
    • 例如只修改suse用戶的家目錄為/home/suse_newhome,不移動之前家目錄的內容,則用-d選項(此目錄須事先存在,否則只是更改了/etc/passwd中的記錄,實際的目錄是不會自動創建的):
      [root@localhost ~]# mkdir /home/suse_newhome
      [root@localhost ~]# usermod -d /home/suse_newhome suse
      [root@localhost ~]# ls -A /home/suse_newhome/
      [root@localhost ~]#
    • 如果想修改家目錄的同時,移動以前家目錄的內容,則將-d和-m選項同時使用(這里要注意一下,目標目錄不要事先存在,否則和只用-d的效果是一樣的):
      [root@localhost ~]# rm -rf /home/suse_newhome/ \\這里先刪除之前創建的目錄
      [root@localhost ~]# usermod -md /home/suse_newhome suse
      [root@localhost ~]# cd ~suse
      [root@localhost suse_newhome]# ls -A
      .bash_logout .bash_profile .bashrc .mozilla

(6) userdel命令

  • userdel - delete a user account and related files
    刪除用戶賬戶和相關文件
  • userdel [options] LOGIN
    • -r:刪除用戶時一并刪除用戶家目錄
  • userdel命令只需注意加不加-r選項的區別就可以,-r會在刪除用戶的同時,刪除和用戶相關的家目錄和郵件文件。

(7) passwd命令

  • passwd - update user's authentication tokens
  • passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
    • passwd:不帶任何選項:修改當前登錄用戶自己的密碼
    • passwd USER:修改指定用戶的密碼,默認僅root用戶有此權限
    • -l:--lock:鎖定用戶
    • -u:--unlock:解鎖用戶
    • -d:--delete:清除用戶密碼
    • -e:--expire DATE:過期期限(日期)
    • -i:--inactive DAYS:非活動期限(時長)
    • -n:--minimum DAYS:密碼的最短使用期限
    • -m:--maximum DAYS:密碼的最長使用期限
    • -w:--warning DAYS:警告期限
  • tips:
    • 修改密碼也可以用如下命令:
      echo "PASSWORD" | passwd --stdin USER \\多用于shell腳本中

(8) gpasswd命令

  • gpasswd - administer /etc/group and /etc/gshadow
  • gpasswd [option] group
    • -a:--add USER:向組中添加用戶
    • -d:--delete USER:從組中移除用戶
  • tips:
    • 組密碼文件:/etc/gshadow
    • 組一般是沒有密碼的,給組設定密碼的作用:避免用戶隨意切換基本組。
      • newgrp GROUP:臨時切換當前用戶的基本組(exit:切換回之前的基本組)

(9) newgrp命令

  • newgrp - log in to a new group
  • newgrp [-] [group]
    • -:會模擬用戶重新登錄,以實現重新初始化其工作環境
    • exit:切換回去
  • 例如,將root用戶的主組臨時切換為group1:
    [root@localhost ~]# id -gn
    root
    [root@localhost ~]# newgrp - group1
    [root@localhost ~]# id -gn
    group1

(10) chage命令

  • chage - change user password expiry information
    修改密碼的各類過期信息
  • chage [options] LOGIN
    • -d,-E,-W,-m,-M
  • chage命令用的不多,因為passwd命令中也可以修改密碼的各類過期信息。

(11) id命令

  • id - print real and effective user and group IDs(實際的和有效的ID是不同的)
  • id [OPTION]... [USER]
    • id:不帶任何選項:顯示當前登錄用戶自己的信息
    • -u:--user:僅顯示UID
    • -r:--real:僅顯示實際的ID
    • -g:--group:僅顯示用戶的基本組ID
    • -G:--groups:僅顯示用戶所屬的所有組的ID
    • -n:--name:顯示名稱,而非ID
  • 例如,在suse用戶下,使用id命令:
    [suse@localhost ~]$ id
    uid=1100(suse) gid=2224(slackware) groups=2224(slackware),2225(group1),2226(group2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  • 使用id -u,僅顯示suse的UID:
    [suse@localhost ~]$ id -u
    1100
  • 使用id -g,僅顯示suse的主組GID,即slackware的GID:
    [suse@localhost ~]$ id -g
    2224
  • 使用id -G,顯示suse的主組和附加組的GID:
    [suse@localhost ~]$ id -G
    2224 2225 2226
  • 配合-n選項,顯示用戶名或組名,而非ID號:
    [suse@localhost ~]$ id -un
    suse
    [suse@localhost ~]$ id -gn
    slackware
    [suse@localhost ~]$ id -Gn
    slackware group1 group2

(12) su命令

  • su - run a command with substitute user and group ID
  • su [options...] [-] [user [args...]]
    • 登錄式切換:會通過重新讀取目標用戶的配置文件來重新初始化
      su - USER
      or
      su -l USER
    • 非登錄式切換:不會讀取目標用戶的配置文件進行初始化
      su USER
    • -c COMMAND:僅以指定用戶的身份運行此處指定的命令
  • tips:
    管理員可無密碼切換至其他任何用戶

(13) 其它幾個用戶和組管理相關命令

  • chsh:修改shell
  • finger:查看信息
  • chfn:修改finger信息
  • whoami:我是誰呵呵
  • pwck:檢查用戶信息是否有異常
  • grpck:檢查組信息是否有異常

Linux用戶和組管理命令的相關示例

  • 創建組distro,其GID為2016;
    [root@localhost ~]# groupadd -g 2016 distro
    [root@localhost ~]# tail -1 /etc/group
    distro:x:2016:
  • 創建用戶mandriva, 其ID號為1005;基本組為distro;
    [root@localhost ~]# useradd -u 1005 -g distro mandriva
    [root@localhost ~]# tail -1 /etc/passwd
    mandriva:x:1005:2016::/home/mandriva:/bin/bash
  • 創建用戶mageia,其ID號為1100,家目錄為/home/linux;
    [root@localhost ~]# useradd -u 1100 -d /home/linux mageia
    [root@localhost ~]# tail -1 /etc/passwd
    mageia:x:1100:1100::/home/linux:/bin/bash
  • 給用戶mageia添加密碼,密碼為mageedu;
    [root@localhost ~]# echo "mageedu" | passwd --stdin mageia
    Changing password for user mageia.
    passwd: all authentication tokens updated successfully.
  • 刪除mandriva,但保留其家目錄;
    [root@localhost ~]# userdel mandriva
    [root@localhost ~]# ls /home/ |grep linux
    linux
  • 創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
    [root@localhost ~]# groupadd peguin
    [root@localhost ~]# useradd slackware -u 2002 -g distro -G peguin
    [root@localhost ~]# tail -1 /etc/passwd
    slackware:x:2002:2016::/home/slackware:/bin/bash
  • 修改slackware的默認shell為/bin/tcsh;
    [root@localhost ~]# usermod -s /bin/tcsh slackware
    [root@localhost ~]# tail -1 /etc/passwd
    slackware:x:2002:2016::/home/slackware:/bin/tcsh
  • 為用戶slackware新增附加組admins;
    [root@localhost ~]# groupadd admins
    [root@localhost ~]# usermod -aG admins slackware
    [root@localhost ~]# id -Gn slackware
    distro peguin admins

通過更改用戶和組的配置文件,直接添加或修改用戶和組

為了更深入了解用戶和組的相關配置文件,可以手動更改配置文件以達到命令的執行效果。

  1. 復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
    [root@localhost ~]# cp -r /etc/skel /home/tuser1
    \\這里我使用root用戶復制,注意目標目錄/home/tuser1不能事先存在,否則復制的結果為/home/tuser1/skel
    [root@localhost ~]# ls -Al /home/tuser1/
    total 16
    -rw-r--r--. 1 root root 18 May 8 17:56 .bash_logout
    -rw-r--r--. 1 root root 193 May 8 17:56 .bash_profile
    -rw-r--r--. 1 root root 231 May 8 17:56 .bashrc
    drwxr-xr-x. 4 root root 4096 May 8 17:56 .mozilla
    [root@localhost ~]# chmod -R 700 /home/tuser1
    [root@localhost ~]# ll -al /home/tuser1
    total 24
    drwx------. 3 root root 4096 May 8 17:56 .
    drwxr-xr-x. 3 root root 4096 May 8 17:56 ..
    -rwx------. 1 root root 18 May 8 17:56 .bash_logout
    -rwx------. 1 root root 193 May 8 17:56 .bash_profile
    -rwx------. 1 root root 231 May 8 17:56 .bashrc
    drwx------. 4 root root 4096 May 8 17:56 .mozilla

  2. 編輯/etc/group文件,添加組hadoop。
    [root@localhost ~]# vim + /etc/group
    ...
    hadoop:x:1500:

  3. 手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
    [root@localhost ~]# vim + /etc/passwd
    ...
    hadoop:x:1500:1500::/home/hadoop:/bin/bash
    [root@localhost ~]# id hadoop
    uid=1500(hadoop) gid=1500(hadoop) groups=1500(hadoop)

  4. 復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
    [root@localhost ~]# cp -R /etc/skel /home/hadoop
    [root@localhost ~]# chmod 700 /home/hadoop
    [root@localhost ~]# chmod g=,o= /home/hadoop/
    [root@localhost ~]# ll -d /home/hadoop
    drwx------. 3 root root 4096 May 14 11:20 /home/hadoop

  5. 修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
    [root@localhost ~]# chown -R hadoop:hadoop /home/hadoop/
    [root@localhost ~]# ll -a /home/hadoop/
    total 24
    drwx------. 3 hadoop hadoop 4096 May 14 11:20 .
    drwxr-xr-x. 4 root root 4096 May 14 11:20 ..
    -rw-r--r--. 1 hadoop hadoop 18 May 14 11:20 .bash_logout
    -rw-r--r--. 1 hadoop hadoop 193 May 14 11:20 .bash_profile
    -rw-r--r--. 1 hadoop hadoop 231 May 14 11:20 .bashrc
    drwxr-xr-x. 4 hadoop hadoop 4096 May 14 11:20 .mozilla

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,743評論 2 370

推薦閱讀更多精彩內容