Answers:
是的,root可以:
$ echo Hello you\! > file
$ chmod 600 file
$ ls -l file
-rw------- 1 terdon terdon 11 Feb 27 02:14 file
$ sudo -i
# cat file
Hello you!
无论如何,即使root无法以root身份读取您的文件,它们也可以始终以您的身份登录而无需输入密码:
$ whoami
terdon
$ sudo -i
[sudo] password for terdon:
# whoami
root
# su - terdon
$ whoami
terdon
因此,root
可以使用su
(或sudo -iu username
)更改为任何其他用户名,然后就可以执行任何操作,就好像他们是您一样。
总是假定root
(与其他任何用户/进程CAP_DAC_OVERRIDE
和CAP_DAC_READ_SEARCH
)可以做一切从这样做,除非LSM(SELinux的,AppArmor的或类似的)阻止了他。
这也意味着您应该假定所有按键都可以读取。密码不是很安全。如果您想要严格的安全级别,则必须使用完全由您控制(甚至不被其他任何人使用)的系统。
是的,root拥有执行任何操作的所有特权
在这里您可以看到我已经创建了目录名称测试并触摸了文件lonston.txt并列出了文件
root@system99:/tmp# mkdir test && touch lonston.txt && ls -l
total 4
-rw-r--r-- 1 root root 0 Feb 27 16:35 lonston.txt
drwxr-xr-x 2 root root 4096 Feb 27 16:35 test
然后我已经使用000将文件和目录的权限更改为空权限,并列出以查看权限
root@system99:/tmp# chmod 000 lonston.txt && chmod 000 test && ls -l
total 4
---------- 1 root root 0 Feb 27 16:35 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test
然后,即使我可以写入文件并使用cat读取文件
root@system99:/tmp# echo "Yes root have all Privileges than other user's, let we see the permission of user's too" > lonston.txt
root@system99:/tmp# cat lonston.txt
Yes root have all Privilages than other user's, let we see the permission of user's too
即使我可以进入具有d ---------(null)000权限的目录,甚至root也没有读取或写入权限。
root@system99:/tmp# cd test/
root@system99:/tmp/test# pwd
/tmp/test
甚至我可以从任何人更改权限后创建文件和文件夹
root@system99:/tmp/test# touch /tmp/test/lonston/testdir/babin.txt
root@system99:/tmp/test# ls -l /tmp/test/lonston/testdir/
total 0
-rw-r--r-- 1 root root 0 Feb 27 16:39 babin.txt
现在在这里我们可以看到Permission with 400
root@system99:/tmp/test# chmod 400 babin.txt
列表查看文件权限
root@system99:/tmp/test# ls -l
total 8
-r-------- 1 root root 34 Feb 27 16:42 babin.txt
drwxr-xr-x 3 root root 4096 Feb 27 16:38 lonston
我使用vim im在文件babin.txt中添加了1行
root@system99:/tmp/test# vim babin.txt
但是在vim模式下,它将注意到我们W10:警告:更改只读文件,但仍可写
现在我们可以将文件分类为输出
root@system99:/tmp/test# cat babin.txt
hi this is the write persmission
this is added while the file have 400 permission
然后我从root用户注销为普通用户,并列出了在root用户中也具有null权限的文件
root@system99:/tmp# exit
exit
导航到/ tmp目录
sysadmin@system99:~$ cd /tmp/
sysadmin@system99:/tmp$ ls -l
total 8
---------- 1 root root 88 Feb 27 16:36 lonston.txt
d--------- 2 root root 4096 Feb 27 16:35 test
但是,当从普通用户读取文件时,我们无法
sysadmin@system99:/tmp$ cat lonston.txt
cat: lonston.txt: Permission denied
sysadmin@system99:/tmp$ cd test/
cat: test/: Permission denied
就是这样,希望您拥有root用户的权力
如果您是普通用户,如果您需要root特权,我们需要使用sudo,它将询问sudo密码
例如:
sysadmin@system99:/tmp$ sudo cat lonston.txt
[sudo] password for sysadmin:
Yes root have all Privilages than other user's, let we see the permission of user's too
Sudo用户与root用户的组有合作关系,所以sudo拥有root特权。
进一步了解sudo
# man sudoers
在这里我们可以看到他们已经定义为普通用户可以拥有Sudo权限。
sysadmin@system99:/tmp$ sudo cat /etc/sudoers
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
完全可以读取或编辑或删除文件,即使root用户也没有读取权限。
在传统的Unix中,root是无所不能的。特别是,root可以读取任何文件,甚至可以窥探您的程序在内部执行的操作。如果数据真的很敏感,则仅保留加密的副本(为此考虑例如GNU Privacy Guard,但在使用前请仔细阅读其文档),切勿在不受您完全控制的机器上解密数据。
(偏执狂是美好的,永远都不够;-)
认真考虑一下数据泄漏可能造成的成本,以及因此准备为安全支付的费用。完美的安全性是不可能的,要获得更多的安全性,成本就会迅速增加。但是请注意不要陷入昂贵措施的陷阱中,这实际上并不会增加安全性...
为了防止root或任何人都能读取您的文件,您需要对它们进行加密。如果希望避免不得不处理复杂的文件系统操作,则文件加密是一种非常方便的选择。
加密选项:
如果选择选项1,则可以通过以下方式加密文件:
cat (your-file) | openssl aes-128-cbc -a -salt -k "(specify-a-password)" > (your-file).enc
要解密上述文件,请运行以下命令:
cat (your-file).enc | openssl aes-128-cbc -a -d -salt -k "(specify-the-password)" > (your-file).dec
-您可能希望将以上内容放入脚本中,以使其不会出现在您的历史记录中。或者,您可以仅删除“ -k ”参数,该参数将提示openssl要求您输入密码。
如果选择选项2,只需将脚本复制并粘贴到以下站点:
http://www.kinglazy.com/shell-script-encryption-kinglazy-shieldx.htm
将脚本提交到该站点后,将立即为您创建一个zip文件。将链接复制到zip文件,然后转到UNIX框并执行以下步骤:
一旦完成上述步骤,就可以从在第4步中指定要安装加密脚本的任何地方运行加密脚本。即/ home /(您的用户名)/(您的加密脚本)。 SH
CAP_DAC_OVERRIDE
授予一个用户一口气,可以使他们拥有覆盖系统上任何其他安全机制所需的所有特权。CAP_DAC_OVERRIDE
基本上是CAP_DO_WHATEVER_YOU_WANT
。