PS:
{最近一直在做毕业设计,前面博客也记录过我的一些过程。其中需要在Ubuntu上搭建一个FTP服务器,此处我选择Vsftpd,但是在我对vsftpd的配置文件vsftpd.conf设置正确后(对于上传,下载等设置肯定没问题),利用一款FTP客户端软件Filezilla测试时只能进行下载不能进行上传,百思不得其解,后来终于明白,虽然在配置文件中设置write_enable=YES,但只能说明vsftpd接受关于写的命令,但成不成功可不一定,这还跟系统中相应文件的权限有关系,于是我后来便认真看了linux系统用户,组和权限的管理,最后终于成功的实现了上传,下载操作。下面我就简要记录一下这方面的知识。}
1.用户和组的基本概念
Linux中包含三种用户类型:超级用户(root),普通用户和虚拟用户。用户信息存放在/etc/passwd中,默认情况有34行,即34个用户账号。
root@lenovo:~# wc -l /etc/passwd
34 /etc/passwd
Linux系统中用UID和GID来标识用户和组,。
root用户UID固定位0,虚拟用户UID默认在1~499,普通用户默认在500~60000;
root用户GID固定位0,虚拟用户默认在1~499,普通用户GID默认在500~60000。
可以使用id命令查看用户身份信息:
root@lenovo:~# id root
uid=0(root) gid=0(root) 组=0(root)
存放用户信息的配置文件是/etc/passwd,存放用户账号的密码信息的文件是/etc/shadow,称为影子文件。
root@lenovo:~# grep root /etc/shadow
root:$6$Uk3HG8lk$wqvnbYeW09Q/U7ykh/hWtuAPI/wwGXlj5sncaQ/inv.6yIVJnYOZr9CyiWz7YzF6fReM8KJ6MMR1Bqg7ggDSV.:16516:0:99999:7:::
2用户账号和组的管理
常用命令useradd,usermod,userdel,passwd,groupadd等。
(1)用户管理
useradd命令——创建用户
useradd [选项] 用户名
常用选项:
“-u”选项,指定用户的UID,前提是此UID没有被使用。
root@lenovo:~#useradd -u 504 user2
root@lenovo:~#tail -1 /etc/passwd
user2:x:504:504::/home/user2:/bin/bash
“-d”指定用户的家目录;
“-g”选项指定用户的基本组;
“-G”指定用户的附加组;
“-M”不建立用户家目录;
“-s”指定用户的登录SHell
用户的默认shell为/bin/bash,如果将Shell指定位/sbin/nologin,那么将禁止该用户登录。
举例:
root@lenovo:~# useradd -u 504 -d /home/user2/test -g testgroup -s /sbin/nologin -M user2
passwd命令——为用户账号设置密码
root@lenovo:~# passwd user2
userdel命令——删除用户账号
“-r”选项,删除用户账号以及家目录;
root@lenovo:~# userdel -r user2
usermod命令——修改用户账号属性
它的选项与useradd命令选项基本相同;
(2)用户组管理
常用命令groupadd,gpasswd,groupdel等,两个配置文件/etc/grooup和/etc/gshadow.
gpasswd命令——添加,删除组成员
添加,删除对应选项位”-a”,“-d”,
gpasswd [选项] 用户名 组名
3.文件和目录的权限管理
Linux系统中每一个文件或者目录都赋予了两种属性:访问权限和文件所有者,简称“权限”和“归属”。
访问权限包含:读取,写入和可执行,分别用r,w,x表示。数字表示为r(4),w(2),x(1).
查看某个文件的详细信息如下:
root@lenovo:~# ls -l /etc/vsftpd.conf
-rw-r--r-- 1 root root 5586 5月 23 21:02 /etc/vsftpd.conf
可以看到第一个字段“-rw-r–r–”中除第一个字符以外的其他部分表示文件的访问权限,即“rw-r–r–”。
其中第一部分:第2~4个字符,表示文件所有者访问权限;
第二部分:第5~7个字符,表示文件所属组内各成员访问权限;
第三=部分:第8~10个字符,表示其他任何用户(other)对文件的访问权限。
(1)设置文件/目录的权限
命令chmod,只有文件所有者和root用户才能使用chmod命令,有两种方法:字符形式和数字形式。
字符形式:
chmod [ugoa] [+-=] [rwx] 文件或者目录
“u”代表文件所有者;
“g”代表文件所属组;
“o”代表其他用户;
“a”代表所有用户;
“+”代表增加相应权限;
“-”代表减少相应权限;
“=”代表复制权限;
若是一个目录被=赋予“x”权限,表示cd命令可以进入该目录。
举例:
chmod u+x,g-r,o+x testfile
数字形式:
r——4;w——2;x——1;
常用有755,644等。
比如755代表rwxr-xr-x;
常用选项为“-R”选项,递归修改指定目录下所有子目录,文件的权限。
(2)设置文件/目录的归属
命令chown
格式如下:
chown 所有者 文件/目录
chown :所属组 文件/目录
chown 所有者:所属组 文件/目录
总结:其实这几个命令也比较容易=掌握,很简单。最后再回到我的项目中,如果要让vsftpd能进行上传操作,则需修改vsftpd的根目录具有写的权限。
最近一段时间一直在写论文,好久也没写个博客了。论文就要写好了,加油!