drimwai的博客

linux下chmod和root的使用安全问题

##参考文献:

https://askubuntu.com/questions/20105/why-shouldnt-var-www-have-chmod-777

https://blog.csdn.net/sinat_36118270/article/details/62899093

 

##1. 是否应该开放使用 chmod -R 777 /var/www 去开放全部权限给apache的默认目录?

不应该。因为,事实上这是一种非常危险方式。因为,777 的方式相当于赋予了陌生人读、写和执行的权限。这里给一个例子:

marco@desktop:~/Projects/AskUbuntu/20105$ cd ..
marco@desktop:~/Projects/AskUbuntu$ chmod 0777 20105
marco@desktop:~/Projects/AskUbuntu$ cd 20105/
marco@desktop:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
marco@desktop:~/Projects/AskUbuntu/20105$ touch test
marco@desktop:~/Projects/AskUbuntu/20105$ chmod 0666 test

** 以上代码,20105文件夹被赋予了777的过度权限。

marco@desktop:~/Projects/AskUbuntu/20105$ sudo su - malicious
malicious@desktop:~$ cd /home/marco/Projects/AskUbuntu/20105
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls
test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco    0 2011-01-04 20:33 test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ touch bad
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test 
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cat test 
OVERWRITE

** 由于以上的过度权限,malicious用户能够对20105这个文件注入一些恶意的代码。

因此,针对这个的解决方案是 --- 给予适当的权限。针对 /var/www,我们只需要赋予755权限即可。这样,既保证了安全性,也保证了apache服务器下网页的可用性。至于为什么不用744,因为744会导致网页无法操作。

 

##2. 是否应该长期地使用root账户做所有操作呢?

root用户作为系统的最高权限者,由于权限地滥用,可能会导致系统奔溃和对系统安全造成威胁。所以,我们应该建立自己的用户,并只有在必要的时候才用su或者sudoroot用户的权限进行调用。

### 建立自己的用户

sudo adduser username
//系统会提示以下信息:
正在添加用户“username”...
正在添加新组“username”(1001)...
正在添加新用户“username”(1001)到组“username”...
创建主目录“/home/username”...
正在从“/etc、skel”复制文件...
输入新的 UNIX 口令: your password

### 解决新用户sudo更改文件报错“xxx is not in the sudoers file. This incident will be reported.”的问题

--- 切换到root下:

su root

--- /etc/sudoer(默认只读)文件写权限

chmod u+w /etc/sudoers

--- 编辑sudoers文件,加入新建的用户

vi /etc/sudoers
//添加信息
newuser ALL=(ALL) ALL  //sudo要输入密码
newuser ALL=(ALL) NOPASSWD:ALL  //sudo不需要密码

--- 撤销sudoers文件写权限

chmod u-w /etc/sudoers
drimwai的博客
drimwai的博客
使用条款和私隐条款。版权所有,保留一切权利。
Copyright by drimwai Liang (2018-2020). All Right Reserved.