作业-第04周--课堂-Day16-Linux系统权限知识及应用实践

Day16 课堂笔记

1. Linux文件及目录权限

1 普通文件对应读、写、执行权限的详细说明

1)可读r:表示具有可读、浏览文件内容(即读取文件实体block)的权限
2)可写w:表示具有新增、修改、删除文件内容的权限。
3)可执行x:表示具有执行文件的权限。
其中对于可读r,这里有两点需要说明:

  • 如果没有可读r配合,那么使用vi编辑文件时会提示无法编辑(但可强制编辑),可以使用echo等命令进行重定向或追加。
  • 删除文件或者创建文件的权限受父目录(上一级目录)的权限控制,与文件本身的可写w权限无关。

对于可执行x,需要注意以下三点:

  • 首先文件本身要能够执行(命令或脚本)。
  • 如果是普通用户,同时还需要具备可读r的权限才能执行文件。
  • root用户只要有可执行x的权限就能执行文件。

2 目录对应读、写、执行权限的详细说明

1)可读r:表示具有浏览目录下面文件及子目录内容的权限。
2)可写w:表示具有增加、删除或修改目录内文件的权限。但是,如果没有可执行x的配合,即使有w权限,也无法删除或创建文件。
3)可执行x:表示具有进入目录的权限。

3. Linux权限体系核心知识

3.1 权限实践环境准备

1 规划三种不同用户角色

  • incahome(家、组)
  • oldboy 家庭男主人,用来代表用户(User)角色,是文件的所有者
  • oldgirl 女主人(和所有者oldboy属于相同组,oldboy的家人)用来代表用户组incahome的角色
  • test 其他人 其他(others)人,用来代表其他用户角色

2 创建对应的用户及用户组角色

如果用户之前已经创建了:

[root@oldboyedu ~]# groupadd incahome
[root@oldboyedu ~]# useradd oldboy
useradd: user 'oldboy' already exists
[root@oldboyedu ~]# usermod -g incahome oldboy
[root@oldboyedu ~]# id oldboy
uid=1000(oldboy) gid=1004(incahome) groups=1004(incahome),1000(oldboy)

如果此前没有创建oldboy,可以执行下面命令,而不需要usermod命令

[root@oldboyedu ~]# useradd oldboy -g incahome
[root@oldboyedu ~]# useradd oldgirl -g incahome
useradd: user 'oldgirl' already exists
[root@oldboyedu ~]# id oldgirl
uid=1001(oldgirl) gid=1001(oldgirl) groups=1001(oldgirl)
[root@oldboyedu ~]# usermod -g incahome oldgirl
[root@oldboyedu ~]# id oldgirl
uid=1001(oldgirl) gid=1004(incahome) groups=1004(incahome)
[root@oldboyedu ~]# useradd test

3 创建用于测试的目录及文件环境

[root@oldboyedu ~]# mkdir -p /oldboy
[root@oldboyedu ~]# echo "echo oldboyLinux" >/oldboy/test.sh
[root@oldboyedu ~]# chmod +x /oldboy/test.sh

4 打开远程登录窗口并登录

Xshell SSH 远程登录不同窗口用户角色说明

3.2 通过实践测试文件对应权限

1 测试默认情况下不同用户的对应权限

待测试文件及目录默认属性如下:

[root@oldboyedu  ~]# ls -ld /oldboy/
drwxr-xr-x 2 root root 21 Mar 21 01:15 /oldboy/
[root@oldboyedu  ~]# ls -l /oldboy/test.sh 
-rwxr-xr-x 1 root root 17 Mar 23 16:43 /oldboy/test.sh

下面是测试的命令集合:

测试可读 r的命令为:cat  /oldboy/test.sh 
测试可写w的命令为:echo "echo oldboy" >>  /oldboy/test.sh 
测试执行x 的命令为: /oldboy/test.sh 
测试可删除的命令为:rm -f  /oldboy/test.sh 

经过测试,你会发现三个用户的测试结果一致,以oldboy用户为例:

[oldboy@oldboyedu  ~]$ cat /oldboy/test.sh 
echo oldboyLinux
[oldboy@oldboyedu  ~]$ echo "echo oldboy" >>  /oldboy/test.sh 
-bash: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu  ~]$ /oldboy/test.sh 
oldboyLinux
[oldboy@oldboyedu  ~]$ rm -f  /oldboy/test.sh
rm: cannot remove ‘/oldboy/test.sh’: Permission denied

2 在root窗口将文件对应的用户改为oldboy,用户组改为incahome

[root@oldboyedu  ~]# chown oldboy.incahome /oldboy/test.sh
[root@oldboyedu  ~]#  ls -l /oldboy/test.sh 
-rwxr-xr-x 1 oldboy incahome 17 Mar 23 16:43 /oldboy/test.sh

测试oldboy用户

[oldboy@oldboyedu  ~]$ whoami 
oldboy
[oldboy@oldboyedu  ~]$ cat /oldboy/test.sh 
echo oldboyLinux
[oldboy@oldboyedu  ~]$ echo "echo oldboy" >>  /oldboy/test.sh 
[oldboy@oldboyedu  ~]$ cat /oldboy/test.sh 
echo oldboyLinux
echo oldboy
[oldboy@oldboyedu  ~]$ /oldboy/test.sh 
oldboyLinux
oldboy

测试oldgril用户

[oldgirl@oldboyedu  ~]$ whoami 
oldgirl
[oldgirl@oldboyedu  ~]$ cat /oldboy/test.sh
echo oldboyLinux
echo oldboy
[oldgirl@oldboyedu  ~]$ echo "echo oldboy" >>  /oldboy/test.sh 
-bash: /oldboy/test.sh: Permission denied
[oldgirl@oldboyedu  ~]$ /oldboy/test.sh 
oldboyLinux
oldboy
[oldgirl@oldboyedu  ~]$ rm -f  /oldboy/test.sh
rm: cannot remove ‘/oldboy/test.sh’: Permission denied

3 重点测试oldboy用户对文件的w删除权限及test用户的执行权限

test.sh中的其他用户权限的r权限去掉,具体步骤如下:

[root@oldboyedu  ~]# whoami 
root
[root@oldboyedu  ~]# chmod 751 /oldboy/test.sh 
[root@oldboyedu  ~]# ls -l /oldboy/test.sh
-rwxr-x--x 1 oldboy incahome 29 Mar 23 16:50 /oldboy/test.sh

下面测试oldboy用户下是否有删除test.sh的权限

[oldboy@oldboyedu  ~]$ whoami 
oldboy
[oldboy@oldboyedu  ~]$ rm -f  /oldboy/test.sh
rm: cannot remove ‘/oldboy/test.sh’: Permission denied

测试test用户下是否有执行test.sh的权限

[test@oldboyedu  ~]$ whoami 
test
[test@oldboyedu  ~]$ /oldboy/test.sh 
bash: /oldboy/test.sh: Permission denied

4 修改/oldboy目录的权限,并测试oldboy用户对oldboy目录下test.sh的删除权限

具体步骤如下:

[root@oldboyedu  ~]# whoami 
root
[root@oldboyedu  ~]# chmod 000 /oldboy/test.sh 
[root@oldboyedu  ~]# ls -l /oldboy/test.sh
---------- 1 oldboy incahome 29 Mar 23 16:50 /oldboy/test.sh
[root@oldboyedu  ~]# chown -R oldboy /oldboy
[root@oldboyedu  ~]# ls -ld /oldboy
drwxr-xr-x 2 oldboy root 21 Mar 23 16:39 /oldboy

测试步骤如下:

[oldboy@oldboyedu  ~]$ whoami 
oldboy
[oldboy@oldboyedu  ~]$ cat /oldboy/test.sh 
cat: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu  ~]$ echo "echo oldboy" >>  /oldboy/test.sh 
-bash: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu  ~]$ /oldboy/test.sh 
-bash: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu  ~]$ rm -f  /oldboy/test.sh
[oldboy@oldboyedu  ~]$ ls -l /oldboy/test.sh
ls: cannot access /oldboy/test.sh: No such file or directory

3.3 通过实践测试目录属性对应的权限

1 针对当下目录/oldboy属性测试权限

[root@oldboyedu  ~]# ls -ld /oldboy/
drwxr-xr-x 2 oldboy root 6 Mar 23 17:06 /oldboy/

测试oldboy用户:

[oldboy@oldboyedu  ~]$ whoami 
oldboy
[oldboy@oldboyedu  ~]$ ls -ld /oldboy/
drwxr-xr-x 2 oldboy root 6 Mar 23 17:06 /oldboy/
[oldboy@oldboyedu  ~]$ touch /oldboy/{1..3}.txt
[oldboy@oldboyedu  ~]$ ls /oldboy/
1.txt  2.txt  3.txt
[oldboy@oldboyedu  ~]$ ls -l /oldboy/
total 0
-rw-r--r-- 1 oldboy incahome 0 Mar 23 17:10 1.txt
-rw-r--r-- 1 oldboy incahome 0 Mar 23 17:10 2.txt
-rw-r--r-- 1 oldboy incahome 0 Mar 23 17:10 3.txt
[oldboy@oldboyedu  ~]$ cd /oldboy/
[oldboy@oldboyedu  /oldboy]$ pwd
/oldboy
[oldboy@oldboyedu  /oldboy]$ rm -f 1.txt 
[oldboy@oldboyedu  /oldboy]$ ls
2.txt  3.txt

测试oldgirl用户:

[oldgirl@oldboyedu  ~]$ 
[oldgirl@oldboyedu  ~]$ whoami 
oldgirl
[oldgirl@oldboyedu  ~]$ ls -ld /oldboy/
drwxr-xr-x 2 oldboy root 32 Mar 23 17:10 /oldboy/
[oldgirl@oldboyedu  ~]$ ls /oldboy/
2.txt  3.txt
[oldgirl@oldboyedu  ~]$ ls -l /oldboy/
total 0
-rw-r--r-- 1 oldboy incahome 0 Mar 23 17:10 2.txt
-rw-r--r-- 1 oldboy incahome 0 Mar 23 17:10 3.txt
[oldgirl@oldboyedu  ~]$ touch /oldboy/{a..c}.txt
touch: cannot touch ‘/oldboy/a.txt’: Permission denied
touch: cannot touch ‘/oldboy/b.txt’: Permission denied
touch: cannot touch ‘/oldboy/c.txt’: Permission denied
[oldgirl@oldboyedu  ~]$ cd /oldboy/
[oldgirl@oldboyedu  /oldboy]$ pwd
/oldboy
[oldgirl@oldboyedu  /oldboy]$ ls
2.txt  3.txt
[oldgirl@oldboyedu  /oldboy]$ rm -f 2.txt 
rm: cannot remove ‘2.txt’: Permission denied

2 测试oldboy目录权限中x和w与r的配合,以及r和w与x的配合

将文件的权限和用户及组调整为如下属性:

[root@oldboyedu  ~]# whoami 
root
[root@oldboyedu  ~]# chmod 736 /oldboy/
[root@oldboyedu  ~]# chown oldboy.incahome /oldboy/
[root@oldboyedu  ~]# ls -ld /oldboy/
drwx-wxrw- 2 oldboy incahome 32 Mar 23 17:10 /oldboy/

使用oldgir用户测试:

[oldgirl@oldboyedu  /oldboy]$ whoami
oldgirl
[oldgirl@oldboyedu  /oldboy]$ ls -ld /oldboy/
drwx-wxrw- 2 oldboy incahome 32 Mar 23 17:10 /oldboy/
[oldgirl@oldboyedu  /oldboy]$ ls /oldboy/
ls: cannot open directory /oldboy/: Permission denied
[oldgirl@oldboyedu  /oldboy]$ touch /oldboy/m.txt
[oldgirl@oldboyedu  /oldboy]$ cd /oldboy/
[oldgirl@oldboyedu  /oldboy]$ ls
ls: cannot open directory .: Permission denied
[oldgirl@oldboyedu  /oldboy]$ rm -f m.txt

使用test用户测试:

[test@oldboyedu  ~]$ whoami 
test
[test@oldboyedu  ~]$ ls -ld /oldboy/
drwx-wxrw- 2 oldboy incahome 32 Mar 23 17:21 /oldboy/
[test@oldboyedu  ~]$ ls /oldboy/
ls: cannot access /oldboy/2.txt: Permission denied
ls: cannot access /oldboy/3.txt: Permission denied
2.txt  3.txt
[test@oldboyedu  ~]$ ls -l /oldboy/
ls: cannot access /oldboy/2.txt: Permission denied
ls: cannot access /oldboy/3.txt: Permission denied
total 0
-????????? ? ? ? ?            ? 2.txt
-????????? ? ? ? ?            ? 3.txt
[test@oldboyedu  ~]$ touch /oldboy/n.txt
touch: cannot touch ‘/oldboy/n.txt’: Permission denied
[test@oldboyedu  ~]$ rm -f /oldboy/3.txt 
rm: cannot remove ‘/oldboy/3.txt’: Permission denied
[test@oldboyedu  ~]$ cd /oldboy/
-bash: cd: /oldboy/: Permission denied

4 设置及更改文件和目录权限的命令: chmod

参数

  • -R 递归设置,对目录下所有文件和子目录生效

(1)用户或用户组的定义:

  • u代表属主用户
  • g代表属组
  • o代表其他用户
  • a或者不写,代表所有

(2)权限定义字母

  • r代表读权限,用数字4表示
  • w代表写权限,用数字2表示
  • x代表执行权限,用数字1表示
  • -代表没有权限,用数字0表示

(3)权限增减字符定义

  • +:添加权限
  • -:取消权限
  • =:取消其他所有权限,然后赋予给定的权限。

5 修改文件属性的用户和组:chown

chown 用户.用户组 文件  这里的点可以用:替换。
chown 用户 文件
chown .用户组 文件   ====chgrp 用户组 文件

6 企业环境下文件和目录的安全核心知识

  • 禁止普通用户删除和创建文件
  • 防止用户修改文件内容
  • 严苛的安全措施

安全权限临界点:
1 文件不想被修改被执行:644

[root@oldboyedu /oldboy]# touch oldboy.txt
[root@oldboyedu /oldboy]# ls -l
total 4
-rw-r--r-- 1 root    root  0 Oct  7 23:21 oldboy.txt

2 目录不想被修改(删除移动创建)被执行(进入):755

[root@oldboyedu  ~]# mkdir test
[root@oldboyedu  ~]# ls -ld test/
drwxr-xr-x 2 root root 6 Mar 23 17:43 test/

博客:写博客。。。服务器的博客目录和文件的权限,防止被恶意篡改。

企业真实案例:网站文件被恶意修改了。。。。打开网站后有弹窗广告(不是你网站的)

用户打开网站,报警。
原因:权限设置不到位。chmod -R 777 目录 开发人员习惯
解决方案:
1、备份

tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/

2、找到被修改的文件

[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
/oldboy/oldboy.txt:<script>ddddddddddddd</scripts>
/oldboy/test.sh:<script>ddddddddddddd</scripts>

3、批量删除

[root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d'
[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'

4、找到文件被篡改来源,并优化调整。

亡羊补牢。

5、写总结 故障报告。

7 默认权限掩码及设置命令:umask

1 文件默认权限计算

1)假设umask值为022(所有位为偶数):

    6 6 6      #<-->文件的起始权限值
    0 2 2 —    #<-->umaskd 值
----------------------
    6 4 4

1)假设umask值为045(所有位为偶数):

    6 6 6      #<-->文件的起始权限值
    0 4 5 —    #<-->umaskd 值
----------------------
    6 2 1      #<-->计算出来的权限。由于umask的最后一位数字是奇数5,所以,在其他用户组位在加1
    0 0 1      #<-->umask对应的奇数位加1
----------------------
    6 2 2      #<-->真实文件权限

2 目录默认权限计算(umask没有奇偶之分)

    7 7 7      #<-->目录的起始权限值
    0 2 2 —    #<-->umaskd 值
----------------------
    7 5 5 

8 特殊权限位

Linux系统特殊权限位知识
9位基础权限

还有3位特殊权限位

  • suid位:
    suid(setuid)位通过S字符标识,
    存在于基本权限的用户权限位的x权限对应的位置,
    如果用户权限位对应的x权限位上有x权限,则suid就用小写的s标识,
    suid的s对应的数字权限为4,完整权限用八进制数4000表示。

  • sgid位:
    sgid(setgid)位同样是通过S字符来标识,
    但是,sgid位存在于基本权限的用户组权限位的x权限对应的位置,
    如果用户组权限位对应的x权限位上有x权限,则sgid就用小写的s标识,
    suid的s对应的数字权限为2,完整的权限用八进制数2000表示。

  • sticky(粘滞位)
    sticky(粘滞)位通过字符T标识,存在于基本权限的其他用户位对应的x权限位上,
    如果其他用户位的x权限位上有x权限,
    sticky(粘滞)位通过小写的t标识,对应的数字权限是1,
    完整的权限用八进制数1000表示。

1 suid相关
"4", "2", "1",加和放在基础权限数字的前面。

修改方法:

[root@oldboyedu /oldboy]# chmod 7755 abc

预测:-rwsr-sr-t

[root@oldboyedu /oldboy]# chmod 7755 abc
[root@oldboyedu /oldboy]# ls -l abc
-rwsr-sr-t 1 root root 0 Oct  7 23:42 abc

[root@oldboyedu /oldboy]# chmod 7644 abc
[root@oldboyedu /oldboy]# ls -l abc
-rwSr-Sr-T 1 root root 0 Oct  7 23:42 abc

工作中有啥用?

suid到底有什么作用
简单地说,suid的作用就是让普通用户可以在执行某个设置了suid位的命令或程序时,拥有和root管理员一样的身份和权限(默认情况)。

[oldgirl@oldboyedu /]$ ll -ld oldboy/
dr-x-wxrw-. 2 oldboy incahome 6 Oct  7 22:15 oldboy/

oldgirl属于incahome,增加一个用户属于incahome,是不是也和oldgirl有同样权限。

oldboy 给一个新用户设置suid,这个新用户的权限就和oldboy一样。

查看哪些命令默认被设置了suid

[root@oldboyedu  ~]# find /usr/bin -type f -perm 4755|xargs ls -l
-rwsr-xr-x. 1 root root 64328 Oct 31 00:33 /usr/bin/chage
-rwsr-xr-x. 1 root root 57664 Nov 20 22:22 /usr/bin/crontab
-rwsr-xr-x. 1 root root 32096 Oct 31 05:32 /usr/bin/fusermount
-rwsr-xr-x. 1 root root 78272 Oct 31 00:33 /usr/bin/gpasswd
-rwsr-xr-x. 1 root root 44320 Oct 31 06:48 /usr/bin/mount
-rwsr-xr-x. 1 root root 41872 Oct 31 00:33 /usr/bin/newgrp
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
-rwsr-xr-x. 1 root root 23656 Oct 31 06:26 /usr/bin/pkexec
-rwsr-xr-x. 1 root root 32208 Oct 31 06:48 /usr/bin/su
-rwsr-xr-x. 1 root root 32048 Oct 31 06:48 /usr/bin/umount

suid核心知识小结

1):suid功能是针对二进制命令或程序的,不能用在Shell等类似脚本文件上。
2):用户对应的前三位权限的x为上,如果有s(S)就表示具备suid权限。
3):suid的作用就是让普通用户可以在执行某个设置了suid的命令或程序时,拥有和属主(一般是root)一样的身份和权限。
4):二进制命令程序需要有可执行权限x配合才行。
5):suid对应的身份和权限仅在程序命令执行过程中有效。
6):suid是一把双刃剑,是一个比较危险的功能,对系统安全有一定的威胁,企业里用户授权可以使用sudo等替代suid
7):在进行安全优化时,系统默认设置的suid权限要取消掉。


2 sgid相关
作用之一:

sgid的作用就是让普通用户可以在执行某个设置了sgid位的命令时,
拥有和命令对应用户组(一般为root用户组)一样的身份和权限(默认)。

locate搜索内容,默认从updatedb对应的数据库中查找
updatedb更新locate查找内容对应的数据库。

[root@oldboyedu ~]# updatedb
[root@oldboyedu ~]#  ls -l /var/lib/mlocate/mlocate.db
-rw-r----- 1 root slocate 1977042 Oct  8 00:47 /var/lib/mlocate/mlocate.db
[root@oldboyedu ~]# file /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db: data

sgid基于目录的作用:
让不同的人创建文件属于相同的用户组,从而可以互相共享文件的权限。


sgid核心知识小结

1)与suid不同的是,sgid既可以针对文件,也可以针对目录设置;
2)sgid的权限是针对用户组权限位的。

  • 对应文件来说,sgid的功能如下:
    1)sgid仅对二进制命令及程序有效;
    2)二进制命令或程序,也需要有可执行权限x配合;
    3)执行命令的任意用户可以获得该命令执行期间所属组的身份和权限。
  • 对于目录(继承目录所属的组)来说,sgid的功能如下:
    1)linux里默认情况所有用户创建文件,默认用户和组都是自身。
    2)sgid可以让用户在此目录下创建的文件和目录具有和此目录相同的用户组设置

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容