Ubuntu下FTP分权限管理 【第二节 权限分配】

上一节中咱们已经学会了如何在Ubuntu中搭建FTP环境,本节将介绍如何为同一个目录分配权限:1.超级管理员(拥有上传,下载,修改,查看的权限);2.普通管理员(只拥有下载与查看的权限)
注:本节的ftp目录,用户均从新建立(按照第一节的方式建立,目的是加深印象)

1、新建一个ftp管理组

# sudo groupadd -g 168 ftpmanagerhtml

#################
###### UID ######
#################
>> 0:超级用户(管理员)
#################
# 普通用户 1~65535
>> 1~499:系统用户(伪用户)(不能删)
>> 500+:普通用户

#################
###### GID ######
#################
>> 0:系统组(管理员)
#################
# 普通组 1~65535
>> 1~499:系统组
>> 500+:普通组

1.添加用户组
groupadd [选项] 组名
选项:
-g GID:指定组ID

2.修改用户组
groupmod [选项] 组名
选项:
-g GID:  修改组ID
-n 新组名:修改组名
例:groupmod -n testgrp group1
# 把组名group1修改成testgrp

3.删除用户组
groupdel 组名
注:不能存在初始用户在该组,不然没法删除

4.把用户添加入组或从组中删除
gpasswd [选项] 组名
选项:
-a 用户名:把用户加入组
-d 用户名:把用户从组中删除
例:gpasswd [选项] 用户名 组名

5.查看组
groups 用户名

2、新建两个用户

  1. 超级管理员linux

    • 建立ftp文件夹web

      • # mkdir /home/ftptest
    • 建立超级管理员ftpadmin来管理ftptest目录shell

      • # sudo useradd -d /home/ftptest -s /bin/bash ftpadmin
    • 设置ftpadmin的密码安全

      • # sudo passwd ftpadmin
  2. 普通管理员bash

    • 建立普通管理员ftpuser01来管理ftptest目录服务器

      • # sudo useradd -d /home/ftptest -s /bin/bash ftpuser01
    • 设置ftpuser01的密码网络

      • # sudo passwd ftpadminn
1.添加用户                                          
useradd [选项] 用户名
选项:
-u UID:   手工指定用户的UID号
-d 家目录: 手工指定用户的家目录
-c 用户说明:手工指定用户的说明
-g 组名:    手工指定用户的初始组(至关于强制改掉)
-G 组名:    指定用户的初始组(至关于加入)
-s shell:  手工指定用户的shell。默认是/bin/bash

2.删除用户
userdel [-r] 用户名
选项:
-r 删除用户的同时删除用户家目录
手工删除用户:
>>># vi /etc/passwd
>>># vi /etc/shadow
>>># vi /etc/group
>>># vi /etc/gshadow
>>># rm -rf /var/spool/mail/[用户名]
>>># rm -rf /home/[用户名]
若是删除后可经过
useradd [用户名]
若能成功添加,则该用户名以前已删干净了,不然未删干净


3.查看用户ID
id [用户名]

3、为用户分配组权限

  1. ftpadmin分配ftpmanager组
    # sudo usermod -G ftpmanager ftpadmin
  2. ftpuser01分配ftpmanager组
    # sudo usermod -G ftpmanager ftpuser01
  3. 查看所属组:groups 用户名
    # groups ftpadmin 或者 # groups ftpuser01

    clipboard.png

4、设置ftp目录的全部者权限(其全部者即为超级管理员)

  1. 经过chown更改文件或目录(能够经过参数-R递归修改)的全部者。注:全部者,必须存在于(/etc/passwd)下
    # sudo chown ftpadmin -R /home/ftptest
    修改前:
    clipboard.png
    修改后:
    clipboard.png

5、修改文件夹的权限

sudo chmod -R 755 /home/ftptestide

```
关于权限755的解释:
在linux终端先输入ll,能够看到如:
-rwx-r--r-- (一共10个参数) 表示文件所属组和用户的对应权限。
第一个跟参数属于管理员,跟chmod无关,先无论.
2-4参数:属于user
5-7参数:属于group
8-10参数:属于others
r==>可读 w==>可写 x==>可执行
r=4      w=2      x=1
因此755表明 rwx r-x r-x ==>rwxr-xr-x
管理员ftpadmin拥有读写执行权限,组用户和其余用户拥有读写权限(便可如下载查看,并不能新建和修改)
若是是777 则表明 rwxr-rwx-rwx 全部用户均可读可写可执行。
```

6、链接测试

链接测试,发现居然 失败了!!!!!!!!!!!!!!!!
~~~尼玛~~~什么鬼工具

状况1.

用ftp工具链接的或许会报相似这样的错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot(). Please contact your web hosting service provider for assistance.
clipboard.png

在网上查了一下,发现原来:从2.3.5以后,vsftpd加强了安全检查,若是用户被限定在了其主目录下,则该用户的主目录不能再具备写权限了!若是检查发现还有写权限,就会报该错误。
修改方法有三个,以下:

  1. 消除ftp根目录写入的权限,如:
    chmod 555 /home/ftptest
  2. 在vsftpd的配置文件中增长一项:
    allow_writeable_chroot=YES
  3. 在ftptest中再建一个文件夹做为根目录为root01,修改两个用户的管理目录为root01
    # sudo usermod -d /home/ftptest ftpadmin
    # sudo usermod -d /home/ftptest ftpuser01

提示:
方法1,则须要子啊ftptest中新目录下超级管理员才能有写的权限;
方法2,可能影响其余ftp目录的管理,还存在安全性问题;
方法3,对我来讲除了多了几条命令,其余的都仍是比较满意,正式使用时我都是采用此法。

通过调整后,链接成功了!
用ftpadmin新建了一个文件222和一个文件夹333都成功了,修改222的内容也成功了

clipboard.png

再来试试普通管理员ftpuser01
新建文件和文件夹都失败了
clipboard.png

下载成功了
clipboard.png

可是上传却失败了
clipboard.png

经过测试,咱们发现只有ftpadmin拥有随意上传,下载,新建,修改的权限,ftpuser01只能下载和查看,证实了咱们的权限分配没有错。

状况2.

用ftp工具链接的或许会报相似这样的错误:
530 Login incorrect. Please contact your web hosting service provider for assistance.
clipboard.png

查了一下资料,并经过测试发现问题主要出如今:购买的阿里云ECS未开放外网访问端口。
解决办法:开放端口。
参考自:http://www.winbiz.cn/zh_cn/Ne...
登陆阿里云ECS服务器控制面板,【网络和安全】->【安全组】,在右边选择【配置规则】->【添加安全组规则】,协议选所有,受权对象填0.0.0.0/0
clipboard.png

clipboard.png

clipboard.png

最后肯定,保存便可。

好啦,ftp搭建告一段落,若是有什么问题能够联系我,若是文章有什么错误还请指出。

相关文章
相关标签/搜索