你这种想法我觉得明显是错误的, 我很难想象我自己的 U 盘拿到别的电脑上发现居然没有权限可以读写这种情况发生!. ,你不会将 others 的权限设置成可读可写不就完了吗?
而且不论是 windows 还是 linux 都是这么做的,如果你的 U 盘文件系统是 ntfs 或者 ext4 的话,U 盘上的文件就是有权限的,这时你就要将文件的 others 权限放开一点,ntfs 的话同理将所有用户的权限修改成完全控制。
另外请想一下,我这里虽然讨论的是 U 盘,但是服务器硬盘是同理的,我一块服务器上的硬盘难道不设置权限吗?我这里只是没有服务器硬盘拿来让我做实验,我只能有 U 盘做实验,但是道理难道是不一样的吗??
以上内容再修正一下:
如果 U 盘是 ext4 文件系统,那么在第一台 linux 下如果用 lzc1 在 U 盘上新建一个文件,那么这个文件的 owner 是 lzc1。如果 U 盘再插入第二个 linux 中,实际上第二个 linux 会找给文件的 owner 的 id,而不是用户名,应为在第二个 linux 上可能根本没有 lzc1 这个用户,所以第二个 linux 会查找 U 盘上文件的 owner 的 id,然后在自己的系统中找对应的用户 id,然后以这个用户作为 U 盘上该文件的 owner。
例如:如果第一个 linux 使用 lzc1 用户(id=1000)在 U 盘上写了一个文件,该文件的 owner 是 lzc1;U 盘被放到第二个 linux 上时,第二个 linux 上没有 lzc1 这个用户,但它有 id=1000 的用户,名字叫 lzc2,那么当你打开 U 盘的时候,查看到该文件的 owner 就是 lzc2,也就是说是按照 id 来的,而不是用户名。
这个我也亲自测试了,如果 U 盘是 ext4 文件系统,那么不同机器上如果有相同的 id(用户名不需要相同),那么他们就被认为是同一个人。
具体来说:
第一个 linux 上用 id=1000 的用户向 U 盘中写了一个文件,然后设定 others 是不可读不可写,
然后 U 盘查到第二个 linux 上,如果第二个 linux 上也有 id=1000 的用户(用户名不一定相同),并且使用这个用户打开的 U 盘,那么他就属于该文件的 owner,而不是该文件的 others,绕开了第一个 linux 上 others 的设定。
所以如果被偷走了 U 盘或者硬盘,那就真的完了。
这一点 windows 做的比 linux 要好多了。
当用 windows 格式化 U 盘为 ntfs 文件系统之后,在 U 盘上点击右键,找到「安全」选项卡,然后把 everyone 去掉,然后加上自己的用户名,例如我加的是 holdbelief-PCholdbelief,前面的 holdbelief-PC 是我的计算机名,holdbelief 是我的用户名。然后拔下 U 盘,插在第二台 windows 上,第二台 windows 的计算机名和用户名和第一台 windows 完全相同,但是插上之后,就显示拒绝访问,但可以被第二个 windows 格式化。即使第二台 windows 使用管理员身份登录,也是无法访问 U 盘的。
如我所做的试验,第二台 windows 即使使用完全相同的计算机名和用户名,也无法访问,因为在第二台 windows 上右键 U 盘,在·「安全」选项卡看到的组或者用户名显示为:S-1-5-21-4075069426-1230494915-3701145947-1000,这里可以看到,在 windows 下,机器名和用户名也是用数字表示的,和 linux 相同,但是 windows 的数字位数更多,可以认为是全球唯一的,而 linux 无法做到这一点。
所以 windows 可以做到即使 U 盘硬盘丢了,也可以避免数据被盗(但不能避免被格式化),只是我们平时没有设置它的权限而已。
这个我也亲自测试了,如果 U 盘是 ext4 文件系统,那么不同机器上如果有相同的 id(用户名不需要相同),那么他们就被认为是同一个人。
具体来说:
第一个 linux 上用 id=1000 的用户向 U 盘中写了一个文件,然后设定 others 是不可读不可写,
然后 U 盘查到第二个 linux 上,如果第二个 linux 上也有 id=1000 的用户(用户名不一定相同),并且使用这个用户打开的 U 盘,那么他就属于该文件的 owner,而不是该文件的 others,绕开了第一个 linux 上 others 的设定。
所以如果被偷走了 U 盘或者硬盘,那就真的完了。
这一点 windows 做的比 linux 要好多了。
当用 windows 格式化 U 盘为 ntfs 文件系统之后,在 U 盘上点击右键,找到「安全」选项卡,然后把 everyone 去掉,然后加上自己的用户名,例如我加的是 holdbelief-PCholdbelief,前面的 holdbelief-PC 是我的计算机名,holdbelief 是我的用户名。然后拔下 U 盘,插在第二台 windows 上,第二台 windows 的计算机名和用户名和第一台 windows 完全相同,但是插上之后,就显示拒绝访问,但可以被第二个 windows 格式化。
这个我也亲自测试了,如果 U 盘是 ext4 文件系统,那么不同机器上如果有相同的 id(用户名不需要相同),那么他们就被认为是同一个人。
具体来说:
第一个 linux 上用 id=1000 的用户向 U 盘中写了一个文件,然后设定 others 是不可读不可写,
然后 U 盘查到第二个 linux 上,如果第二个 linux 上也有 id=1000 的用户(用户名不一定相同),并且使用这个用户打开的 U 盘,那么他就属于该文件的 owner,而不是该文件的 others,绕开了第一个 linux 上 others 的设定。
所以如果被偷走了 U 盘或者硬盘,那就真的完了。
这一点 windows 做的比 linux 要好多了。
当用 windows 格式化 U 盘为 ntfs 文件系统之后,在 U 盘上点击右键,找到「安全」选项卡,然后把 everyone 去掉,然后加上自己的用户名,例如我加的是 holdbelief-PCholdbelief,前面的 holdbelief-PC 是我的计算机名,holdbelief 是我的用户名。然后拔下 U 盘,插在第二台 windows 上,第二台 windows 的计算机名和用户名和第一台 windows 完全相同,但是插上之后,就显示拒绝访问,但可以被第二个 windows 格式化。
试试 SELinux or AppArmor?~
我会慢慢测试,需要时间。
还有为了避免完全没有意义的争论, 我想说我并没有说 linux 不好,windows 和 linux 我也不站队,只是在我测试的这一个方面 windows 胜出。其他方面也许 linux 有比 windows 强的地方,也有 windows 强于 linux 的地方。
“这说明,他取得了你的 Linux 的权限! 黑客要做的还是取得目标系统的权限,没有什么变容易了……”这句话的观点我不能同意,还记得早年通过 U 盘传播病毒的年代吗?病毒又不一定是靠互联网传播的。
你读读我前面的测试结论就明白了,如果 U 盘里面有黑客的脚本,而这个脚本的 owner 的 id=1000,然后你将 U 盘插入自己的电脑,你的电脑上也有一个 id=1000 的用户,那么你电脑上的 id=1000 的用户就是该脚本的 owner 了,那么这段脚本就可以运行了。
你可以看看我前面的帖子,windows 确实做到了,每一台 windows 都一个全球唯一编号,所以每一个 windows 下面的用户都是不同的,即使他们的名字相同。你仔细看看我的测试就明白了,windows 下给 U 盘(或者随便什么文件)赋予权限是:「计算机名 / 用户名」 这样的,当然这是显示出来的,实质上是用·「该 windows 全球唯一编号 / 用户编号」 这样的,所以却对不会重复。
可以说,windows 做到了你所说的恒星数量级别